less学习-带参数混合

简介: 在 LESS 中,你还可以像函数一样定义一个带参数的属性集合:.border-radius (@radius) { border-radius: @radius; -moz-border-radius: @ra...

在 LESS 中,你还可以像函数一样定义一个带参数的属性集合:

.border-radius (@radius) {
  border-radius: @radius;
  -moz-border-radius: @radius;
  -webkit-border-radius: @radius;
}

然后在其他class中像这样调用它:

#header {
  .border-radius(4px);
}
.button {
  .border-radius(6px);  
}

我们还可以像这样给参数设置默认值:

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

所以现在如果我们像这样调用它的话:

#header {
  .border-radius;  
}

radius的值就会是5px.

你也可以定义不带参数属性集合,如果你想隐藏这个属性集合,不让它暴露到CSS中去,但是你还想在其他的属性集合中引用,你会发现这个方法非常的好用:

.wrap () {
  text-wrap: wrap;
  white-space: pre-wrap;
  white-space: -moz-pre-wrap;
  word-wrap: break-word;
}

pre { .wrap }

输出:

pre {
  text-wrap: wrap;
  white-space: pre-wrap;
  white-space: -moz-pre-wrap;
  word-wrap: break-word;
}

@arguments 变量
@arguments包含了所有传递进来的参数. 如果你不想单独处理每一个参数的话就可以像这样写:

.box-shadow (@x: 0, @y: 0, @blur: 1px, @color: #000) {
  box-shadow: @arguments;
  -moz-box-shadow: @arguments;
  -webkit-box-shadow: @arguments;
}
.box-shadow(2px, 5px);

将会输出:

  box-shadow: 2px 5px 1px #000;
  -moz-box-shadow: 2px 5px 1px #000;
  -webkit-box-shadow: 2px 5px 1px #000;

个人博客:付博瀚的个人博客

目录
相关文章
|
4天前
|
机器学习/深度学习 算法 编译器
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
【C++ 泛型编程 中级篇】深度解析C++:类型模板参数与非类型模板参数
50 0
|
4天前
【建议】强烈推荐ES6函数自由传参的写法,针对方法体的可扩展性很有帮助
【建议】强烈推荐ES6函数自由传参的写法,针对方法体的可扩展性很有帮助
|
8月前
|
SQL 负载均衡 数据可视化
第六章:参数和变量
第六章:参数和变量
455 1
|
4天前
|
C++
在C++语言中参数的传递
在C++语言中参数的传递
7 0
|
4天前
火山中文编程 -- 类、方法、参数
火山中文编程 -- 类、方法、参数
148 0
|
10月前
|
编译器 C# C++
C++11可变模版参数的妙用 typename... 三点解析
C++11可变模版参数的妙用 typename... 三点解析
147 0
|
11月前
|
前端开发 JavaScript
Less预处理——混合方法
Less预处理——混合方法
|
存储 自然语言处理 编译器
程序环境和预处理(基本定义与实例使用)
程序环境和预处理(基本定义与实例使用)
74 0
程序环境和预处理(基本定义与实例使用)
|
自然语言处理 JavaScript 前端开发
深入理解箭头函数,学习其非常特殊且有用的特性
深入理解箭头函数,学习其非常特殊且有用的特性
92 0
深入理解箭头函数,学习其非常特殊且有用的特性
|
编译器 C++
C/C++普通函数与函数模板的区别,调用规则,模板局限性
C/C++普通函数与函数模板的区别,调用规则,模板局限性
83 0
C/C++普通函数与函数模板的区别,调用规则,模板局限性