Featured image of post 第四章 移动端页面布局

第四章 移动端页面布局

流式布局

流式布局介绍

移动端页面的常用布局方式包括 流式布局弹性盒布局Rem适配布局

流式布局也称为百分比自适应布局,是移动 Web 开发中比较常见的布局方式。流式布局在 CSS 代码中需要使用百分比来设置盒子的宽高,例如,把盒子的宽度设置成百分比,网页就会根据浏览器的宽度和屏幕的大小来自动调整显示效果。其换算公式如下:

$$ 目标元素宽度 / 父盒子宽度 = 百分数宽度 $$
 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        header,
        nav,
        section,
        footer {
            width: 980px;
            height: auto;
            margin: 0 auto;
            margin-top: 10px;
            border: 1px solid #000;
            padding: 10px;
        }
        header {
            height: 50px;
        }
        section {
            height: 300px;
        }
        footer {
            height: 30px;
        }
        aside,
        article {
            height: 100%;
            border: 1px solid #000;
            float: left;
        }
        aside {
            width: 250px;
        }
        article {
            width: 715px;
            margin-left: 10px;
        }
    </style>
</head>
<body>
    <header>header</header>
    <nav>nav</nav>
    <section>
        <aside>aside</aside>
        <article>article</article>
    </section>
    <footer>footer</footer>
</body>
</html>

使用流式布局。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        body {
            width: 80%;
            margin: 0 auto;
        }
        header,
        nav,
        section,
        footer {
            width: 95%;
            height: auto;
            margin: 0 auto;
            margin-top: 10px;
            border: 1px solid #000;
            padding: 1%;
        }
        header {
            height: 50px;
        }
        section {
            height: 300px;
        }
        footer {
            height: 30px;
        }
        aside,
        article {
            height: 100%;
            border: 1px solid #000;
            float: left;
        }
        aside {
            width: 25%;
        }
        article {
            width: 73%;
            margin-left: 1%;
        }
    </style>
</head>
<body>
    <header>header</header>
    <nav>nav</nav>
    <section>
        <aside>aside</aside>
        <article>article</article>
    </section>
    <footer>footer</footer>
</body>
</html>

弹性盒布局

什么是弹性盒布局

弹性盒布局(Flexible Box)是 CSS3 中的一种新布局模式,可以轻松地创建响应式网站布局。弹性盒布局为盒子增加了灵活性,可以让人们告别浮动(float),完美地实现垂直居中。目前它得到几乎所有主流浏览器的支持。

