欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

使用栅格系统和flex布局开发响应式页面源码

程序员文章站 2022-06-22 10:57:45
响应式布局的原理xsmall <576pxsmall >=576pxmedium >=768pxlarge >=992pxxlarge >=1200px 接下来是效果图 中屏及以上效果 移动端效果 方案一:使用栅格系统开发响应式页面 index.html

响应式布局的原理
xsmall <576px
small >=576px
medium >=768px
large >=992px
xlarge >=1200px

接下来是效果图

中屏及以上效果

使用栅格系统和flex布局开发响应式页面源码

移动端效果

使用栅格系统和flex布局开发响应式页面源码

使用栅格系统和flex布局开发响应式页面源码

方案一:使用栅格系统开发响应式页面

index.html

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>响应式布局</title>
    <link rel="stylesheet" href="css/base.css">
    <link rel="stylesheet" href="css/grid.css">
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <header class="header-container">
        <div class="container">
            <div class="row">
                <div class="header-logo-container col-8 col-md-3">
                    <a href="./index.html" class="header-logo">
                        <img src="img/logo.svg" alt="logo">
                    </a>
                </div>
                <!-- 下拉图标(三条杠),中屏隐藏 -->
                <div class="header-btn-container col-4 d-md-none">
                    <button type="button" class="btn-toggle" id="btn-toggle">
                        <span class="btn-toggle-bar"></span>
                        <span class="btn-toggle-bar"></span>
                        <span class="btn-toggle-bar"></span>
                    </button>
                </div>
                <!-- 中屏导航 -->
                <nav class="header-nav-container col-md-9 d-none d-md-block">
                    <ul class="header-nav">
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">手机&amp;平板</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">电视&amp;影音</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">生活家电</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">电脑/办公/存储</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">网上商城</a>
                        </li>
                    </ul>
                </nav>
            </div>
        </div>
    </header>
    <!-- 移动端导航 -->
    <nav class="nav-container d-md-none" id="nav">
        <ul class="container">
            <li><a href="###" class="nav-link">手机&amp;平板</a></li>
            <li><a href="###" class="nav-link">电视&amp;影音</a></li>
            <li><a href="###" class="nav-link">生活家电</a></li>
            <li><a href="###" class="nav-link">电脑/办公/存储</a></li>
            <li><a href="###" class="nav-link">网上商城</a></li>
        </ul>
    </nav>

    <div class="slider-container">
        <div class="container">
            <div class="row">
                <!-- 中屏位置往右7个网格 -->
                <div class="slider-text-container col-md-5 col-md-push-7">
                    <h3 class="slider-title">galaxy s9|s9+</h3>
                    <h4 class="slider-subtitle">冰蓝 焕新上市</h4>
                    <div class="slider-btns">
                        <a href="###" class="btn-rounded">了解更多</a>
                        <a href="###" class="btn-rounded">立即购买</a>
                    </div>
                </div>
                <div class="col-md-7 col-md-pull-5">
                    <img src="img/1.png" alt="cellphone">
                </div>
            </div>
        </div>
    </div>
    <!-- 中屏一行显示3张图 -->
    <div class="product-container">
        <div class="container">
            <div class="row">
                <div class="col-md-4">
                    <a href="###" class="product-item">
                        <img src="img/2-1.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
                <div class="col-md-4">
                    <a href="###" class="product-item">
                        <img src="img/2-2.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
                <div class="col-md-4">
                    <a href="###" class="product-item">
                        <img src="img/2-3.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
            </div>
        </div>
    </div>
    <!-- 移动端回到顶部 -->
    <div class="backtop-container d-md-none">
        <a href="#" class="btn-backtop">回到顶部</a>
    </div>

    <div class="helper-container">
        <div class="container">
            <div class="helper-info-container">
                <p>* galaxy a9s具备后置四摄功能,galaxy a6s为后置双摄产品。</p>
                <p>* galaxy s9 | s9+广告中手机背面图是galaxy s9+,galaxy s9为背面单摄像头产品。</p>
                <p>* 本网站的产品图片以及型号、数据、功能、性能、规格参数等仅供参考,三星有可能对上述内容进行改进,具体信息请参照产品实物、产品说明书。</p>
                <p>* 除非经特殊说明,本网站中所涉及的数据均为三星内部测试结果,涉及的对比均为与三星产品相比较。</p>
            </div>
            <!-- 中屏回到顶部 -->
            <div class="row">
                <div class="helper-backtop-container col-md-2 col-md-offset-10 d-none d-md-block">
                    <a href="#" class="btn-backtop">回到顶部</a>
                </div>
            </div>
            <!-- 底部导航,中屏一行4个,小屏一行2个 -->
            <div class="row">
                <div class="col-6 col-md-3">
                    <h3 class="helper-list-title">网站地图</h3>
                    <ul class="helper-list">
                        <li><a href="###">关于三星</a></li>
                        <li><a href="###">投资者关系</a></li>
                        <li><a href="###">新闻中心</a></li>
                        <li><a href="###">人才招聘</a></li>
                        <li><a href="###">三星开发者网站</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md-3">
                    <h3 class="helper-list-title">三星商店</h3>
                    <ul class="helper-list">
                        <li><a href="###">网上商城</a></li>
                        <li><a href="###">最新活动</a></li>
                        <li><a href="###">授权体验店</a></li>
                        <li><a href="###">全产品专卖店</a></li>
                        <li><a href="###">三星视频空间</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md-3">
                    <h3 class="helper-list-title">服务支持</h3>
                    <ul class="helper-list">
                        <li><a href="###">在线服务</a></li>
                        <li><a href="###">邮件咨询</a></li>
                        <li><a href="###">联系我们</a></li>
                        <li><a href="###">服务中心查询</a></li>
                        <li><a href="###">三星专卖店招募</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md-3">
                    <h3 class="helper-list-title">官方分享</h3>
                    <ul class="helper-list">
                        <li>
                            <a href="###" class="btn-share btn-share-weixin"></a>
                            <a href="###" class="btn-share btn-share-weibo"></a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

    <div class="footer-container">
        <div class="container">
            <div class="row">
                <div class="col-md-10">
                    <ul>
                        <li class="footer-item">
                            <a href="###" class="footer-link">服务条款</a>
                        </li>
                        <li class="footer-item">
                            <a href="###" class="footer-link">重要声明</a>
                        </li>
                        <li class="footer-item">
                            <a href="###" class="footer-link">隐私政策</a>
                        </li>
                    </ul>
                </div>
                <div class="col-md-2">
                    <a href="###" class="footer-link">中国/中文 &gt;</a>
                </div>
            </div>
            <div>
                <p>此网页最好使用ie10浏览器、chrome浏览器、safari浏览器或其他新式浏览器进行浏览</p>
                <p>京icp备xxxxxxxx号 京公网安备1101xxxxxxxx号</p>
            </div>
        </div>
    </div>

    <script>
        var nav = document.getelementbyid('nav');
        var navextendedclassname = 'nav-container-extended';

        // 移动端点击下拉按钮,展开顶部导航
        document.getelementbyid('btn-toggle').onclick = function() {
            // nav.classname += ' ' + navextendedclassname;
            if (nav.classlist.contains(navextendedclassname)) { // 收起
                nav.classlist.remove(navextendedclassname);
            } else { // 展开
                nav.classlist.add(navextendedclassname);
            }
        };
    </script>
