bootstrap的响应式布局

zh000 2019-11-05

css

ul{
    list-style: none;
    margin: 0;
    padding: 0;
}
a{
    color: #666;
    text-decoration: none;
}
a:hover{
    text-decoration: none;
}
body{
    background: #f5f5f5;
}
.container{
    background: #fff;
}
/* 因为设计稿是1280px的,而bootstrap里面的container最大为1170px,因此我们手动修改container宽度 */
@media screen and (min-width:1280px){
    .container{
        width: 1280px;
    }
}
/* header */
/* 如果header不设置padding-left,它本身有一个左侧内边距,因为我们需要右侧内边距,所以不能使用.row的bootstrap类样式,所以可以用这种方式 */
header{
}
.logo{
    background-color: #429ad9;
}
.logo img{
    display: block;
    margin: 0 auto;
    /* width:100%; */
    max-width: 100%;
    /* logo图片不需要缩放 */
}
.logo p{
    height: 50px;
    font-size: 22px;
    text-align: center;
    line-height: 50px;
    color: #fff;
    margin: 0;
}
.nav{
    background: #eee;
    border-bottom: 1px solid #ccc;
}
/* 如果屏幕进入小屏幕时,让导航栏浮动横排 */
@media screen and (max-width:991px){
    .nav li{
        float: left;
        width: 20%;
    }
    article{
        margin-top: 10px;
    }
}
/* 如果屏幕进入超小屏幕时,让文字变小14px */
@media screen and (max-width:767px){
    .nav a{
        font-size: 14px!important;
        padding-left: 3px!important;
    }
    /* 让news第一个li宽度为100%,其他为50% */
    .news li:first-of-type{
        width: 100%!important;
    }
    .news li{
        width: 50%!important;
    }
}
.nav a{
    display: block;
    height: 50px;
    line-height: 50px;
    padding-left: 30px;
    font-size: 16px;
}
.nav a:hover{
    background: #fff;
    color: #222;
}
.nav a::before{
    vertical-align: middle;
    padding-right: 5px;
}
/* article news */
article{
    padding-right: 5px!important;
}
.news li{
    float: left;
    width: 25%;
    height: 128px;
    padding-right: 10px;
    margin-bottom: 10px;
}
.news li:first-of-type{
    width: 50%;
    height: 266px;
}
.news li:first-of-type p{
    font-size: 22px;
    line-height: 41px;
    padding:0 10px;
}
.news li a{
    display: block;
    height: 100%;
    width: 100%;
    position: relative;
}
.news li a img{
    height: 100%;
    width: 100%;
}
.news li a p{
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 41px;
    font-size: 12px;
    color: #fff;
    margin: 0;
    padding:5px 10px;
    background: rgba(0, 0, 0, .5);
}
/* article publish */
.publish{
    padding-right: 10px;
}
.publish .row:first-of-type{
    border-top: 1px solid #666;
}
.publish .row{
    margin: 0;
    padding: 10px 0;
    border-bottom: 1px solid #666;
}
.pic img{
    width: 100%;
    margin-top: 10px;
}
/* aside */
aside{
    padding-right: 5px!important;
}
.asidepic{
    display: block;
    margin-bottom: 20px;
}
.asidepic img{
    width: 100%;
}
.hot{
    display: block;
    padding: 0 20px 0 20px;
    border: 1px solid #666;
}
.hot p{
    border-radius: 0;
    margin-bottom: 20px;
}

html

<!DOCTYPE html>
<html lang="en">

