发表于: 2017-04-01 20:28:26

1 595


今天完成的事情:

学习了LESS。将主要特性过了一遍。


1变量的使用。


2混入:在一个class中引用另一个class。

  1. // 定义一个样式选择器
  2. .roundedCorners(@radius:5px) {
  3.     -moz-border-radius: @radius;
  4.     -webkit-border-radius: @radius;
  5.     border-radius: @radius;
  6. }
  7. // 在另外的样式选择器中使用
  8. #header {
  9.     .roundedCorners;
  10. }
  11. #footer {
  12.     .roundedCorners(10px);
  13. }


变量@arguments,代表所有变量。

  1. .boxShadow(@x:0,@y:0,@blur:1px,@color:#000){
  2.    -moz-box-shadow: @arguments;
  3.    -webkit-box-shadow: @arguments;
  4.    box-shadow: @arguments;
  5. }
  6. #header {
  7.    .boxShadow(2px,2px,3px,#f36);
  8. }


命名空间

为了解决这种情况:有大量选择器,团队协同开发时的选择器重名问题。

  1. #mynamespace {
  2.    .home {...}
  3.    .user {...}
  4. }

调用时:

  1. #mynamespace > .user


嵌套结构

对于HTML的嵌套结构,LESS也可以用类似的嵌套结构来写。

HTML:
  1. <div id="home">
  2.    <div id="top">top</div>
  3.    <div id="center">
  4.        <div id="left">left</div>
  5.        <div id="right">right</div>
  6.    </div>
  7. </div>
LESS:
  1. #home{
  2.   color : blue;
  3.   width : 600px;
  4.   height : 500px;
  5.   border:outset;
  6.   #top{
  7.        border:outset;
  8.        width : 90%;
  9.   }
  10.   #center{
  11.        border:outset;
  12.        height : 300px;
  13.        width : 90%;
  14.        #left{
  15.          border:outset;
  16.          float : left;
  17.  width : 40%;
  18.        }
  19.        #right{
  20.          border:outset;
  21.          float : left;
  22.  width : 40%;
  23.        }
  24.    }
  25. }


嵌套对于伪元素的操作
LESS:
  1. a {
  2.    color: red;
  3.    text-decoration: none;
  4.    &:hover {// 有 & 时解析的是同一个元素或此元素的伪类,没有 & 解析是后代元素
  5.        color: black;
  6.        text-decoration: underline;
  7.    }
  8. }


运算

针对数值型的值,如padding,color,margin等的计算
例如,
LESS:
  1. @init: #111111;
  2. @transition: @init*2;
  3. .switchColor {
  4.    color: @transition;
  5. }
编译后的CSS:
  1. .switchColor {
  2.    color: #222222;
  3. }


LESS 中单行注释 (// 单行注释 ) 是不能显示在编译后的 CSS 中,如果注释是针对样式说明的请使用多行注释。


继承

  1. .a:extend(.b) {}
  2. // 上面的和下面的效果一样,都是继承.a继承.b的样式
  3. .a {
  4.  &:extend(.b);
  5. }


函数

例如:将 0.5 转换为 50%,将颜色饱和度增加 5%,以及颜色亮度降低 25% 并且色相值增加 8 
  1. @base: #f04615;
  2. @width: 0.5;
  3. .class {
  4.    width: percentage(@width); // returns `50%`
  5.    color: saturate(@base, 5%);
  6.    background-color: spin(lighten(@base, 25%), 8);
  7. }


明天的计划:

开始任务11代码的编写。


遇到的问题:

串联选择器,例如.x.d{}这样,一般用在什么情况下?百度的信息太少,没看懂。


收获:

对LESS有了基本了解。


返回列表 返回列表
评论

    分享到