CSS自定义响应式网格

CSS

html,body{
    margin:0;
    padding:0;
    width:100%;    
}

.grid-container{ /*响应式网格的容器*/
    width:100%;    
}

/*清除行前行后的浮动,使它能完全包含浮动的子元素*/
.row:before,.row:after{
    content:"";
    display:table;    
    clear:both;
}

/*分辨率宽度大于等于1200px*/
@media all and (min-width:1200px){
    [class*="col-lg-"]{ /* 在分辨率宽度大于等于1200px时才会有col-lg-*这组类 */
        padding:10px;
        height:70px;
        min-height:1px;/*为了避免空列高度为0发生重叠,给一个最小高度*/
        display:block;
        float:left;
        width:8.33%; /*分为12列,给一个基础比例宽度*/
        box-sizing:border-box; /*border和padding占width和height的空间*/
    }
    [class*="col-lg-"]>[class="col-container"]{ /*大屏幕下类col-container的样式*/
        width:100%;
        height:100%;
        background:#eee;
        outline:1px solid #999;    /*outline不占空间,就好像脱离了文档流一样*/
    }
    /*不同列数占的比例宽度*/
    .col-lg-1{ width:8.33%; }
    .col-lg-2{ width:16.66%; }
    .col-lg-3{ width:25%; }
    .col-lg-4{ width:33.33%; }
    .col-lg-5{ width:41.66%; }
    .col-lg-6{ width:50%; }
    .col-lg-7{ width:58.33%; }
    .col-lg-8{ width:66.66%; }
    .col-lg-9{ width:75%; }
    .col-lg-10{ width:83.33%; }
    .col-lg-11{ width:91.66%; }
    .col-lg-12{ width:100%; }
}

/*分辨率宽度大于等于768px小于等于1200px*/
@media all and (min-width:768px) and (max-width:1200px){
    [class*="col-md-"]{ /*只有在中等屏幕下才有col-md-*这组类*/
        padding:10px;
        height:70px;
        min-height:1px;
        display:block;
        float:left;
        width:8.33%;
        box-sizing:border-box;
    }
    [class*="col-md-"]>[class="col-container"]{ /*中等屏幕下类col-container的样式*/
        width:100%;
        height:100%;
        background:#eee;    
        outline:1px solid #999;    
    }
    .col-md-1{ width:8.33%; }
    .col-md-2{ width:16.66%; }
    .col-md-3{ width:25%; }
    .col-md-4{ width:33.33%; }
    .col-md-5{ width:41.66%; }
    .col-md-6{ width:50%; }
    .col-md-7{ width:58.33%; }
    .col-md-8{ width:66.66%; }
    .col-md-9{ width:75%; }
    .col-md-10{ width:83.33%; }
    .col-md-11{ width:91.66%; }
    .col-md-12{ width:100%; }    
}

HTML

    <div class="grid-container">
        <div class="row">
            <div class="col-lg-4 col-md-6"><div class="col-container"></div></div>
            <div class="col-lg-4 col-md-6"><div class="col-container"></div></div>
            <div class="col-lg-4"><div class="col-container"></div></div>
        </div>
        <div class="row">
            <div class="col-lg-3 col-md-12"><div class="col-container"></div></div>
            <div class="col-lg-6"><div class="col-container"></div></div>
            <div class="col-lg-3"><div class="col-container"></div></div>
        </div>
        <div class="row">
            <div class="col-lg-1 col-md-3"><div class="col-container"></div></div>
            <div class="col-lg-1 col-md-6"><div class="col-container"></div></div>
            <div class="col-lg-2 col-md-3"><div class="col-container"></div></div>
            <div class="col-lg-2"><div class="col-container"></div></div>
            <div class="col-lg-6"><div class="col-container"></div></div>
        </div>
        <div class="row">
            <div class="col-md-2"><div class="col-container"></div></div>
            <div class="col-md-2"><div class="col-container"></div></div>
            <div class="col-md-8"><div class="col-container"></div></div>
        </div>
        <div class="row">
            <div class="col-md-3"><div class="col-container"></div></div>
            <div class="col-md-3"><div class="col-container"></div></div>
        </div>
    </div>

大屏幕(这里指分辨率宽度大于等于1200px)的效果

小屏幕(这里指分辨率宽度大于等于768px小于等于1200px)的效果

 

posted @ 2016-12-22 20:58  feixiang92  阅读(216)  评论(0编辑  收藏  举报