<head>
    <link rel="stylesheet" href="./bootstrap/css/bootstrap.min.css">
    <link rel="stylesheet" href="./css/index.css">
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <!-- IE8 是被支持的。然而,很多 CSS3 属性和 HTML5 元素是不被支持的。例如,Bootstrap 的响应式布局是通过CSS3的媒体查询(Media Query)功能实现的,根据不同的分辨率来匹配不同的样式,IE8浏览器并不支持这一优秀的CSS3特性。Bootstrap在开发文档中已经明确指出, IE8 需要 Respond.js 配合才能实现对媒体查询(media query)的支持,其中 html5shiv.min.js 文件是让不(完全)支持html5的浏览器支持 html5 标签;respond.js 文件是让IE8实现对媒体查询(media query)的支持。
    但是,在IE8浏览器中打开页面发现,兼容性问题并没有得到解决(坑、坑、坑)。通过查阅相关资料,笔者总结几点注意事项(效果实现的关键):
    本地调试需要Web Server(如IIS、Apache,Nginx),单纯地本地打开文件不能看到兼容效果;
    如果你发现已经引用了 respond.js 和 Bootstrap,仍无效果,请查看你的Bootstrap是否使用了CDN文件;
    Bootstrap3 需要Html5文档声明;
    Jquery 版本需要在2.0以下。 -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
       <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
    <title>Document</title>
</head>

<body>
    <div class="container">
        <div class="row">
            <header class="col-md-2">
                <div class="logo">
                    <a href="#">
                        <!-- 如果进入超小屏幕,logo图片隐藏 -->
                        <img src="images/logo.png" alt="" class="hidden-xs">
                        <!-- 我们先准备一个盒子,在超小屏幕下显示盒子内容 -->
                        <p class="visible-xs">阿里百秀</p>
                    </a>
                </div>
                <div class="nav">
                    <ul>
                        <li><a href="#" class="glyphicon glyphicon-camera">生活馆</a></li>
                        <li><a href="#" class="glyphicon glyphicon-picture">自然汇</a></li>
                        <li><a href="#" class="glyphicon glyphicon-phone">科技潮</a></li>
                        <li><a href="#" class="glyphicon glyphicon-gift">奇趣事</a></li>
                        <li><a href="#" class="glyphicon glyphicon-glass">美食杰</a></li>
                    </ul>
                </div>
            </header>
            <article class="col-md-7">
                <!-- 新闻 -->
                <div class="news clearfix">
                    <ul>
                        <li>
                            <a href="#">
                                <img src="upload/lg.png" alt="">
                                <p>阿里百秀</p>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <img src="upload/lg.png" alt="">
                                <p>阿里百秀阿里百秀阿里百秀阿里百秀阿里百秀阿里百秀</p>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <img src="upload/lg.png" alt="">
                                <p>阿里百秀</p>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <img src="upload/lg.png" alt="">
                                <p>阿里百秀</p>
                            </a>
                        </li>
                        <li>
                            <a href="#">
                                <img src="upload/lg.png" alt="">
                                <p>阿里百秀</p>
                            </a>
                        </li>
                    </ul>
                </div>
                <!-- 发表 -->
                <div class="publish">
                    <div class="row">
                        <div class="col-sm-9">
                            <h3>生活馆生活馆生活馆生活馆生活馆生活馆?</h3>
                            <p class="text-muted hidden-xs">生活馆生活馆生活馆2015-3-3</p>
                            <p class="hidden-xs">生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆</p>
                            <p class="text-muted">生活馆生活馆生活馆生活馆生活馆生活馆生活馆/生活馆/生活馆/生活馆/生活馆/生活馆</p>
                        </div>
                        <div class="col-sm-3 pic">
                            <img src="./upload/3.jpg" alt="" class="hidden-xs">
                        </div>
                    </div>
                </div>
            </article>
            <aside class="col-md-3">
                <a href="#" class="asidepic">
                    <img src="./upload/3.jpg" alt="">
                </a>
                <a href="#" class="hot">
                    <p class="btn btn-primary">热搜</p>
                    <h4 class="text-primary">还应加入中国博客联盟</h4>
                    <p class="text-muted">生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆生活馆..</p>
                </a>
            </aside>
        </div>
    </div>
</div>
</body>

</html>

相关推荐