发表于: 2019-11-15 21:50:00

1 1080


今日完成:

CSS的短板

    作为前端学习者的我们 或多或少都要学些 CSS ,它作为前端开发的三大基石之一,时刻引领着 Web 的发展潮向。 而 CSS 作为一门标记性语言,可能 给初学者第一印象 就是简单易懂,毫无逻辑,不像编程该有的样子。在语法更新时,每当新属性提出,浏览器的兼容又会马上变成绊脚石,可以说 CSS 短板不容忽视。

    问题的诞生往往伴随着技术的兴起, 在 Web 发展的这几年, 为了让 CSS 富有逻辑性,短板不那么严重,涌现出了 一些神奇的预处理语言。 它们让 CSS 彻底变成一门 可以使用 变量 、循环 、继承 、自定义方法等多种特性的标记语言,逻辑性得以大大增强。

预处理语言的诞生

其中 就我所知的有三门语言:Sass、Less 、Stylus 。

  1. Sass 诞生于 2007 年,Ruby 编写,其语法功能都十分全面,可以说 它完全把 CSS 变成了一门编程语言。另外 在国内外都很受欢迎,并且它的项目团队很是强大 ,是一款十分优秀的预处理语言。
  2. Stylus 诞生于 2010 年,来自 Node.js 社区,语法功能也和 Sass 不相伯仲,是一门十分独特的创新型语言。
  3. Less 诞生于 2009 年,受Sass的影响创建的一个开源项目。 它扩充了 CSS 语言,增加了诸如变量、混合(mixin)、函数等功能,让 CSS 更易维护、方便制作主题、扩充(引用于官网)。

使用 Less 的前奏

使用 Less 有两种方式

  1. 在页面中 引入 Less.js
  • 可在官网下载
  • 或使用CDN
    <script src="//cdnjs.cloudflare.com/ajax/libs/less.js/2.7.2/less.min.js"></script> 
    需要注意的是,link 标签一定要在 Less.js 之前引入,并且 link 标签的 rel 属性要设置为stylesheet/less。
     <link rel="stylesheet/less" href="style.less">  <script src="less.min.js"></script> 
  1. 在命令行 使用npm安装

    npm install -g less 

    具体使用命令

    $ lessc styles.less > styles.css 

    假如还有问题,官网已经有了明确的步骤。

    如果你在本地环境,可以使用第一种方式,非常简单;但在生产环境中,性能非常重要,最好使用第二种方式。


变量

我们常常在 CSS 中 看到同一个值重复多次,这样难易于代码维护。

而 Less 中的变量十分强大,可化万物,值得一提的是,其变量是常量 ,所以只能定义一次,不能重复使用。

值变量

@ 开头 定义变量,并且使用时 直接 键入 @名称。

在平时工作中,我们就可以把 常用的变量 封装到一个文件中,这样利于代码组织维护。


下面使用less重写了任务四的登陆页面:



使用less重写任务四的登陆页面。





@header-color: #5fc0cd;
@header-height: 88px;
@header-margin-bottom: 2px;
@header-span-margin:30px;
@font-size-btn: 32px;
@log-in-btn: 36px;
@btn-bg: color(#ffffff);
@bg: color(#eff0f4);
@width-all: percentage(1.0);


@input-height: 100px;
@input-placeholder-color: #e1e5e7;
@input-padding-left: 150px;
@input-margin-top: 14px;

@forget-margin-right:31px;
@forget-margin-top: 19px;

@btn-margin-top: 69px;

@icon-margin:43px;

@my-icon-left:116px;
html, body {
padding: 0;
margin: 0;
background-color: @bg;




header {
display: flex;
align-content: center;
justify-content: space-between;
height: @header-height;
background-color: @header-color;
margin-bottom: @header-margin-bottom;

span  {
color: @btn-bg;
font-size: @font-size-btn;
line-height: @header-height;
}

span.close {
margin-left: @header-span-margin;
}
span.register {
margin-right: @header-span-margin;
}
.log-in {
font-size: @log-in-btn;
}
}

div.input-outer {
font-size: @font-size-btn;


input::-webkit-input-placeholder {
font-size: @font-size-btn;
color: @input-placeholder-color;
}

input {
margin-top: @input-margin-top;
width: calc(@width-all - @input-padding-left);
height: @input-height;
border: 0;
padding-left: @input-padding-left;


}

.iphone {
background: url("../img/iphone1.jpg") no-repeat white 43px;

}

.pwd {
background: url("../img/locked-2.jpg") no-repeat white 43px;
}

.my-icon1 {
position: absolute;
top: 126px;
left: @my-icon-left;
width: 2px;
height: 51px;
background: #eaedee;
}

.my-icon2 {
position: absolute;
top: 243px;;
left: @my-icon-left;
width: 2px;
height: 51px;
background: #eaedee;
}


}

button {
margin-top:@btn-margin-top;
height: @input-height;
width: @width-all;
background-color: @header-color;
color: @btn-bg;
border: 0;
font-size: @log-in-btn;
}

span.forget {
float: right;
margin-right:@forget-margin-right ;
margin-top: @forget-margin-top;
font-size: @font-size-btn;
color: @header-color;
}
}



遇到的问题:

对Less的使用还只是一些值变量、嵌套

还需要反复检查是否有遗漏可以提炼使用预处理器语言特性的地方


收获:

学习了less的使用


明日计划:

任务12:标准化——阅读html和css规范,不使用bs重写任务5和6(护工)






返回列表 返回列表
评论

    分享到