zoukankan      html  css  js  c++  java
  • less 项目实战

    1.注释

    less 的注释有两种方法,"/**/" 和 "//",前一种会在 css 文件中显示,后一种不会在 css 显示。

    2.定义变量的方法:"@"加上变量名。

    @tabbarActiveColor:#26a2ff;

    3.运算

    @height: 30px;
    height: @height; // 30px
    line-height: @height - 1; // 29px

    4.继承  &

    "&"符号,这个符号起到继承的作用,这个符号就是它的父级标签(类,id等等)。

    .industry-section {
         950px;
        margin-right: auto;
        margin-left: auto;
        & > div:not(.heading) {
            padding: 40px 150px;
            & h3 {
                font-size: @fs + 12;
                margin-bottom: .5rem;
            }
            & li {
                font-size: @fs + 2;
                line-height: 1.6;
            }
        }    
    }
    

    相当于

    .industry-section {
       950px;
      margin-right: auto;
      margin-left: auto;
    }
    .industry-section > div:not(.heading) {
      padding: 40px 150px;
    }
    .industry-section > div:not(.heading) h3 {
      font-size: 28px;
      margin-bottom: .5rem;
    }
    .industry-section > div:not(.heading) li {
      font-size: 18px;
      line-height: 1.6;
    }

    5.混合

    混合可以将一个定义好的class A轻松的引入到另一个class B中,从而简单实现class B继承class A中的所有属性。我们还可以带参数地调用,就像使用函数一样。

    classA

    .page-width {    
         100%;
        max- 1920px;
        margin-right: auto;
        margin-left: auto;
    }

    classB

    body {
        .page-width;  // classB
        font-size: @fs;
        color: @text-color;
        background-color: #fff;
        font-family: "Microsoft Yahei", Arial, sans-serif;
    }

    6.媒体查询

    .application-section {
        max- 100%;
         1920px;
        height: 770px;
        margin: 30px auto;
        background: url(../images/app-scene.png) center top no-repeat;
        position: relative;
        & h2 {
            position: absolute;
            top: 70px;
            left: 50%;        
            font-size: 0;
             1200px;
            transform: translateX(-50%);
            @media (max- 1600px) {
                 1000px;
                & span {
                    font-size: @fs + 20;
                }
            }
        }
    }
    

    7.mixins  混合

    // 定义一个样式选择器  
    .borderRadius(@radius){   
        -moz-border-radius: @radius;   
        -webkit-border-radius: @radius;   
        border-radius: @radius;   
    }   
     // 使用已定义的样式选择器  
    #header {   
        .borderRadius(10px); // 把 10px 作为参数传递给样式选择器  
    }   
    .btn {   
        .borderRadius(3px);// // 把 3px 作为参数传递给样式选择器
    }

    默认值

    .borderRadius(@radius:5px){   
        -moz-border-radius: @radius;   
        -webkit-border-radius: @radius;   
        border-radius: @radius;   
    }   
    .btn {   
        .borderRadius();   
    }

    8.function

    less 包含许多内置函数

    /*把像素转成rem
      375/10  = 37.5
      375 它是ipone6的屏幕宽度
      注:将屏幕分成10等份,10rem为屏幕宽度
      例如:
      .slide-pages {
        position: absolute;
        .bottom(10);
        .right(15);
      }
    */
    .fs(@px){
      font-size: unit(@px/37.5,rem);
    }
    .w(@px){
       unit(@px/37.5,rem);
    }
    .h(@px){
      height: unit(@px/37.5,rem);
    }
    .lh(@px){
      line-height: unit(@px/37.5,rem);
    }
    .pl(@px){
      padding-left: unit(@px/37.5,rem);
    }
    .pr(@px){
      padding-right: unit(@px/37.5,rem);
    }
    .pt(@px){
      padding-top: unit(@px/37.5,rem);
    }
    .pb(@px){
      padding-bottom: unit(@px/37.5,rem);
    }
    
    .mt(@px){
      margin-top:unit(@px/37.5,rem);;
    }
    .mb(@px){
      margin-bottom:unit(@px/37.5,rem);
    }
    .ml(@px){
      margin-left:unit(@px/37.5,rem);
    }
    .mr(@px){
      margin-right:unit(@px/37.5,rem);
    }
    .top(@px){
      top:unit(@px/37.5,rem);
    }
    .bottom(@px){
      bottom:unit(@px/37.5,rem);
    }
    .left(@px){
      left:unit(@px/37.5,rem);
    }
    .right(@px){
      right:unit(@px/37.5,rem);
    }
    
    .padding(@tb,@lr){
      padding: unit(@tb/37.5,rem) unit(@lr/37.5,rem);;
    }
    .fl{
      float: left;
    }
    .fr{
      float: right;
    }
    .clearfix{
      clear: both;
    }

    自定义

    variable.less

    /*把像素转成rem
      375/10  = 37.5
      375 它是ipone6的屏幕宽度
      注:将屏幕分成10等份,10rem为屏幕宽度
      例如:
      .slide-pages {
        position: absolute;
        .bottom(10);
        .right(15);
      }
    */
    
    // 字号
    .fs(@px){
      font-size: unit(@px/36,rem);
      [data-dpr='2'] & {
        font-size: unit(@px/36,rem) * 2;
      }
      [data-dpr='3'] & {
        font-size: unit(@px/36,rem) * 3;
      }
    }
    
    // 宽度
    .w(@px){
       unit(@px/36,rem);
    }
    
    // 高度
    .h(@px){
      height: unit(@px/36,rem);
    }
    
    // 行高
    .lh(@px){
      line-height: unit(@px/36,rem);
    }
    
    // 内边距
    .pl(@px){
      padding-left: unit(@px/36,rem);
    }
    .pr(@px){
      padding-right: unit(@px/36,rem);
    }
    .pt(@px){
      padding-top: unit(@px/36,rem);
    }
    .pb(@px){
      padding-bottom: unit(@px/36,rem);
    }
    .p2(@ptb,@prl){
      padding: unit(@ptb/36,rem) unit(@prl/36,rem);
    }
    .p3(@pt,@pm,@pb){
      padding: unit(@pt/36,rem) unit(@pm/36,rem) unit(@pb/36,rem);
    }
    .p4(@pt,@pr,@pb,@pl){
      padding: unit(@pt/36,rem) unit(@pr/36,rem) unit(@pb/36,rem) unit(@pl/36,rem);
    }
    
    // 外边距
    .mt(@px){
      margin-top:unit(@px/36,rem);;
    }
    .mb(@px){
      margin-bottom:unit(@px/36,rem);
    }
    .ml(@px){
      margin-left:unit(@px/36,rem);
    }
    .mr(@px){
      margin-right:unit(@px/36,rem);
    }
    .m2(@mtb,@mrl){
      margin:unit(@mtb/36,rem) unit(@mrl/36,rem);
    }
    .m3(@mt,@mm,@mb){
      margin:unit(@mt/36,rem) unit(@mm/36,rem) unit(@mb/36,rem);
    }
    .m4(@mt,@mr,@mb,@ml){
      margin:unit(@mt/36,rem) unit(@mr/36,rem) unit(@mb/36,rem) unit(@ml/36,rem);
    }
    .ma(@mt,@mb){
      margin:unit(@mt/36,rem) auto unit(@mb/36,rem);
    }
    
    // 距离
    .t(@px){
      top:unit(@px/36,rem);
    }
    .b(@px){
      bottom:unit(@px/36,rem);
    }
    .l(@px){
      left:unit(@px/36,rem);
    }
    .r(@px){
      right:unit(@px/36,rem);
    }
    
    // 浮动
    .fl{
      float: left;
    }
    .fr{
      float: right;
    }
    
    // 清除浮动
    .clearfix{
      clear: both;
    }
    
    // 圆角
    .br(@px){
      border-radius: unit(@px/36,rem);
    }
    
    // 背景
    .bs(@width,@height){
      background-size:unit(@width/36,rem) unit(@height/36,rem);
    }
    .bp(@left,@top){
      background-position:unit(@left/36,rem) unit(@top/36,rem);
    }
    
    // 边框
    .b(@px,@type,@color){
      border: unit(@px/36,rem) @type @color;
    }
    
    /**
     * 解决1px问题
     */
    // 顶部
    .border-top-1px(@color) {
      position: relative;
      &:after {
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
         100%;
        border-bottom: 1px solid @color;
        content: ' ';
      }
    }
    
    // 底部
    .border-bottom-1px(@color) {
      position: relative;
      &:after {
        display: block;
        position: absolute;
        left: 0;
        bottom: 0;
         100%;
        border-bottom: 1px solid @color;
        content: ' ';
      }
    }

    9.继承  extend

    .animal{
      color: #fff;
    }
    /* 语法1:<selector>:extend(<parentSelector>){} */
    .bear:extend(.animal){
       100px;
      height: 100px;
    }
    /* 语法2:<selector>{ &:extend(<parentSelector>); } */
    .deer{
      &:extend(.animal);
       50px;
      height: 50px;
    }

    10.引入  @import

    @import "main.less";

    .

  • 相关阅读:
    python剑指网络篇二
    使用sklean进行多分类下的二分类
    virtualenv下使用matplotlib
    谱聚类python实践
    K均值算法-python实现
    python使用hbase
    php运算符
    php常量
    php数据类型
    git,版本控制教程
  • 原文地址:https://www.cnblogs.com/crazycode2/p/7932094.html
Copyright © 2011-2022 走看看