</body>
</html>

base.css

* {
    box-sizing: border-box;
    padding: 0;
    margin: 0;
}

body {
    font-size: 14px;
}

li {
    list-style: none;
}

a {
    font-size: 14px;
    color: #363636;
    text-decoration: none;
}
a:hover {
    color: #1428a0;
}

img {
    vertical-align: top;
    width: 100%;
    border: none;
}

grid.css

.container {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
    margin-left: auto;
    margin-right: auto;
}

/*sm*/
@media (min-width: 576px) {
    .container {
        width: 540px;
    }
}
/*md*/
@media (min-width: 768px) {
    .container {
        width: 720px;
    }
}
/*lg*/
@media (min-width: 992px) {
    .container {
        width: 960px;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .container {
        width: 1140px;
    }
}

.row {
    margin-left: -15px;
    margin-right: -15px;
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12,
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
    position: relative;
    padding-left: 15px;
    padding-right: 15px;
}

.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
    float: left;
}
.col-1 {
    width: 8.33333333%;
}
.col-2 {
    width: 16.66666667%;
}
.col-3 {
    width: 25%;
}
.col-4 {
    width: 33.33333333%;
}
.col-5 {
    width: 41.66666667%;
}
.col-6 {
    width: 50%;
}
.col-7 {
    width: 58.33333333%;
}
.col-8 {
    width: 66.66666667%;
}
.col-9 {
    width: 75%;
}
.col-10 {
    width: 83.33333333%;
}
.col-11 {
    width: 91.66666667%;
}
.col-12 {
    width: 100%;
}

.col-offset-12 {
    margin-left: 100%;
}
.col-offset-11 {
    margin-left: 91.66666667%;
}
.col-offset-10 {
    margin-left: 83.33333333%;
}
.col-offset-9 {
    margin-left: 75%;
}
.col-offset-8 {
    margin-left: 66.66666667%;
}
.col-offset-7 {
    margin-left: 58.33333333%;
}
.col-offset-6 {
    margin-left: 50%;
}
.col-offset-5 {
    margin-left: 41.66666667%;
}
.col-offset-4 {
    margin-left: 33.33333333%;
}
.col-offset-3 {
    margin-left: 25%;
}
.col-offset-2 {
    margin-left: 16.66666667%;
}
.col-offset-1 {
    margin-left: 8.33333333%;
}
.col-offset-0 {
    margin-left: 0;
}

.col-pull-12 {
    right: 100%;
}
.col-pull-11 {
    right: 91.66666667%;
}
.col-pull-10 {
    right: 83.33333333%;
}
.col-pull-9 {
    right: 75%;
}
.col-pull-8 {
    right: 66.66666667%;
}
.col-pull-7 {
    right: 58.33333333%;
}
.col-pull-6 {
    right: 50%;
}
.col-pull-5 {
    right: 41.66666667%;
}
.col-pull-4 {
    right: 33.33333333%;
}
.col-pull-3 {
    right: 25%;
}
.col-pull-2 {
    right: 16.66666667%;
}
.col-pull-1 {
    right: 8.33333333%;
}
.col-pull-0 {
    right: auto;
}
.col-push-12 {
    left: 100%;
}
.col-push-11 {
    left: 91.66666667%;
}
.col-push-10 {
    left: 83.33333333%;
}
.col-push-9 {
    left: 75%;
}
.col-push-8 {
    left: 66.66666667%;
}
.col-push-7 {
    left: 58.33333333%;
}
.col-push-6 {
    left: 50%;
}
.col-push-5 {
    left: 41.66666667%;
}
.col-push-4 {
    left: 33.33333333%;
}
.col-push-3 {
    left: 25%;
}
.col-push-2 {
    left: 16.66666667%;
}
.col-push-1 {
    left: 8.33333333%;
}
.col-push-0 {
    left: auto;
}

