【LESS系列】一些常用的Mixins

在我们平时的开发中,对于一些使用频率很高的方法函数,我们一般都会将其归纳到一起,整理出一个核心库来。

其实这个思想,借助 LESS 也可以在 CSS 中得以实现。

下面是几个在 W3CPLUS 中偷过来的常用 Mixins,将其转成 LESS 版~~~

在开始前,必须说说 LESS 的一个不足之处,那就是不能像 SASS 那样使用 @if 和 @for 作判断和循环。

这使得我们无法通过传参的方式来使 Mixins 根据需要编译出PC端和移动端的样式版本。

不过个人认为,这也不是什么致命的缺陷,它还是基本能满足工作需要的了。

但正因为这个缺陷,下面转化出来的 Mixins 注定不能和 SASS 的相提并论了,我们需要根据需要,整理出PC端和移动端两个版本的 Mixins 库了。

 

//表单元素垂直居中对齐(也可设置顶对齐,底对齐)
.form-element-v-align(@alignment: middle){
  display: inline-block;
  vertical-align: @alignment;
  *vertical-align: auto;
  *display: inline;
  zoom: 1;
}

//水平居中
.horizontal-center(){
  margin-left: auto;
  margin-right: auto;
}

//绝对居中(相对于固定宽高的容器)
.absolute-center(@width, @height){
  position: absolute;
  left: 50%;
  top: 50%;
  margin-left: -(@width / 2);
  margin-top: -(@height / 2);
  width: @width;
  height: @height;
}

//浮动(主要针对PC端了...)
.float(@side: left){
  float: @side;
  _display: inline;
}

//清除浮动(其实很多时候,clear-fix也被提取为单类使用)
.clear-fix(){
  *zoom: 1;
  &:before,
  &:after {
    content: "";
    display: table;
    clear: both;
    overflow: hidden;
  }
}

//截取文本(仅针对单行)
.text-single-line-ellipsis(@height, @line-height, @width: auto){
  width: @width;
  height: @height;
  line-height: @line-height;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

//设置透明度
.opacity(@val){
  filter: alpha(opacity=@val);
  opacity: @val / 100;
}

//不可用状态
.disabled(@bgColor:#e6e6e6, @textColor:#ababab){
  background-color: @bgColor !important;
  color: @textColor !important;
  cursor: not-allowed !important;
}

//最小高度(主要针对PC端了...)
.min-height(@height){
  min-height: @height;
  height: auto !important;
  _height: @height;
}

 

posted @ 2015-03-25 16:31  前端攻城师-CZF  阅读(1674)  评论(0编辑  收藏  举报