html5
主页 > 网页 > html5 >

html5的响应式布局的方法示例

2025-04-26 | 佚名 | 点击:

一 使用媒体查询响应式布局

        使用的参数@media这是常用的参数
                    width,height代表的是浏览器可视宽度,高度

                         device-width:设备屏幕的宽度

                         device-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

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>媒体查询</title>

    <style>

        .div{

            /* width:1200px; */

            width:100%;

            /* height:600px; */

        }

        .div div{

            float: left;

            height:100px;

        }

    </style>

    <style media="(min-width:330px) and (max-width:430px)">

            .div div{

                width:33.3%

            }

            .div div:nth-child(1){

            background-color: aqua;

            }

            .div div:nth-child(2){

                background-color: yellow;

            }

            .div div:nth-child(3){

                background-color: green;

            }

    </style>

    <style media="(min-width:100px) and (max-width:329px)">

        .div div{

                width:50%

            }

            .div div:nth-child(1){

            background-color: aqua;

            }

            .div div:nth-child(2){

                background-color: yellow;

            }

            .div div:nth-child(3){

                background-color: green;

            }

    </style>

    <style media="(max-width:99px)">

       .div div{

                width:100%

            }

           .div div:nth-child(1){

            background-color: aqua;

            }

           .div div:nth-child(2){

                background-color: yellow;

            }

           .div div:nth-child(3){

                background-color: green;

            }

    </style>

</head>

<body>

    <div class="div">

        <div></div>

        <div></div>

        <div></div>

    </div>

</body>

</html>

外部样式

        进行创建三个的css的样式

               第一个

                      css-1.css

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

.div{

    /* width:1200px; */

    width:100%;

    /* height:600px; */

}

.div div{

    float: left;

    height:100px;

}

.div div:nth-child(1){

    background-color: aqua;

    }

    .div div:nth-child(2){

        background-color: yellow;

    }

    .div div:nth-child(3){

        background-color: green;

    }

        第二个

                css-2.css

1

2

3

.div div{

    width:33.3%

}

        第三个

                css-3.css

1

2

3

.div div{

    width:50%

}

        将这三个分别引入到MediaQuery.html中

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>媒体查询</title>

    <link rel="stylesheet" href="./css-1.css">

    <link rel="stylesheet" href="./css-2.css" media="(min-width:330px) and (max-width:430px)">

    <link rel="stylesheet" href="./css-3.css" media="(min-width:100px) and (max-width:329px)">

</head>

<body>

    <div class="div">

        <div></div>

        <div></div>

        <div></div>

    </div>

</body>

</html>

        这就是我们媒体查询的响应式自适应

二 使用flex进行响应式布局

        我们为什么使用flex

                用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局更加符合响应        式设计的特点

        flex-direction

       作用:子元素在父元素盒子中的排列方式
        row:默认值,按从左到右的顺序显示

        row-reverse:与row相同,但是以相反的顺序

        column:灵活的项目将垂直显示,按从上到下的顺序

        column-reverse:与column相同,但是以相反的顺序

        flex-wrap

                作用:子元素在父元素盒子中的是否换行(列)

                nowrap:默认值。不换行或不换列。

                wrap:换行或换列。

                wrap-reverse:换行或换列,但以相反的顺序。

        justify-content

                作用:用来在存在剩余空间时,设置为间距的方式

                flex-start:默认值。从左到右,挨着行的开头。
                flex-end:从右到左,挨着行的结尾。
                center:居中显示。
                space-between:平均分布在该行上,两边不留间隔空间。
                space-around:平均分布在该行上,两边留有一半的间隔空间。

        align-items

                作用:设置每个flex元素在交叉轴上的默认对齐方式

                flex-start:位于容器的开头。
                flex-end:位于容器的结尾
                center:居中显示。

        align-content

                作用:设置每个flex元素在交叉轴上的默认对齐方式

                flex-start:位于容器的开头。
                flex-end:位于容器的结尾。
                center:位于容器的中心。
                space-between:之间留有空白。
                space-around:两端都留有空白。

        其他属性

                flex-basis:设置弹性盒伸缩基准值。
                flex-grow:设置弹性盒子的扩展比率。
                flex-shrink:设置弹性盒子的缩小比率。
                flex:flex-grow、flex-shrink、flex-basis的缩写

三 CSS Grid        

基础布局:网格容器与项目

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>

<style>

.grid-container {

  display: grid;

  grid-template-columns: repeat(3, 1fr); /* 3列 */

  grid-template-rows: repeat(3, 1fr);     /* 3行 */

  gap: 20px;                             /* 网格间距 */

  padding: 20px;

  background: #eee;

}

.grid-item {

  background: #fff;

  padding: 30px;

  border-radius: 8px;

  text-align: center;

}

</style>

</head>

<body>

<div class="grid-container">

  <div class="grid-item">1</div>

  <div class="grid-item">2</div>

  <div class="grid-item">3</div>

  <div class="grid-item">4</div>

  <div class="grid-item">5</div>

  <div class="grid-item">6</div>

  <div class="grid-item">7</div>

  <div class="grid-item">8</div>

  <div class="grid-item">9</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

<!DOCTYPE html>

<html>

<head>

<style>

.container {

  max-width: 1200px;

  margin: 0 auto;

}

.items {

  display: grid;

  grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* 自动填充列 */

  gap: 15px;

}

.item {

  background: #f0f0f0;

  padding: 20px;

  border-radius: 6px;

}

</style>

</head>

<body>

<div class="container">

  <div class="items">

    <div class="item">Item 1</div>

    <div class="item">Item 2</div>

    <div class="item">Item 3</div>

    <div class="item">Item 4</div>

    <div class="item">Item 5</div>

    <div class="item">Item 6</div>

  </div>

</div>

</body>

</html>

原文链接:
相关文章
最新更新