弹性盒由 容器子元素 构成,并且默认情况下,子元素的排布方向与横轴的方向是一致的。弹性盒模型可以用简单的方式满足很多常见的复杂的布局需求,它的优势在于开发人员只是声明布局应该具有的行为,而不需要给出具体的实现方式。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 80%;
            height: 300px;
            background-color: lightgray;
        }
        .box div{
            width: 120px;
            float: left;
            height: 100px;
            background-color: bisque;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
    </div>
</body>
</html>

使用弹性盒布局。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 80%;
            height: 300px;
            background-color: lightgray;
            display: flex;
            /* 纵轴排列 */
            /* flex-direction: column;  */
        }
        .box div{
            /* width: 120px; */
            flex: 1;
            /* width: 33%; */
            /* float: left; */
            height: 100px;
            background-color: bisque;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>1</div>
        <div>2</div>
        <div>3</div>
        <!-- <div>4</div> -->
    </div>
</body>
</html>

弹性盒布局的常用属性

display

display 属性用于指定元素容器的类型,具体如下:

  • 默认值为 inline ,这意味着此元素会被显示为一个内联元素,在元素前后没有换行符。
  • 如果设置 display 的值为 flex ,则表示用于指定弹性盒的容器。
  • 如果设置 display 的值为 none ,则表示此元素不会被显示。

当父元素的 display 设为 flex 后,子元素就会按照内容的实际宽度来显示,且子元素的高度会占满父元素的可用高度

flex-flow

flex-flowflex-direction 的值和 flex-wrap 的值的组合。

  • flex-direction 用于调整主轴的方向,默认情况下是横向,此时横轴为主轴,纵轴为侧轴。
取值 描述
row 弹性盒子元素按横轴方向顺序排列(默认值)
row-reverse 弹性盒子元素按横轴方向逆序排列
column 弹性盒子元素按纵轴方向顺序排列
column-reverse 弹性盒子元素按纵轴方向逆序排列
  • flex-wrap 用于让弹性盒元素在必要的时候换行
取值 描述
nowrap 容器为单行,该情况下 flex 子项可能会溢出容器。该值是默认属性值,不换行
wrap 容器为多行,flex 子项溢出的部分会被放置到新行(换行),第一行显示在上方
wrap-reverse 反转 wrap 排列(换行),第一行显示在下方

例如,将 flex-direction 设为 row,将 flex-wrap 设为 nowrap,等于 flex-flow: row nowrap。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            /* width: 80px; */
            padding: 10px;
            background-color: lightgray;
            display: flex;
            /* flex-flow: row wrap-reverse; */
            /* flex-direction: column; */
        }
        .box div{
            margin: 10px;
            padding: 5PX;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>11111111111</div>
        <div>22222222222</div>
        <div>33333333333</div>
    </div>
</body>
</html>

justify-content

justify-content 属性能够设置子元素在主轴方向的排列方式,其取值如表所示。

取值 描述
flex-start 弹性盒子元素将向行起始位置对齐(默认值)
flex-end 弹性盒子元素将向行结束位置对齐
center 弹性盒子元素将向行中间位置对齐
space-between 弹性盒子元素会平均分布在行里,第一个元素的边界与行的起始位置边界对齐,最后一个元素的边界与行结束位置的边界对齐
space-around 弹性盒子元素会平均分布在行里,两端保留子元素与子元素之间间距大小的一半
 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            padding: 10px;
            background-color: lightgray;
            display: flex;
            justify-content: space-around;
        }
        .box div{
            margin: 10px;
            padding: 5PX;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div>11111111111</div>
        <div>22222222222</div>
        <div>33333333333</div>
    </div>
</body>
</html>

align-items

align-items 属性设置在父元素上,用于定义子元素在侧轴上的对齐方式,其取值如表所示。

取值 描述
flex-start 弹性盒子元素向垂直于轴的方向上的起始位置对齐
flex-end 弹性盒子元素向垂直于轴的方向上的结束位置对齐
center 弹性盒子元素向垂直于轴的方向上的中间位置对齐
baseline 如果弹性盒子元素的行内轴(页面中文字的排列方向)与侧轴方向一致,则该值与 flex-start 等效。其他情况下,该值将与基线(文字底部线条)对齐
stretch 默认值。将子元素在侧轴上拉伸以适合容器,但会受到子元素大小属性(如 " min / max-width / height “)的限制
 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            height: 800px;
            padding: 10px;
            background-color: lightgray;
            display: flex;
            /* flex-direction: column; */
            /* justify-content: space-around; */
            align-items: flex-start;
            /* align-items: flex-end; */
            /* align-items: center; */
            /* align-items: baseline; */
            /* align-items: stretch; */
        }
        .box div{
            margin: 10px;
            padding: 5PX;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
            /* height: 500px; */
        }
        /* .box div:nth-child(1){
            font-size: 30px;
        } */
    </style>
</head>
<body>
    <div class="box">
        <div>11111111111</div>
        <div>22222222222</div>
        <div>33333333333</div>
    </div>
</body>
</html>

order

order 属性用于设置子元素出现的排列顺序。数值越小,排列将会越靠前,默认为 0。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 800px;
            padding: 10px;
            background-color: lightgray;
            display: flex;
            /* flex-flow: column; */
        }
        .box div{
            margin: 10px;
            padding: 5PX;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div style="order: 2;">11111111111</div>
        <div style="order: 0;">22222222222</div>
        <div style="order: 1;">33333333333</div>
    </div>
</body>
</html>

flex

flex 属性能够设置子元素的伸缩性,它是 flex-grow(放大比例,默认为0)、flex-shrink(缩小比例,默认为 1)和 flex-basis(宽度,像素值,默认为 auto)的简写形式,后两个为可选属性。在这些属性中,最常用的是 flex-grow。

  • flex-grow:子元素按比例 “索取” 父元素的 “剩余空间”。
  • flex-shrink:子元素按比例 “吸收” 父元素超出的宽度。
  • flex-basis:设置子元素的占用空间(覆盖width宽度),默认为 auto。
1
2
3
4
5
6
7
当 flex-shrink 的值为 1 时,子元素不会超出父元素的宽度,设置为 0 时,子元素可以超出父元素。

当 flex-grow 属性为默认值 0 时,如果存在剩余空间,也不会放大。

如果所有项目的 flex-grow 属性都为 1,且存在剩余空间的话,那么将等分剩余空间。

如果一个项目的 flex-grow 属性为 2,其他项目都为 1,则前者占据的剩余空间将比其他项多一倍。
 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 lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 1000px;
            padding: 10px;
            background-color: lightgray;
            display: flex;
        }
        .box div{
            width: 50px;
            margin: 10px;
            padding: 5px;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
            box-sizing: border-box;
        }
    </style>
