sass实战演练06 - 把布局拆分为12列(2):拆分和偏移

本文介绍CSS中的box-sizing属性及其实现网格布局的方法,包括如何通过Sass循环生成响应式12列布局,并设置列的偏移。

css知识点
box-sizing: border-box;
让border和padding也加入总宽度的计算之内

*{
  margin: 0;
  padding: 0;
  font-size: 14px;
  box-sizing: border-box;
};

1.拆分为12列

@for $i from 1 through 12{
  .col-xs-#{$i}{
    float: left;
    width: 100% * ($i / 12);
    border: 1px solid red;
  }
}

编译之后的css如下:

.col-xs-1 {
  float: left;
  width: 8.33333%;
  border: 1px solid red; }

.col-xs-2 {
  float: left;
  width: 16.66667%;
  border: 1px solid red; }

.col-xs-3 {
  float: left;
  width: 25%;
  border: 1px solid red; }

.col-xs-4 {
  float: left;
  width: 33.33333%;
  border: 1px solid red; }

.col-xs-5 {
  float: left;
  width: 41.66667%;
  border: 1px solid red; }

.col-xs-6 {
  float: left;
  width: 50%;
  border: 1px solid red; }

.col-xs-7 {
  float: left;
  width: 58.33333%;
  border: 1px solid red; }

.col-xs-8 {
  float: left;
  width: 66.66667%;
  border: 1px solid red; }

.col-xs-9 {
  float: left;
  width: 75%;
  border: 1px solid red; }

.col-xs-10 {
  float: left;
  width: 83.33333%;
  border: 1px solid red; }

.col-xs-11 {
  float: left;
  width: 91.66667%;
  border: 1px solid red; }

.col-xs-12 {
  float: left;
  width: 100%;
  border: 1px solid red; }

在HTML模板里使用:

        <div class="col-xs-6">第一列</div>
        <div class="col-xs-6">第二列</div>

浏览器预览:
这里写图片描述

2.如何设置列的偏移?
有时候我们并不需要在一行中放满12列,比如我只放1列,且需要div往右偏移2列
我们定义规则如下:
col-xs-offset-xxx
其中xxx可以是1-12,其实所谓的便宜就是让该div的外边界设置一个相应的值就可以了
加入:

@for $i from 1 through 12{
  .col-xs-#{$i}{
    float: left;
    width: 100% * ($i / 12);
    border: 1px solid red;
  }
  .col-xs-offset-#{$i}{
    margin-left: 100% * ($i / 12);
  }
}

编译成css之后,我们来到模板上实验一下:

        <div class="col-xs-1 col-xs-offset-4">第一列</div>
        <div class="col-xs-1">第二列</div>

这里写图片描述

        <div class="col-xs-1 col-xs-offset-1">第一列</div>
        <div class="col-xs-1">第二列</div>

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值