6.8 响应式布局相关样式 6.8.1 显示-隐藏相关样式

6.8 响应式布局相关样式

Bootstrap提供了系列响应式布局相关的样式,这些样式都是通过CSS媒体查询功能来实现的。通过这些样式可让页面针对不同的设备显示或隐藏HTML元素。

6.8.1 显示或隐藏相关样式

Bootstrap提供了如表6.2所示的响应式显示/隐藏相关的样式。

样式类 超小viewport viewport 中等viewport viewport
.visibIe-xs-xxx 可见 不可见 不可见 不可见
.visible-sm-xxx 不可见 可见 不可见 不可见
.visible-md-xxx 不可见 不可见 可见 不可见
.visible-lg-xxx 不可见 不可见 不可见 可见
.hidden-xs 隐藏 不隐藏 不隐藏 不隐藏
.hidden-sm 不隐藏 隐藏 不隐藏 不隐藏
.hidden-md 不隐藏 不隐藏 隐藏 不隐藏
.hidden-lg 不隐藏 不隐藏 不隐藏 隐藏

在上面.visible-xx-yy等样式中,中间的xx可以是xssmmdlg等表示viewport尺寸的代号;后面的yyy可以是blockinlineinline-block这3个表示块模型的代号
md尺寸的viewport为例,该样式可支持.visible-md-block.visible-md-inline.visible-md-inline-block这些样式。
Bootstrap 早期使用的.visible-xs.visible-sm.visible-md.visible-lg 也依然存在。但是从3.2.0版本开始不再建议使用它们,建议使用.visible-xs-block.visible-sm-block.visible-md-block.visible-lg-block,它们只在<table>相关元素上略有区别。

程序示例 .visible-xx-block

例如如下代码示范了.visible-xx-block样式的作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 显示相关样式 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
<style type="text/css">
[class*="visible-"] {
margin-bottom: 20px;
padding-top: 15px;
padding-bottom: 15px;
background-color: #eee;
background-color: rgba(86, 61, 124, .15);
border: 1px solid #ddd;
border: 1px solid rgba(86, 61, 124, .2);
}
</style>
</head>

<body>
<div class="container">
<div class="visible-xs-block">visible-xs-block</div>
<div class="visible-sm-block">visible-sm-block</div>
<div class="visible-md-block">visible-md-block</div>
<div class="visible-lg-block">visible-lg-block</div>
</div>
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

在该程序中定义了4个<div>元素,但它们都被指定了.visible-xx-block样式,这意味着这4个元素始终只有一个能显示出来,例如viewport尺寸为lg时,class属性为visible-lg-blockdiv元素将会显示,其他div将不会显示.

程序示例 .hidden-xx

如下代码示范了.hidden-xx样式的作用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<!DOCTYPE html>
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1">
<title> 显示相关样式 </title>
<link rel="stylesheet" href="../bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="../bootstrap/css/bootstrap-theme.min.css">
<style type="text/css">
[class*="hidden-"] {
margin-bottom: 20px;
padding-top: 15px;
padding-bottom: 15px;
background-color: #eee;
background-color: rgba(86, 61, 124, .15);
border: 1px solid #ddd;
border: 1px solid rgba(86, 61, 124, .2);
}
</style>
</head>

<body>
<div class="container">
<div class="hidden-xs">hidden-<code>xs</code>-block</div>
<div class="hidden-sm">hidden-<code>sm</code>-block</div>
<div class="hidden-md">hidden-<code>md</code>-block</div>
<div class="hidden-lg">hidden-<code>lg</code>-block</div>
</div>
<script type="text/javascript" src="../jquery-3.1.1.js"></script>
<script type="text/javascript" src="../bootstrap/js/bootstrap.min.js"></script>
</body>

</html>

在该程序中定义了4 个<div>元素,但它们都被指定了.hidden-xx样式,这意味着这4个元素始终有一个会被隐藏起来。例如在viewport尺寸为lg时,class属性为hidden-lgdiv元素将会被隐藏,而其他div元素将不会隐藏.