</head>
<body>
    <div class="box">
        <div style="flex: 0 1 50px;">0</div>
        <!-- <div style="flex-shrink: 5; width: 1500px;">1</div> -->
        <div style="flex-grow: 2;">2</div>
        <div style="flex-basis: 300px;">3</div>
        <div style="flex: 10 0 300px;">4</div>
    </div>
</body>
</html>

align-self

align-self 属性取值与 align-items 属性的取值类似,但是是设置在子元素上的,默认值为 auto。

取值 描述
flex-start 弹性盒子元素向垂直于轴的方向上的起始位置对齐
flex-end 弹性盒子元素向垂直于轴的方向上的结束位置对齐
center 弹性盒子元素向垂直于轴的方向上的中间位置对齐
baseline 如果弹性盒子元素的行内轴(页面中文字的排列方向)与侧轴方向一致,则该值与 flex-start 等效。其他情况下,该值将与基线对齐
stretch 默认值。如果指定侧轴大小的属性值为 auto,则其值会使项目的边距盒的尺寸尽可能接近所在行的尺寸,但同时会遵照 min / max-width / height 属性的限制
 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 lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .box{
            width: 600px;
            height: 600px;
            padding: 10px;
            background-color: lightgray;
            display: flex;
            /* align-items: center; */
        }
        .box div{
            margin: 10px;
            padding: 5PX;
            background-color: antiquewhite;
            border: 1PX solid black;
            margin-right: 5px;
        }
    </style>
</head>
<body>
    <div class="box">
        <div style="align-self: flex-end;">111</div>
        <div style="align-self: flex-start;">222</div>
        <div style="align-self: baseline; font-size: 24px;">333</div>
        <div style="align-self: baseline;">444</div>
        <div style="align-self: stretch; height: 300px;">555</div>
    </div>
</body>
</html>

媒体查询

什么是媒体查询

媒体查询是 CSS3 新增的一种语法,用来根据窗口宽度、屏幕比例和设备方向等差异来改变页面的显示方式。使用媒体查询能够在不改变页面内容的情况下,为特定的输出设备制定显示效果。媒体查询的基本语法形式如下:

1
2
3
4
5
@media mediatype and / not / only (media feature) {
    html{
        font-size: 20px;
    }
}
  • @media 表示声明媒体查询;
  • mediatype 表示媒体类型;
  • and、not 和 only 是逻辑操作符,用于联合构造复杂的媒体查询;
  • media feature 表示媒体特性。

如果当前设备符合媒体类型和媒体特性,则大括号 {} 中的 CSS 代码就会生效。

1
2
3
- 媒体类型可以设置成 screen (屏幕)、print(打印机)、speech(屏幕阅读器)或 all(所有设备)等,如果只考虑屏幕上的显示效果,则将媒体类型设为 screen 即可。

