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

1760 查看

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

护驾护驾

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...\