一、优点
同一套页面可以兼容不同分辨率的设备(例如手机和电脑访问同一页面可能由于分辨率的不同减低用户体验度,而响应式布局就很好的解决了这个问题)
二、实现
依赖与bootstrap的栅格系统来实现:将一个页面的一行划平均分为12个格子,栅格系统基于不同的分辨率指定元素占用几个格子
三、执行过程
(1)定义容器
相当于form表单中的table
两种样式
① container:在页面两边留白(给人感觉不那么拥挤,显得舒适一点)
② container-fluid:每一种设备的页面都设置为100%宽度
(2)定义行
相当于form表单中的tr样式
样式为“row”
(3) 定义元素
指定该元素在不同的设备上所占的格子数目
样式:col-设备代号-格子数目
设备代号:
① xs:超小屏幕 手机 (<768px)
②sm:小屏幕 平板 (≥768px)
③md:中等屏幕 桌面显示器 (≥992px)
④lg:大屏幕 大桌面显示器 (≥1200px)
实现上图效果的代码
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! -->
<title>Bootstrap 101 Template</title>
<!-- Bootstrap -->
<link href="css/bootstrap.min.css" rel="stylesheet">
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="js/jquery-3.2.1.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="js/bootstrap.min.js"></script>
<style>
.inner{
border: 1px solid red;
}
</style>
</head>
<body>
<!--1.定义一个容器-->
<div class="container-fluid">
<!--2.定义一个行-->
<div class="row">
<!--3.定义一个元素
在大显示器上显示12个格子;中等显示器上显示6个格子;小显示器上显示3个格子;超小显示器上显示两个格子
-->
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
<div class="col-lg-1 col-md-2 col-sm-4 col-xs-6 inner">栅格</div>
</div>
</div>
</body>
</html>
四、注意事项
(1) 自动换行
一行中如果格子数目超过12,则超出部分自动换行
<div class="container-fluid">
<div class="row">
<div class="col-lg-15 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
</div>
</div>
效果图
(2)向上兼容性
栅格类属性可以向上兼容,栅格类适用于与屏幕宽度大于或等于分界点大小的设备
<div class="container-fluid">
<div class="row">
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
<div class="col-xs-6 inner">栅格</div>
</div>
</div>
效果:由于最小的超小屏幕设置为6个格子一个元素,基于向上兼容性,小屏幕、中等屏幕、大屏幕的时候都为6个格子一个元素
(3)向下不兼容性
如果真实设备宽度小于了设置栅格类属性的设备代码的最小值,会一个元素沾满一整行
<div class="container-fluid">
<div class="row">
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
<div class="col-lg-1 inner">栅格</div>
</div>
</div>
效果:除了最大屏幕为1个格子一个元素,其他屏幕都为一个元素12个格子