- 逻辑操作符 and 用于将多个媒体特性连接到一起,相当与 “且”;not 用于排除某个媒体特性,相当于 “非”;only 用于指定特定的媒体特性。

媒体特性是由 “属性:值” 组成的,常用的属性有 width、min-width 和 max-width,具体解释如下。

  • width:定义输出设备中页面可见区域的宽度。
  • min-width:定义输出设备中页面可见区域的最小宽度。
  • max-width:定义输出设备中页面可见区域的最大宽度。

媒体查询使用方式

媒体查询的使用方法有两种,即内联式和外联式。下面利用媒体查询实现当文档宽度大于等于 640px 时,对 CSS 样式进行修改。内联式是直接在 CSS 中使用,示例代码如下。

1
2
3
4
5
6
<!-- 内联式 -->
<style>
	@media screen and (min-width: 640px) {
    	CSS代码
	}
</style>

外联式是作为单独的 CSS 文件从外部引入的,示例代码如下。

1
2
<!-- 外联式 -->
<link href="style.css" media="screen and (min-width: 640px)" ref="stylesheet">

响应式布局容器

首先创建基本样式。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            height: 50px;
            background-color: lightgray;
            margin: 0 auto;
        }
    </style>
</head>

<body>
    <div class="container">布局容器</div>
</body>

</html>

其中,container 类为 bootstrap 中常用的布局容器类名。

编写 CSS 代码,当媒体类型为 screen,且屏幕大于等于 576px(min-width: 576px)时,将 container 类的宽度设置为 540px,当屏幕大于等于 768px 时,将 container 类的宽度设置为 720px。

 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
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        .container{
            height: 50px;
            background-color: lightgray;
            margin: 0 auto;
        }
        @media screen and (min-width: 576px){
            .container{
                width: 540px;
            }
        }
        @media screen and (min-width: 768px){
            .container{
                width: 720px;
            }
        }
        @media screen and (min-width: 992px){
            .container{
                width: 960px;
            }
        }
        @media screen and (min-width: 1200px){
            .container{
                width: 1140px;
            }
        }
    </style>
</head>

<body>
    <div class="container">布局容器</div>
</body>

</html>

Rem 适配布局

rem 单位

Rem 适配布局一般采取 Less + Rem + 媒体查询来实现响应式布局设计。使用媒体查询可以根据不同的设备按比例设置页面的字体大小,然后在页面中使用 rem 单位,可以通过修改 html 里面的文字大小来改变页面中的元素的大小从而进行整体控制。rem 是 CSS3 中新增的一种相对长度单位。当使用 rem 单位时,根节点 < html > 的字体大小(font-size)决定了 rem 的尺寸。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    html{
        font-size: 16px;
    }
    .box{
        background: lightgray;
        width: 10rem;
        height: 10rem;
    }
</style>
<body>
    <div class="box"></div>
</body>
</html>

通过媒体查询和 rem 单位实现元素大小动态变化

利用媒体查询和rem单位,可以实现元素大小的动态变化。其开发思路是:

  • 通过媒体查询来更改不同屏幕宽度下 < html > 的字体大小
  • 页面中的元素盒子都使用 rem 单位,从而让它们能够进行等比例缩放

编写代码,如果屏幕宽度大于等于320px,就设置 < html > 元素根节点的 font-size 的值为 20px;如果屏幕宽度大于等于 750px,那么就设置 < html > 元素根节点的 font-size 的值为 50px;定义 div 的宽度和高度分别为 10rem。

 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
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<style>
    .box{
        background: lightgray;
        width: 10rem;
        height: 10rem;
    }
    @media screen and (min-width: 500px) {
        html{
            font-size: 30px;
        }
    }
    @media screen and (min-width: 750px) {
        html{
            font-size: 50px;
        }
    }
</style>
<body>
    <div class="box"></div>
</body>
</html>

Sass

什么是 Sass

在 Node.js 环境中使用 Sass

Sass 语法格式