/*sm*/
@media (min-width: 576px) {
    .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 {
        float: left;
    }
    .col-sm-1 {
        width: 8.33333333%;
    }
    .col-sm-2 {
        width: 16.66666667%;
    }
    .col-sm-3 {
        width: 25%;
    }
    .col-sm-4 {
        width: 33.33333333%;
    }
    .col-sm-5 {
        width: 41.66666667%;
    }
    .col-sm-6 {
        width: 50%;
    }
    .col-sm-7 {
        width: 58.33333333%;
    }
    .col-sm-8 {
        width: 66.66666667%;
    }
    .col-sm-9 {
        width: 75%;
    }
    .col-sm-10 {
        width: 83.33333333%;
    }
    .col-sm-11 {
        width: 91.66666667%;
    }
    .col-sm-12 {
        width: 100%;
    }

    .col-sm-offset-12 {
        margin-left: 100%;
    }
    .col-sm-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-sm-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-sm-offset-9 {
        margin-left: 75%;
    }
    .col-sm-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-sm-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-sm-offset-6 {
        margin-left: 50%;
    }
    .col-sm-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-sm-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-sm-offset-3 {
        margin-left: 25%;
    }
    .col-sm-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-sm-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-sm-offset-0 {
        margin-left: 0;
    }

    .col-sm-pull-12 {
        right: 100%;
    }
    .col-sm-pull-11 {
        right: 91.66666667%;
    }
    .col-sm-pull-10 {
        right: 83.33333333%;
    }
    .col-sm-pull-9 {
        right: 75%;
    }
    .col-sm-pull-8 {
        right: 66.66666667%;
    }
    .col-sm-pull-7 {
        right: 58.33333333%;
    }
    .col-sm-pull-6 {
        right: 50%;
    }
    .col-sm-pull-5 {
        right: 41.66666667%;
    }
    .col-sm-pull-4 {
        right: 33.33333333%;
    }
    .col-sm-pull-3 {
        right: 25%;
    }
    .col-sm-pull-2 {
        right: 16.66666667%;
    }
    .col-sm-pull-1 {
        right: 8.33333333%;
    }
    .col-sm-pull-0 {
        right: auto;
    }
    .col-sm-push-12 {
        left: 100%;
    }
    .col-sm-push-11 {
        left: 91.66666667%;
    }
    .col-sm-push-10 {
        left: 83.33333333%;
    }
    .col-sm-push-9 {
        left: 75%;
    }
    .col-sm-push-8 {
        left: 66.66666667%;
    }
    .col-sm-push-7 {
        left: 58.33333333%;
    }
    .col-sm-push-6 {
        left: 50%;
    }
    .col-sm-push-5 {
        left: 41.66666667%;
    }
    .col-sm-push-4 {
        left: 33.33333333%;
    }
    .col-sm-push-3 {
        left: 25%;
    }
    .col-sm-push-2 {
        left: 16.66666667%;
    }
    .col-sm-push-1 {
        left: 8.33333333%;
    }
    .col-sm-push-0 {
        left: auto;
    }
}
/*md*/
@media (min-width: 768px) {
    .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 {
        float: left;
    }
    .col-md-1 {
        width: 8.33333333%;
    }
    .col-md-2 {
        width: 16.66666667%;
    }
    .col-md-3 {
        width: 25%;
    }
    .col-md-4 {
        width: 33.33333333%;
    }
    .col-md-5 {
        width: 41.66666667%;
    }
    .col-md-6 {
        width: 50%;
    }
    .col-md-7 {
        width: 58.33333333%;
    }
    .col-md-8 {
        width: 66.66666667%;
    }
    .col-md-9 {
        width: 75%;
    }
    .col-md-10 {
        width: 83.33333333%;
    }
    .col-md-11 {
        width: 91.66666667%;
    }
    .col-md-12 {
        width: 100%;
    }

    .col-md-offset-12 {
        margin-left: 100%;
    }
    .col-md-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-md-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-md-offset-9 {
        margin-left: 75%;
    }
    .col-md-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-md-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-md-offset-6 {
        margin-left: 50%;
    }
    .col-md-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-md-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-md-offset-3 {
        margin-left: 25%;
    }
    .col-md-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-md-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-md-offset-0 {
        margin-left: 0;
    }

    .col-md-pull-12 {
        right: 100%;
    }
    .col-md-pull-11 {
        right: 91.66666667%;
    }
    .col-md-pull-10 {
        right: 83.33333333%;
    }
    .col-md-pull-9 {
        right: 75%;
    }
    .col-md-pull-8 {
        right: 66.66666667%;
    }
    .col-md-pull-7 {
        right: 58.33333333%;
    }
    .col-md-pull-6 {
        right: 50%;
    }
    .col-md-pull-5 {
        right: 41.66666667%;
    }
    .col-md-pull-4 {
        right: 33.33333333%;
    }
    .col-md-pull-3 {
        right: 25%;
    }
    .col-md-pull-2 {
        right: 16.66666667%;
    }
    .col-md-pull-1 {
        right: 8.33333333%;
    }
    .col-md-pull-0 {
        right: auto;
    }
    .col-md-push-12 {
        left: 100%;
    }
    .col-md-push-11 {
        left: 91.66666667%;
    }
    .col-md-push-10 {
        left: 83.33333333%;
    }
    .col-md-push-9 {
        left: 75%;
    }
    .col-md-push-8 {
        left: 66.66666667%;
    }
    .col-md-push-7 {
        left: 58.33333333%;
    }
    .col-md-push-6 {
        left: 50%;
    }
    .col-md-push-5 {
        left: 41.66666667%;
    }
    .col-md-push-4 {
        left: 33.33333333%;
    }
    .col-md-push-3 {
        left: 25%;
    }
    .col-md-push-2 {
        left: 16.66666667%;
    }
    .col-md-push-1 {
        left: 8.33333333%;
    }
    .col-md-push-0 {
        left: auto;
    }
}
/*lg*/
@media (min-width: 992px) {
    .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 {
        float: left;
    }
    .col-lg-1 {
        width: 8.33333333%;
    }
    .col-lg-2 {
        width: 16.66666667%;
    }
    .col-lg-3 {
        width: 25%;
    }
    .col-lg-4 {
        width: 33.33333333%;
    }
    .col-lg-5 {
        width: 41.66666667%;
    }
    .col-lg-6 {
        width: 50%;
    }
    .col-lg-7 {
        width: 58.33333333%;
    }
    .col-lg-8 {
        width: 66.66666667%;
    }
    .col-lg-9 {
        width: 75%;
    }
    .col-lg-10 {
        width: 83.33333333%;
    }
    .col-lg-11 {
        width: 91.66666667%;
    }
    .col-lg-12 {
        width: 100%;
    }

    .col-lg-offset-12 {
        margin-left: 100%;
    }
    .col-lg-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-lg-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-lg-offset-9 {
        margin-left: 75%;
    }
    .col-lg-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-lg-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-lg-offset-6 {
        margin-left: 50%;
    }
    .col-lg-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-lg-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-lg-offset-3 {
        margin-left: 25%;
    }
    .col-lg-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-lg-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-lg-offset-0 {
        margin-left: 0;
    }

    .col-lg-pull-12 {
        right: 100%;
    }
    .col-lg-pull-11 {
        right: 91.66666667%;
    }
    .col-lg-pull-10 {
        right: 83.33333333%;
    }
    .col-lg-pull-9 {
        right: 75%;
    }
    .col-lg-pull-8 {
        right: 66.66666667%;
    }
    .col-lg-pull-7 {
        right: 58.33333333%;
    }
    .col-lg-pull-6 {
        right: 50%;
    }
    .col-lg-pull-5 {
        right: 41.66666667%;
    }
    .col-lg-pull-4 {
        right: 33.33333333%;
    }
    .col-lg-pull-3 {
        right: 25%;
    }
    .col-lg-pull-2 {
        right: 16.66666667%;
    }
    .col-lg-pull-1 {
        right: 8.33333333%;
    }
    .col-lg-pull-0 {
        right: auto;
    }
    .col-lg-push-12 {
        left: 100%;
    }
    .col-lg-push-11 {
        left: 91.66666667%;
    }
    .col-lg-push-10 {
        left: 83.33333333%;
    }
    .col-lg-push-9 {
        left: 75%;
    }
    .col-lg-push-8 {
        left: 66.66666667%;
    }
    .col-lg-push-7 {
        left: 58.33333333%;
    }
    .col-lg-push-6 {
        left: 50%;
    }
    .col-lg-push-5 {
        left: 41.66666667%;
    }
    .col-lg-push-4 {
        left: 33.33333333%;
    }
    .col-lg-push-3 {
        left: 25%;
    }
    .col-lg-push-2 {
        left: 16.66666667%;
    }
    .col-lg-push-1 {
        left: 8.33333333%;
    }
    .col-lg-push-0 {
        left: auto;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
        float: left;
    }
    .col-xl-1 {
        width: 8.33333333%;
    }
    .col-xl-2 {
        width: 16.66666667%;
    }
    .col-xl-3 {
        width: 25%;
    }
    .col-xl-4 {
        width: 33.33333333%;
    }
    .col-xl-5 {
        width: 41.66666667%;
    }
    .col-xl-6 {
        width: 50%;
    }
    .col-xl-7 {
        width: 58.33333333%;
    }
    .col-xl-8 {
        width: 66.66666667%;
    }
    .col-xl-9 {
        width: 75%;
    }
    .col-xl-10 {
        width: 83.33333333%;
    }
    .col-xl-11 {
        width: 91.66666667%;
    }
    .col-xl-12 {
        width: 100%;
    }

    .col-xl-offset-12 {
        margin-left: 100%;
    }
    .col-xl-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-xl-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-xl-offset-9 {
        margin-left: 75%;
    }
    .col-xl-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-xl-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-xl-offset-6 {
        margin-left: 50%;
    }
    .col-xl-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-xl-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-xl-offset-3 {
        margin-left: 25%;
    }
    .col-xl-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-xl-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-xl-offset-0 {
        margin-left: 0;
    }

    .col-xl-pull-12 {
        right: 100%;
    }
    .col-xl-pull-11 {
        right: 91.66666667%;
    }
    .col-xl-pull-10 {
        right: 83.33333333%;
    }
    .col-xl-pull-9 {
        right: 75%;
    }
    .col-xl-pull-8 {
        right: 66.66666667%;
    }
    .col-xl-pull-7 {
        right: 58.33333333%;
    }
    .col-xl-pull-6 {
        right: 50%;
    }
    .col-xl-pull-5 {
        right: 41.66666667%;
    }
    .col-xl-pull-4 {
        right: 33.33333333%;
    }
    .col-xl-pull-3 {
        right: 25%;
    }
    .col-xl-pull-2 {
        right: 16.66666667%;
    }
    .col-xl-pull-1 {
        right: 8.33333333%;
    }
    .col-xl-pull-0 {
        right: auto;
    }
    .col-xl-push-12 {
        left: 100%;
    }
    .col-xl-push-11 {
        left: 91.66666667%;
    }
    .col-xl-push-10 {
        left: 83.33333333%;
    }
    .col-xl-push-9 {
        left: 75%;
    }
    .col-xl-push-8 {
        left: 66.66666667%;
    }
    .col-xl-push-7 {
        left: 58.33333333%;
    }
    .col-xl-push-6 {
        left: 50%;
    }
    .col-xl-push-5 {
        left: 41.66666667%;
    }
    .col-xl-push-4 {
        left: 33.33333333%;
    }
    .col-xl-push-3 {
        left: 25%;
    }
    .col-xl-push-2 {
        left: 16.66666667%;
    }
    .col-xl-push-1 {
        left: 8.33333333%;
    }
    .col-xl-push-0 {
        left: auto;
    }
}

