发表于: 2018-07-17 16:55:05

1 734


 CSS- task11  任务总结:


官方脑图:


个人脑图:


任务耗时:1天;

成果连接:https://singsad.github.io/task11/task11.html


知识点总结:

任务十一主要是对任务四的重构,首先学习了less语言

本质上,LESS 包含一套自定义的语法及一个解析器,用户根据这些语法定义自己的样式规则,这些规则最终会通过解析器,编译生成对应的 CSS 文件。LESS 并没有裁剪 CSS 原有的特性,更不是用来取代 CSS 的,而是在现有 CSS 语法的基础上,为 CSS 加入程序式语言的特性。

less主要有以下特性:

变量

LESS 允许开发者自定义变量,变量可以在全局样式中使用,变量使得样式修改起来更加简单。

我们可以从下面的代码了解变量的使用及作用:

清单 3 LESS 文件

1
2
3
4
5

@border-color : #b5bcc7;
 
.mythemes tableBorder{
  border : 1px solid @border-color;
}

经过编译生成的 CSS 文件如下:

清单 4. CSS 文件

1
2
3

.mythemes tableBorder {
 border: 1px solid #b5bcc7;
}

从上面的代码中我们可以看出,变量是 VALUE(值)级别的复用,可以将相同的值定义成变量统一管理起来。

该特性适用于定义主题,我们可以将背景颜色、字体颜色、边框属性等常规样式进行统一定义,这样不同的主题只需要定义不同的变量文件就可以了。当然该特性也同样适用于 CSS RESET(重置样式表),在 Web 开发中,我们往往需要屏蔽浏览器默认的样式行为而需要重新定义样式表来覆盖浏览器的默认行为,这里可以使用 LESS 的变量特性,这样就可以在不同的项目间重用样式表,我们仅需要在不同的项目样式表中,根据需求重新给变量赋值即可。

Mixins(混入)

Mixins(混入)功能对用开发者来说并不陌生,很多动态语言都支持 Mixins(混入)特性,它是多重继承的一种实现,在 LESS 中,混入是指在一个 CLASS 中引入另外一个已经定义的 CLASS,就像在当前 CLASS 中增加一个属性一样。

我们先简单看一下 Mixins 在 LESS 中的使用:

清单 7. LESS 文件

1
2
3
4
5
6
7
8
9
10
11
12
13

// 定义一个样式选择器
 .roundedCorners(@radius:5px) {
 -moz-border-radius: @radius;
 -webkit-border-radius: @radius;
 border-radius: @radius;
 }
 // 在另外的样式选择器中使用
 #header {
 .roundedCorners;
 }
 #footer {
 .roundedCorners(10px);
 }

经过编译生成的 CSS 文件如下:

清单 8. CSS 文件

1
2
3
4
5
6
7
8
9
10

#header {
-moz-border-radius:5px;
-webkit-border-radius:5px;
border-radius:5px;
}
#footer {
-moz-border-radius:10px;
-webkit-border-radius:10px;
border-radius:10px;
}

从上面的代码我们可以看出:Mixins 其实是一种嵌套,它允许将一个类嵌入到另外一个类中使用,被嵌入的类也可以称作变量,简单的讲,Mixins 其实是规则级别的复用。

嵌套的规则

在我们书写标准 CSS 的时候,遇到多层的元素嵌套这种情况时,我们要么采用从外到内的选择器嵌套定义,要么采用给特定元素加 CLASS 或 ID 的方式。

LESS 的嵌套规则的写法是 HTML 中的 DOM 结构相对应的,这样使我们的样式表书写更加简洁和更好的可读性。同时,嵌套规则使得对伪元素的操作更为方便。

清单 19. LESS 文件

1
2
3
4
5
6
7
8

a {
 color: red;
 text-decoration: none;
 &:hover {// 有 & 时解析的是同一个元素或此元素的伪类,没有 & 解析是后代元素
  color: black;
  text-decoration: underline;
 }
 }

经过编译生成的 CSS 文件如下:

清单 20. CSS 文件

1
2
3
4
5
6
7
8

a {
color: red;
text-decoration: none;
}
a:hover {
color: black;
text-decoration: underline;
}

运算及函数

在我们的 CSS 中充斥着大量的数值型的 value,比如 color、padding、margin 等,这些数值之间在某些情况下是有着一定关系的,那么我们怎样利用 LESS 来组织我们这些数值之间的关系呢?我们来看这段代码:

清单 21 . LESS 文件

1
2
3
4
5

@init: #111111;
@transition: @init*2;
.switchColor {
color: @transition;
}

经过编译生成的 CSS 文件如下:

清单 22. CSS 文件

1
2
3

.switchColor {
 color: #222222;
}

上面的例子中使用 LESS 的 operation 是 特性,其实简单的讲,就是对数值型的 value(数字、颜色、变量等)进行加减乘除四则运算。同时 LESS 还有一个专门针对 color 的操作提供一组函数。

了解less这些基本用法之后就可以着手重构任务四了,在重构期间发现自己之前由于知识的缺乏,布局很难看,利用现有的知识对其重新布局,使得代码简介,界面美观。提升自己!



返回列表 返回列表
评论

    分享到