Sass 编译

Sass 嵌套

Sass 运算

Less

练习

  1. 制作移动端页面哪个布局方式不适合?()

    • A. 响应式 Responsive(使用 @media 媒体查询,给不同尺寸和介质的设备切换不同的样式)

    • B. 伸缩 Flexbox(使用 CSS3 Flex 系列属性进行相对布局)

    • C. 固定 Fixed(使用 px 和 pt 这样的绝对单位进行固定布局)

    • D. 流动 Fluid(使用 % 百分比进行相对布局)

  2. 采用流式布局方式进行移动端页面布局时,各内容区块最好采用()。

    • A.标准布局

    • B.浮动布局

    • C.相对定位布局

    • D.绝对定位布局

  3. HTML5 提供了()方法用于关闭全屏显示。

    • A. exitFullscreen()

    • B. closeFullscreen()

    • C. requestFullscreen

    • D. overFullscreen

  4. 当手指触摸屏幕是触发的是什么事件?()

    • ​A. ontouchstart

    • B. ontouchcancle

    • C. touchstart

    • D. ontouch

  5. 在拖曳操作中,()和()默认是可以拖曳的?

    • ​A. 图片和视频

    • B. 链接和文字

    • C. 文字和图片

    • D. 图片和链接

  6. 下列选项中,说法错误的是()。

    • A. window.sessionStorage 对象用于区域存储

    • B. window.localStorage 对象用于本地存储

    • C. Web Storage 接口提供的 clear(key) 方法,用于删除键名为 key 的存储内容

    • D. 使用 sessionStorage 存储的数据,当浏览器关闭后,内存将被自动清除

  7. 设置一个盒子的样式如下,此时该盒子的大小为多少?

    1
    2
    3
    4
    5
    6
    
    box-sizing: border-box;
    margin-top: 28.54px;
    margin-bottom: 14.63px;
    padding: 0 16.44px; 
    width: 72px;
    height: 60px;
    
    • A. 宽 88.44px 高 60px

    • B. 宽 88.44px 高 103.17px

    • C. 宽 72px 高 103.17px

    • D. 宽 72px 高 60px

  8. 使用媒体查询设置屏幕高度大于等于 500px 时,字体大小变为 32px,正确的代码是?()

    • A. @media screen when (min-width: 500px){ html{ font-size: 32px; } }

    • B. @media screen and (min-height: 500px){ html{ font-size: 32px; } }

    • C. @media screen and (max-width: 500px){ html{ font-size: 32px; } }

    • D. @media screen and (max-height: 500px){ html{ font-size: 32px; } }

  9. 关于下列代码说法正确的是?()

     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    
    <style>
        .box{
            height: 500px;
            width: 500px;
            display: flex;
            flex-flow: row-reverse wrap;
        }
        .box div{
            width: 200px;
            margin: 10px;
        }
        .box div:nth-child(1){
            align-self: stretch;
            width: 600px;
        }
    </style>
    <body>
        <div class="box">
            <div>1</div>
            <div>2</div>
            <div>3</div>
        </div>
    </body>
    
    • A. 页面中 < div >1< /div > < div >2< /div > < div >3< /div > 都在同一行显示

    • B. 页面中 < div >1< /div > 的宽度是 < div >2< /div > 的 3 倍

    • C. 页面中元素从上到下从左到右依次是 < div >1< /div > < div >3< /div > < div >2< /div >

    • D. 通过 display: flex; 设置弹性盒布局,当屏幕大小变化时页面元素的大小也会随之变化

  10. 下列说法正确的是?()

    • A. 当 flex-shrink 的值为 1 时,子元素可以超出父元素的宽度

    • B. 如果一个项目的 flex-grow 属性为 5,其他项目都为 1,则前者宽度是其他元素的 5 倍

    • C. align-items 属性为 baseline,表示行内轴与侧轴方向一致时,子元素基线对齐

    • D. flex-direction 用于调整主轴的方向,默认情况下横轴为主轴,纵轴为侧轴

Blog for Sandy Memories