.d-none {
    display: none !important;
}
.d-block {
    display: block !important;
}

/*sm*/
@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }
    .d-sm-block {
        display: block !important;
    }
}
/*md*/
@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }
    .d-md-block {
        display: block !important;
    }
}
/*lg*/
@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }
    .d-lg-block {
        display: block !important;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }
    .d-xl-block {
        display: block !important;
    }
}

.clearfix:after,
.clearfix:before,
.container:after,
.container:before,
.row:after,
.row:before {
    display: table;
    content: ' ';
}
.clearfix:after,
.container:after,
.row:after {
    clear: both;
}

index.css

/*-- 布局 start --*/

/*header*/
.header-container {
    background-color: #fff;
    border-bottom: 1px solid #dadada;
}
.header-logo-container,
.header-btn-container,
.header-nav-container {
    height: 64px;
}
.header-btn-container {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

/*nav*/
.nav-container {
    overflow: hidden;
    position: relative;
    top: -1px;
    height: 0;
    border-bottom: 1px solid #dadada;
    transition: height 0.5s;
}
.nav-container-extended {
    top: 0;
    height: 201px;
}

/*slider*/
.slider-container {
    margin-top: 20px;
    margin-bottom: 20px;
}
.slider-container .row {
    background-color: #f5f5f5;
    margin-left: 0;
    margin-right: 0;
}
@media (min-width: 768px) {
    .slider-container .row {
        display: flex;
        align-items: center;
    }
}
.slider-text-container {
    padding: 20px 0;
}

/*product*/
.product-container {
    margin-bottom: 20px;
}

/*backtop*/
.backtop-container {
    background-color: #fff;
    border-top: 1px solid #dadada;
    border-bottom: 1px solid #dadada;
}

/*helper*/
.helper-container {
    padding-top: 20px;
    padding-bottom: 10px;
    background-color: #f7f7f7;
    font-size: 12px;
    line-height: 2;
}
.helper-info-container {
    margin-bottom: 20px;
    line-height: 1.6;
}
.helper-backtop-container {
    margin-bottom: 10px;
}

/*footer*/
.footer-container {
    padding: 15px 0;
    background-color: #363636;
    color: #a6a6a6;
    font-size: 12px;
    line-height: 2;
}

/*-- 布局 end --*/


/*-- 组件 start --*/

/*btn-toggle*/
.btn-toggle {
    padding: 10px;
    background-color: transparent;
    border: none;
    border-radius: 4px;
    cursor: pointer;
}
.btn-toggle:hover {
    background-color: #f9f9f9;
}
.btn-toggle:hover .btn-toggle-bar {
    background-color: #1428a0;
}
.btn-toggle-bar {
    display: block;
    width: 24px;
    height: 4px;
    background-color: #363636;
    border-radius: 2px;
}
.btn-toggle-bar + .btn-toggle-bar {
    margin-top: 4px;
}

/*btn-rounded*/
.btn-rounded {
    display: inline-block;
    padding: 10px 30px;
    background-color: transparent;
    border: 1px solid #000;
    border-radius: 30px;
    color: #000;
    font-size: 16px;
    font-weight: bold;
    transition: all 0.3s;
}
.btn-rounded:hover {
    background-color: #000;
    color: #fff;
}

/*btn-backtop*/
.btn-backtop:after {
    content: '';
    position: relative;
    top: -2px;
    left: 5px;
    display: inline-block;
    width: 10px;
    height: 6px;
    background-image: url(../img/up.svg);
}
.btn-backtop:hover:after {
    background-image: url(../img/up-hover.svg);
}

/*btn-share*/
.btn-share {
    display: inline-block;
    width: 30px;
    height: 30px;
    background-size: 100% 100%;
}
.btn-share-weixin {
    background-image: url(../img/weixin.svg);
}
.btn-share-weixin:hover {
    background-image: url(../img/weixin-hover.svg);
}
.btn-share-weibo {
    background-image: url(../img/weibo.svg);
}
.btn-share-weibo:hover {
    background-image: url(../img/weibo-hover.svg);
}

/*-- 组件 end --*/


/*-- 内容 start --*/

/*header*/
.header-logo {
    display: flex;
    align-items: center;
    width: 136px;
    height: 100%;
}
.header-nav,
.header-nav-item,
.header-nav-link {
    height: 100%;
}
.header-nav {
    display: flex;
    justify-content: flex-end;
    font-size: 14px;
}
.header-nav-item {
    margin-left: 24px;
}
.header-nav-item:first-child {
    margin-left: 0;
}
.header-nav-link {
    display: flex;
    align-items: center;
    font-weight: bold;
}

/*nav*/
.nav-link {
    display: block;
    height: 40px;
    line-height: 40px;
    font-weight: bold;
}

/*slider*/
.slider-title,
.slider-subtitle,
.slider-btns {
    margin-bottom: 20px;
    text-align: center;
}
.slider-title {
    font-size: 30px;
}
.slider-subtitle {
    font-size: 20px;
    font-weight: normal;
}
.slider-btns .btn-rounded {
    margin-right: 10px;
    margin-bottom: 10px;
}
.slider-btns .btn-rounded:last-child {
    margin-right: 0;
}

/*product*/
.product-item {
    overflow: hidden;
    display: block;
}
.product-img {
    transition: transform 1s;
}
.product-img:hover {
    transform: scale(1.2);
}

/*backtop*/
.backtop-container .btn-backtop {
    display: block;
    padding: 18px 0;
    text-align: center;
}

/*helper*/
.helper-list-title {
    font-size: 16px;
}
.helper-list {
    margin-bottom: 10px;
}
.helper-list .btn-share {
    margin-top: 10px;
    margin-right: 12px;
}
.helper-list .btn-share:last-child {
    margin-right: 0;
}

/*footer*/
.footer-item {
    display: inline-block;
    margin-right: 20px;
}
.footer-item:last-child {
    margin-right: 0;
}
.footer-link {
    color: #fff;
    font-size: 14px;
    font-weight: bold;
}
.footer-link:hover {
    color: #fff;
    text-decoration: underline;
}

/*-- 内容 end --*/

方案2:用flex布局实现栅格系统

index-flex.html

<!doctype html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>响应式布局--flex</title>
    <link rel="stylesheet" href="css/base.css">
    <link rel="stylesheet" href="css/grid-flex.css">
    <link rel="stylesheet" href="css/index.css">
</head>
<body>
    <header class="header-container">
        <div class="container">
            <div class="row">
                <div class="header-logo-container col-8 col-md-3">
                    <a href="./index.html" class="header-logo">
                        <img src="img/logo.svg" alt="logo">
                    </a>
                </div>
                <div class="header-btn-container col-4 d-md-none">
                    <button type="button" class="btn-toggle" id="btn-toggle">
                        <span class="btn-toggle-bar"></span>
                        <span class="btn-toggle-bar"></span>
                        <span class="btn-toggle-bar"></span>
                    </button>
                </div>
                <nav class="header-nav-container col-md-9 d-none d-md-block">
                    <ul class="header-nav">
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">手机&amp;平板</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">电视&amp;影音</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">生活家电</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">电脑/办公/存储</a>
                        </li>
                        <li class="header-nav-item">
                            <a href="###" class="header-nav-link">网上商城</a>
                        </li>
                    </ul>
                </nav>
            </div>
        </div>
    </header>

    <nav class="nav-container d-md-none" id="nav">
        <ul class="container">
            <li><a href="###" class="nav-link">手机&amp;平板</a></li>
            <li><a href="###" class="nav-link">电视&amp;影音</a></li>
            <li><a href="###" class="nav-link">生活家电</a></li>
            <li><a href="###" class="nav-link">电脑/办公/存储</a></li>
            <li><a href="###" class="nav-link">网上商城</a></li>
        </ul>
    </nav>

    <div class="slider-container">
        <div class="container">
            <div class="row">
                <div class="slider-text-container col-md-5 col-md-order-last">
                    <h3 class="slider-title">galaxy s9|s9+</h3>
                    <h4 class="slider-subtitle">冰蓝 焕新上市</h4>
                    <div class="slider-btns">
                        <a href="###" class="btn-rounded">了解更多</a>
                        <a href="###" class="btn-rounded">立即购买</a>
                    </div>
                </div>
                <div class="col-md-7 col-md-order-first">
                    <img src="img/1.png" alt="cellphone">
                </div>
            </div>
        </div>
    </div>

    <div class="product-container">
        <div class="container">
            <div class="row">
                <div class="col-md">
                    <a href="###" class="product-item">
                        <img src="img/2-1.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
                <div class="col-md">
                    <a href="###" class="product-item">
                        <img src="img/2-2.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
                <div class="col-md">
                    <a href="###" class="product-item">
                        <img src="img/2-3.jpg" alt="cellphone" class="product-img">
                    </a>
                </div>
            </div>
        </div>
    </div>

    <div class="backtop-container d-md-none">
        <a href="#" class="btn-backtop">回到顶部</a>
    </div>

    <div class="helper-container">
        <div class="container">
            <div class="helper-info-container">
                <p>* galaxy a9s具备后置四摄功能,galaxy a6s为后置双摄产品。</p>
                <p>* galaxy s9 | s9+广告中手机背面图是galaxy s9+,galaxy s9为背面单摄像头产品。</p>
                <p>* 本网站的产品图片以及型号、数据、功能、性能、规格参数等仅供参考,三星有可能对上述内容进行改进,具体信息请参照产品实物、产品说明书。</p>
                <p>* 除非经特殊说明,本网站中所涉及的数据均为三星内部测试结果,涉及的对比均为与三星产品相比较。</p>
            </div>
            <div class="row">
                <div class="helper-backtop-container col-md-2 col-md-offset-10 d-none d-md-block">
                    <a href="#" class="btn-backtop">回到顶部</a>
                </div>
            </div>
            <div class="row">
                <div class="col-6 col-md">
                    <h3 class="helper-list-title">网站地图</h3>
                    <ul class="helper-list">
                        <li><a href="###">关于三星</a></li>
                        <li><a href="###">投资者关系</a></li>
                        <li><a href="###">新闻中心</a></li>
                        <li><a href="###">人才招聘</a></li>
                        <li><a href="###">三星开发者网站</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md">
                    <h3 class="helper-list-title">三星商店</h3>
                    <ul class="helper-list">
                        <li><a href="###">网上商城</a></li>
                        <li><a href="###">最新活动</a></li>
                        <li><a href="###">授权体验店</a></li>
                        <li><a href="###">全产品专卖店</a></li>
                        <li><a href="###">三星视频空间</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md">
                    <h3 class="helper-list-title">服务支持</h3>
                    <ul class="helper-list">
                        <li><a href="###">在线服务</a></li>
                        <li><a href="###">邮件咨询</a></li>
                        <li><a href="###">联系我们</a></li>
                        <li><a href="###">服务中心查询</a></li>
                        <li><a href="###">三星专卖店招募</a></li>
                    </ul>
                </div>
                <div class="col-6 col-md">
                    <h3 class="helper-list-title">官方分享</h3>
                    <ul class="helper-list">
                        <li>
                            <a href="###" class="btn-share btn-share-weixin"></a>
                            <a href="###" class="btn-share btn-share-weibo"></a>
                        </li>
                    </ul>
                </div>
            </div>
        </div>
    </div>

    <div class="footer-container">
        <div class="container">
            <div class="row">
                <div class="col-md-10">
                    <ul>
                        <li class="footer-item">
                            <a href="###" class="footer-link">服务条款</a>
                        </li>
                        <li class="footer-item">
                            <a href="###" class="footer-link">重要声明</a>
                        </li>
                        <li class="footer-item">
                            <a href="###" class="footer-link">隐私政策</a>
                        </li>
                    </ul>
                </div>
                <div class="col-md-2">
                    <a href="###" class="footer-link">中国/中文 &gt;</a>
                </div>
            </div>
            <div>
                <p>此网页最好使用ie10浏览器、chrome浏览器、safari浏览器或其他新式浏览器进行浏览</p>
                <p>京icp备05068163号 京公网安备110105011756号</p>
            </div>
        </div>
    </div>

    <script>
        var nav = document.getelementbyid('nav');
        var navextendedclassname = 'nav-container-extended';

        document.getelementbyid('btn-toggle').onclick = function() {
            // nav.classname += ' ' + navextendedclassname;
            if (nav.classlist.contains(navextendedclassname)) { // 收起
                nav.classlist.remove(navextendedclassname);
            } else { // 展开
                nav.classlist.add(navextendedclassname);
            }
        };
    </script>
</body>
</html>

grid-flex.css

.container {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
    margin-left: auto;
    margin-right: auto;
}

/*sm*/
@media (min-width: 576px) {
    .container {
        width: 540px;
    }
}
/*md*/
@media (min-width: 768px) {
    .container {
        width: 720px;
    }
}
/*lg*/
@media (min-width: 992px) {
    .container {
        width: 960px;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .container {
        width: 1140px;
    }
}

.row {
    display: flex;
    flex-wrap: wrap;
    margin-left: -15px;
    margin-right: -15px;
}

.col, .col-sm, .col-md, .col-lg, .clo-xl,
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12,
.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12,
.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12,
.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12,
.col-xl-1, .col-xl-2, .col-xl-3, .col-xl-4, .col-xl-5, .col-xl-6, .col-xl-7, .col-xl-8, .col-xl-9, .col-xl-10, .col-xl-11, .col-xl-12 {
    width: 100%;
    padding-left: 15px;
    padding-right: 15px;
}

.col {
    flex-basis: 0;
    flex-grow: 1;
}
.col-1 {
    flex: 0 0 8.33333333%;
}
.col-2 {
    flex: 0 0 16.66666667%;
}
.col-3 {
    flex: 0 0 25%;
}
.col-4 {
    flex: 0 0 33.33333333%;
}
.col-5 {
    flex: 0 0 41.66666667%;
}
.col-6 {
    flex: 0 0 50%;
}
.col-7 {
    flex: 0 0 58.33333333%;
}
.col-8 {
    flex: 0 0 66.66666667%;
}
.col-9 {
    flex: 0 0 75%;
}
.col-10 {
    flex: 0 0 83.33333333%;
}
.col-11 {
    flex: 0 0 91.66666667%;
}
.col-12 {
    flex: 0 0 100%;
}

.col-offset-12 {
    margin-left: 100%;
}
.col-offset-11 {
    margin-left: 91.66666667%;
}
.col-offset-10 {
    margin-left: 83.33333333%;
}
.col-offset-9 {
    margin-left: 75%;
}
.col-offset-8 {
    margin-left: 66.66666667%;
}
.col-offset-7 {
    margin-left: 58.33333333%;
}
.col-offset-6 {
    margin-left: 50%;
}
.col-offset-5 {
    margin-left: 41.66666667%;
}
.col-offset-4 {
    margin-left: 33.33333333%;
}
.col-offset-3 {
    margin-left: 25%;
}
.col-offset-2 {
    margin-left: 16.66666667%;
}
.col-offset-1 {
    margin-left: 8.33333333%;
}
.col-offset-0 {
    margin-left: 0;
}

.col-order-first {
    order: -1;
}
.col-order-last {
    order: 13;
}
.col-order-0 {
    order: 0;
}
.col-order-1 {
    order: 1;
}
.col-order-2 {
    order: 2;
}
.col-order-3 {
    order: 3;
}
.col-order-4 {
    order: 4;
}
.col-order-5 {
    order: 5;
}
.col-order-6 {
    order: 6;
}
.col-order-7 {
    order: 7;
}
.col-order-8 {
    order: 8;
}
.col-order-9 {
    order: 9;
}
.col-order-10 {
    order: 10;
}
.col-order-11 {
    order: 11;
}
.col-order-12 {
    order: 12;
}

/*sm*/
@media (min-width: 576px) {
    .col-sm {
        flex-basis: 0;
        flex-grow: 1;
    }

    .col-sm-1 {
        flex: 0 0 8.33333333%;
    }
    .col-sm-2 {
        flex: 0 0 16.66666667%;
    }
    .col-sm-3 {
        flex: 0 0 25%;
    }
    .col-sm-4 {
        flex: 0 0 33.33333333%;
    }
    .col-sm-5 {
        flex: 0 0 41.66666667%;
    }
    .col-sm-6 {
        flex: 0 0 50%;
    }
    .col-sm-7 {
        flex: 0 0 58.33333333%;
    }
    .col-sm-8 {
        flex: 0 0 66.66666667%;
    }
    .col-sm-9 {
        flex: 0 0 75%;
    }
    .col-sm-10 {
        flex: 0 0 83.33333333%;
    }
    .col-sm-11 {
        flex: 0 0 91.66666667%;
    }
    .col-sm-12 {
        flex: 0 0 100%;
    }

    .col-sm-offset-12 {
        margin-left: 100%;
    }
    .col-sm-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-sm-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-sm-offset-9 {
        margin-left: 75%;
    }
    .col-sm-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-sm-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-sm-offset-6 {
        margin-left: 50%;
    }
    .col-sm-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-sm-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-sm-offset-3 {
        margin-left: 25%;
    }
    .col-sm-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-sm-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-sm-offset-0 {
        margin-left: 0;
    }

    .col-sm-order-first {
        order: -1;
    }
    .col-sm-order-last {
        order: 13;
    }
    .col-sm-order-0 {
        order: 0;
    }
    .col-sm-order-1 {
        order: 1;
    }
    .col-sm-order-2 {
        order: 2;
    }
    .col-sm-order-3 {
        order: 3;
    }
    .col-sm-order-4 {
        order: 4;
    }
    .col-sm-order-5 {
        order: 5;
    }
    .col-sm-order-6 {
        order: 6;
    }
    .col-sm-order-7 {
        order: 7;
    }
    .col-sm-order-8 {
        order: 8;
    }
    .col-sm-order-9 {
        order: 9;
    }
    .col-sm-order-10 {
        order: 10;
    }
    .col-sm-order-11 {
        order: 11;
    }
    .col-sm-order-12 {
        order: 12;
    }
}
/*md*/
@media (min-width: 768px) {
    .col-md {
        flex-basis: 0;
        flex-grow: 1;
    }

    .col-md-1 {
        flex: 0 0 8.33333333%;
    }
    .col-md-2 {
        flex: 0 0 16.66666667%;
    }
    .col-md-3 {
        flex: 0 0 25%;
    }
    .col-md-4 {
        flex: 0 0 33.33333333%;
    }
    .col-md-5 {
        flex: 0 0 41.66666667%;
    }
    .col-md-6 {
        flex: 0 0 50%;
    }
    .col-md-7 {
        flex: 0 0 58.33333333%;
    }
    .col-md-8 {
        flex: 0 0 66.66666667%;
    }
    .col-md-9 {
        flex: 0 0 75%;
    }
    .col-md-10 {
        flex: 0 0 83.33333333%;
    }
    .col-md-11 {
        flex: 0 0 91.66666667%;
    }
    .col-md-12 {
        flex: 0 0 100%;
    }

    .col-md-offset-12 {
        margin-left: 100%;
    }
    .col-md-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-md-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-md-offset-9 {
        margin-left: 75%;
    }
    .col-md-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-md-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-md-offset-6 {
        margin-left: 50%;
    }
    .col-md-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-md-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-md-offset-3 {
        margin-left: 25%;
    }
    .col-md-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-md-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-md-offset-0 {
        margin-left: 0;
    }

    .col-md-order-first {
        order: -1;
    }
    .col-md-order-last {
        order: 13;
    }
    .col-md-order-0 {
        order: 0;
    }
    .col-md-order-1 {
        order: 1;
    }
    .col-md-order-2 {
        order: 2;
    }
    .col-md-order-3 {
        order: 3;
    }
    .col-md-order-4 {
        order: 4;
    }
    .col-md-order-5 {
        order: 5;
    }
    .col-md-order-6 {
        order: 6;
    }
    .col-md-order-7 {
        order: 7;
    }
    .col-md-order-8 {
        order: 8;
    }
    .col-md-order-9 {
        order: 9;
    }
    .col-md-order-10 {
        order: 10;
    }
    .col-md-order-11 {
        order: 11;
    }
    .col-md-order-12 {
        order: 12;
    }
}
/*lg*/
@media (min-width: 992px) {
    .col-lg {
        flex-basis: 0;
        flex-grow: 1;
    }

    .col-lg-1 {
        flex: 0 0 8.33333333%;
    }
    .col-lg-2 {
        flex: 0 0 16.66666667%;
    }
    .col-lg-3 {
        flex: 0 0 25%;
    }
    .col-lg-4 {
        flex: 0 0 33.33333333%;
    }
    .col-lg-5 {
        flex: 0 0 41.66666667%;
    }
    .col-lg-6 {
        flex: 0 0 50%;
    }
    .col-lg-7 {
        flex: 0 0 58.33333333%;
    }
    .col-lg-8 {
        flex: 0 0 66.66666667%;
    }
    .col-lg-9 {
        flex: 0 0 75%;
    }
    .col-lg-10 {
        flex: 0 0 83.33333333%;
    }
    .col-lg-11 {
        flex: 0 0 91.66666667%;
    }
    .col-lg-12 {
        flex: 0 0 100%;
    }

    .col-lg-offset-12 {
        margin-left: 100%;
    }
    .col-lg-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-lg-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-lg-offset-9 {
        margin-left: 75%;
    }
    .col-lg-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-lg-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-lg-offset-6 {
        margin-left: 50%;
    }
    .col-lg-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-lg-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-lg-offset-3 {
        margin-left: 25%;
    }
    .col-lg-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-lg-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-lg-offset-0 {
        margin-left: 0;
    }

    .col-lg-order-first {
        order: -1;
    }
    .col-lg-order-last {
        order: 13;
    }
    .col-lg-order-0 {
        order: 0;
    }
    .col-lg-order-1 {
        order: 1;
    }
    .col-lg-order-2 {
        order: 2;
    }
    .col-lg-order-3 {
        order: 3;
    }
    .col-lg-order-4 {
        order: 4;
    }
    .col-lg-order-5 {
        order: 5;
    }
    .col-lg-order-6 {
        order: 6;
    }
    .col-lg-order-7 {
        order: 7;
    }
    .col-lg-order-8 {
        order: 8;
    }
    .col-lg-order-9 {
        order: 9;
    }
    .col-lg-order-10 {
        order: 10;
    }
    .col-lg-order-11 {
        order: 11;
    }
    .col-lg-order-12 {
        order: 12;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .col-xl {
        flex-basis: 0;
        flex-grow: 1;
    }

    .col-xl-1 {
        flex: 0 0 8.33333333%;
    }
    .col-xl-2 {
        flex: 0 0 16.66666667%;
    }
    .col-xl-3 {
        flex: 0 0 25%;
    }
    .col-xl-4 {
        flex: 0 0 33.33333333%;
    }
    .col-xl-5 {
        flex: 0 0 41.66666667%;
    }
    .col-xl-6 {
        flex: 0 0 50%;
    }
    .col-xl-7 {
        flex: 0 0 58.33333333%;
    }
    .col-xl-8 {
        flex: 0 0 66.66666667%;
    }
    .col-xl-9 {
        flex: 0 0 75%;
    }
    .col-xl-10 {
        flex: 0 0 83.33333333%;
    }
    .col-xl-11 {
        flex: 0 0 91.66666667%;
    }
    .col-xl-12 {
        flex: 0 0 100%;
    }

    .col-xl-offset-12 {
        margin-left: 100%;
    }
    .col-xl-offset-11 {
        margin-left: 91.66666667%;
    }
    .col-xl-offset-10 {
        margin-left: 83.33333333%;
    }
    .col-xl-offset-9 {
        margin-left: 75%;
    }
    .col-xl-offset-8 {
        margin-left: 66.66666667%;
    }
    .col-xl-offset-7 {
        margin-left: 58.33333333%;
    }
    .col-xl-offset-6 {
        margin-left: 50%;
    }
    .col-xl-offset-5 {
        margin-left: 41.66666667%;
    }
    .col-xl-offset-4 {
        margin-left: 33.33333333%;
    }
    .col-xl-offset-3 {
        margin-left: 25%;
    }
    .col-xl-offset-2 {
        margin-left: 16.66666667%;
    }
    .col-xl-offset-1 {
        margin-left: 8.33333333%;
    }
    .col-xl-offset-0 {
        margin-left: 0;
    }

    .col-xl-order-first {
        order: -1;
    }
    .col-xl-order-last {
        order: 13;
    }
    .col-xl-order-0 {
        order: 0;
    }
    .col-xl-order-1 {
        order: 1;
    }
    .col-xl-order-2 {
        order: 2;
    }
    .col-xl-order-3 {
        order: 3;
    }
    .col-xl-order-4 {
        order: 4;
    }
    .col-xl-order-5 {
        order: 5;
    }
    .col-xl-order-6 {
        order: 6;
    }
    .col-xl-order-7 {
        order: 7;
    }
    .col-xl-order-8 {
        order: 8;
    }
    .col-xl-order-9 {
        order: 9;
    }
    .col-xl-order-10 {
        order: 10;
    }
    .col-xl-order-11 {
        order: 11;
    }
    .col-xl-order-12 {
        order: 12;
    }
}

.d-none {
    display: none !important;
}
.d-block {
    display: block !important;
}

/*sm*/
@media (min-width: 576px) {
    .d-sm-none {
        display: none !important;
    }
    .d-sm-block {
        display: block !important;
    }
}
/*md*/
@media (min-width: 768px) {
    .d-md-none {
        display: none !important;
    }
    .d-md-block {
        display: block !important;
    }
}
/*lg*/
@media (min-width: 992px) {
    .d-lg-none {
        display: none !important;
    }
    .d-lg-block {
        display: block !important;
    }
}
/*xl*/
@media (min-width: 1200px) {
    .d-xl-none {
        display: none !important;
    }
    .d-xl-block {
        display: block !important;
    }
}

base.css和index.css方案1里的一样一样的