改编/应用Bootstrap栅格适应多屏

惰性露台
• 阅读 6348

我听说你想成为一个web程序员?

改编/应用Bootstrap栅格适应多屏

护驾护驾

BOOTSTRAP 来了。

什么是 Bootstrap

Bootstrap 可以用划分栅格的高逼格策略,你只需要几行 CSS 代码,就可以开发出响应式的Web 布局。Bootstrap 在背后默默的完成那些复杂的,有很多浏览器兼容性大坑的工作。

什么是栅格(Grid)

Bootstrap 固定的把 Web 页面分隔成12列,但是每一列的宽度则是有弹性的。可以根据屏幕分辨率和窗口大小而有所差别。

每个列可以设置如下前缀的class:

  • col-xs 很小的屏幕;小于768px;如手机;
  • col-sm 较小的屏幕;大于768px;如平板电脑;
  • col-md 中等屏幕;大于992px;如桌面系统;
  • col-lg 特大屏幕;大于1200px;比如大显示器或者电视机。

用 Bootstrap 来适配桌面

口头上直接讲清楚栅格的概念并不容易。可是,我们可以谈谈例子。

桌面一般指的是台式机(Desktop)或者笔记本(Laptop),它们的分辨率一般比较大,所以我们会选择col-md来布局。

我们来写代码实现桌面原型图,首先创建一个文件,叫做blog.html:

准备

$ cd ~/projects && mkdir bootstrap-demo && cd $_
$ cat blog.html

<!DOCTYPE html>
    <html lang="en">
      <body>
            <!-- Body content goes here -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
      </body>
</html>

这里我们用 CDN 引入了Bootstrap 。

接下来,在上面的标记Body content goes here位置填入以下代码:

<div class="container">
    <div class="row">
        <div class="col-md-12 text-center">
            <h1>My First Bootstrap Blog</h1>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-md-4">
            <h3>Post Title 1</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4">
            <h3>Post Title 2</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4">
            <h3>Post Title 3</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4">
            <h3>Post Title 4</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4">
            <h3>Post Title 5</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4">
            <h3>Post Title 6</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
    </div>
</div>

这里我们可以看到,Bootstrap 允许一行被分隔成12列,我们设定每列占宽为4,多余的列则被挤到下一行显示。

平板电脑适配

平板电脑需要显示为2列,这样我们就需要用col-sm-6来设计这个页面,修改以上代码:

<div class="container">
    <div class="row">
        <div class="col-md-12 text-center">
            <h1>My First Bootstrap Blog</h1>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 1</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 2</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 3</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 4</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
            </div>
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 5</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6">
            <h3>Post Title 6</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
    </div>
</div>

通过拖动浏览器边框来改变窗口大小,可以看到页面布局会在三列和两列之间变化。

手机适配

手机和平板电脑一样,可以横放(Landscape Mode)和竖放(Portrait Mode)。对玉分辨率较高的手机,横放会进入平板电脑的布局,我们就不再考虑这种情况。而竖放的手机,我们认为它的宽度小于768px,所以屏幕上只显示一列内容,占满了所有宽度,在这里我们用col-xs-12来布局。

修改上面平板电脑适配的代码:

<div class="container">
    <div class="row">
        <div class="col-md-12 text-center">
            <h1>My First Bootstrap Blog</h1>
        </div>
    </div>
    <hr>
    <div class="row">
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 1</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 2</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 3</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 4</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 5</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
        <div class="col-md-4 col-sm-6 col-xs-12">
            <h3>Post Title 6</h3>
            <p>Lorem ipsum dolor sit amet ... </p>
        </div>
    </div>
</div>

可以用chrome模拟查看效果

结论

只要掌握栅格系统的基本原理,它就可以帮你通过约束的12列模型,也一组适配于不同的显示屏的class,完成一个Responsive, Mobile First的网站。有章有法。

改编自:Bootstrap 响应式栅格 - George's Code Thoughts - http://codethoughts.info/bootstrap/2015/04/26/responsive-grid-layout-w...\

点赞
收藏
评论区
推荐文章
blmius blmius
4年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
美凌格栋栋酱 美凌格栋栋酱
7个月前
Oracle 分组与拼接字符串同时使用
SELECTT.,ROWNUMIDFROM(SELECTT.EMPLID,T.NAME,T.BU,T.REALDEPART,T.FORMATDATE,SUM(T.S0)S0,MAX(UPDATETIME)CREATETIME,LISTAGG(TOCHAR(
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
梦
4年前
微信小程序new Date()转换时间异常问题
微信小程序苹果手机页面上显示时间异常,安卓机正常问题image(https://imghelloworld.osscnbeijing.aliyuncs.com/imgs/b691e1230e2f15efbd81fe11ef734d4f.png)错误代码vardate'2021030617:00:00'vardateT
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
SpringBoot学习:整合shiro自动登录功能(rememberMe记住我功能)
首先在shiro配置类中注入rememberMe管理器!复制代码(https://oscimg.oschina.net/oscnet/675f5689159acfa2c39c91f4df40a00ce0f.gif)/cookie对象;rememberMeCookie()方法是设置Cookie的生成模
Wesley13 Wesley13
3年前
Java日期时间API系列36
  十二时辰,古代劳动人民把一昼夜划分成十二个时段,每一个时段叫一个时辰。二十四小时和十二时辰对照表:时辰时间24时制子时深夜11:00凌晨01:0023:0001:00丑时上午01:00上午03:0001:0003:00寅时上午03:00上午0
Python进阶者 Python进阶者
1年前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这
惰性露台
惰性露台
Lv1
他乡生白发,旧国见青山。
文章
4
粉丝
0
获赞
0