Bootstrap里container的响应式布局的解释

释放双眼,带上耳机,听听看~!

之前在用bootstrap的时候,发现其中container设置了响应式布局,然后根据逻辑自己敲了一遍.       

现在移动端越来越火,基本所有的网页都会根据移动端做一些适配,其中响应式布局,就是适配中关键的一环.其实响应式布局十分简单,通过JS原生代码,或者是@media,都可以进行响应式布局,下面我们来试试.

利用原生JS代码实现响应式布局


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="UTF-8">
5    <title>Title</title>
6    <style>
7        *{
8            margin: 0;
9            padding: 0;
10        }
11        .container{
12            height: 30px;
13            background-color: red;
14            margin:  0 auto;
15        }
16    </style>
17</head>
18<body>
19    <div class="container">
20    </div>
21    <!--
22        四个档位 1170 970 750 100%
23    -->
24<script>
25  
26    window.οnlοad=function () {
27        //1.拿到container标签
28        var container = document.querySelector('.container');
29
30        windowChange();
31
32        //2.监听窗口发生改变...
33        window.addEventListener('resize',windowChange)
34        
35        function windowChange() {
36            //3.拿到口的宽度
37            var windowWidth=window.innerWidth; //width + padding
38            
39            if(windowWidth>=1170){
40                container.style.width=1170+'px';
41            }else if(windowWidth>=970){
42                container.style.width=970+'px';
43            }else if(windowWidth>=750){
44                container.style.width=750+'px';
45            }else{
46                //...
47                container.style.width='100%';
48            }
49        }
50    }
51</script>
52</body>
53</html>
54

   其实有基础的朋友看眼代码就能理解了,所谓响应式代码就是监听了window的宽度,当宽度改变到一定程度时,布局相应的进行变化,这就是简易的响应式布局.如果认为JS原生代码很麻烦?不喜欢敲?可以,我们还可以通过媒体查询来实现.

     媒体查询实现响应式布局


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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
1<!DOCTYPE html>
2<html lang="en">
3<head>
4    <meta charset="UTF-8">
5    <title>Title</title>
6    <style>
7        *{
8            margin: 0;
9            padding: 0;
10        }
11
12        .container{
13            height: 30px;
14            background-color: red;
15            margin:  0 auto;
16        }
17
18        /*... 750*/
19        @media  (max-width: 750px){
20            .container{
21                width: 100%;
22            }
23
24        }
25
26        @media  (min-width: 750px) and (max-width: 970px){
27            .container{
28                width: 750px;
29            }
30        }
31
32        @media  (min-width: 970px) and (max-width: 1170px){
33            .container{
34                width: 970px;
35            }
36        }
37
38        @media  (min-width: 1170px) {
39            .container{
40                width: 1170px;
41            }
42        }
43
44    </style>
45</head>
46<body>
47
48    <div class="container">
49
50    </div>
51
52    <!--
53        四个档位 1170 970 750 100%
54    -->
55</body>
56</html>
57

@media标签,其作用就是允许添加表达式用以媒体查询,以此来选择不同的样式表,从而自动适应不同的屏幕分辨率。不过该标签是CSS3的,对于IE老版本(IE9-)的兼容性存在问题(为什么老是要为IE去做兼容?),所以大家用的时候注意下.其实媒体查询的逻辑和之前JS的原生代码逻辑相同,所以这里就不再叙述了

@media其实还有许多的媒体类型,比如@meida all用于所有设备,@media print用于打印设备,@media speech应用于屏幕阅读器等发声设备,@media screen 用于电脑屏幕,平板电脑,智能手机等.

你也可以直接在link里用来判断当某个尺寸时,引入某个css


1
2
1<link rel="stylesheet" type="text/css" href="style.css" media="screen and (min-width: 768px)">
2

这条代码意思是在大于或等于768时使用style.css.

大概的响应式布局就写到这了,很浅显却又很重要的功能,其实如果真要深入,去各类型做适配,也很麻烦,今天就写这么多吧.

给TA打赏
共{{data.count}}人
人已打赏
安全技术

OpenSSL之Blowfish对称加密

2021-8-18 16:36:11

安全技术

C++ 高性能服务器网络框架设计细节

2022-1-11 12:36:11

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索