非零基础自学前端最后一遍 一 HTML+CSS 15 CSS元素定位

r囧r小猫 2024-03-22 17:13 218阅读 0赞

非零基础自学前端最后一遍

文章目录

      • 非零基础自学前端最后一遍
      • 一 HTML+CSS
      • 15 CSS元素定位
        • 15.1 布局-元素定位-标准流的理解
          • 15.1.1 标准流(Normal Flow)
          • 15.1.2 margin-padding位置调整
        • 15.2 布局-元素定位-position属性介绍
          • 15.2.1 认识元素的定位
          • 15.2.2 认识position属性
          • 15.2.3 静态定位 - static
        • 15.3 布局-元素定位-相对定位的使用
          • 15.3.1 相对定位 - relative
          • 15.3.2 相对定位练习
        • 15.4 布局-元素定位-梦幻西游案例
          • 15.4.1 相对定位练习
        • 15.5 布局-元素定位-固定定位的使用
          • 15.5.1 固定定位 - fixed
          • 15.5.2 画布和视口
        • 15.6 布局-元素定位-固定定位的练习
          • 15.6.1 固定定位练习
        • 15.7 布局-元素定位-绝对定位的参考对象
          • 15.7.1 绝对定位 - absolute
        • 15.8 布局-元素定位-增强案例子绝父相
          • 15.8.1 子绝父相
        • 15.9 布局-position设置为fixed或者absolute
          • 15.9.1 将position设置为absolute/fixed元素的特点(一)
          • 15.9.2 将position设置为absolute/fixed元素的特点(二)
        • 15.10 值设置auto的效果总结
          • 15.10.1 auto到底是什么?
        • 15.11 布局-绝对定位练习 网易item
          • 15.11.1 绝对定位的案例练习
        • 15.12 布局-粘性定位sticky的使用
          • 15.12.1 粘性定位 - sticky
          • 15.12.3 position值对比
        • 15.13 布局-定位元素的z-index设置
          • 15.13.1 CSS属性 - z-index

在这里插入图片描述

一 HTML+CSS

15 CSS元素定位

15.1 布局-元素定位-标准流的理解
15.1.1 标准流(Normal Flow)
  • 默认情况下,元素都是按照normal flow(标准流、常规流、正常流、文档流【document flow】)进行排布

    • 从左到右、从上到下按顺序摆放好
    • 默认情况下,互相之间不存在层叠现象

在这里插入图片描述

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box {
  10. display: inline-block;
  11. width: 200px;
  12. height: 200px;
  13. background-color: aqua;
  14. }
  15. </style>
  16. </head>
  17. <body>
  18. <div>div元素</div>
  19. <span>span元素</span>
  20. <img src="../images/gouwujie01.jpg" alt="">
  21. <div class="box"></div>
  22. </body>
  23. </html>

渲染效果

在这里插入图片描述

15.1.2 margin-padding位置调整
  • 在标准流中,可以使用margin、padding对元素进行定位

    • 其中margin还可以设置负数
  • 比较明显的缺点是

    • 设置一个元素的margin或者padding,通常会影响到标准流中其他元素的定位效果
    • 不便于实现元素层叠的效果
  • 如果我们希望一个元素可以跳出标准流,单独的对某个元素进行定位呢?

    • 我们可以通过position属性来进行设置;
15.2 布局-元素定位-position属性介绍
15.2.1 认识元素的定位
  • 定位允许您从正常的文档流布局中取出元素,并使它们具有不同的行为:

    • 例如放在另一个元素的上面;
    • 或者始终保持在浏览器视窗内的同一位置;
  • 定位在开发中非常常见:

在这里插入图片描述

15.2.2 认识position属性
  • 利用position可以对元素进行定位,常用取值有5个:

    在这里插入图片描述

  • 默认值:

    • static:默认值, 静态定位

      在这里插入图片描述

  • 使用下面的值, 可以让元素变成 定位元素(positioned element)

    • relative:相对定位
    • absolute:绝对定位
    • fixed:固定定位
    • sticky:粘性定位
15.2.3 静态定位 - static
  • position属性的默认值

    • 元素按照normal flow布局
    • left 、right、top、bottom没有任何作用

在这里插入图片描述

没有任何改变,可以认为在static 模式下,这些属性没有被激活。

15.3 布局-元素定位-相对定位的使用
15.3.1 相对定位 - relative
  • 元素按照normal flow布局
  • 可以通过left、right、top、bottom进行定位

    • 定位参照对象是元素自己原来的位置
  • left、right、top、bottom用来设置元素的具体位置,对元素的作用如下图所示

    在这里插入图片描述

  • 相对定位的应用场景

    • 在不影响其他元素位置的前提下,对当前元素位置进行微调

    <!DOCTYPE html>







    Document





    我是span元素
    我是strong元素

    我是div元素




渲染效果

在这里插入图片描述

没毛病,left 为负值,往左边走,top为负值,往上面走。

15.3.2 相对定位练习
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. div {
  10. font-size: 20px;
  11. }
  12. span {
  13. font-size: 12px;
  14. position: relative;
  15. bottom: 8px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <div>
  21. 3<span>2</span> + 2<span>3</span> = 17
  22. </div>
  23. </body>
  24. </html>

渲染效果

在这里插入图片描述

15.4 布局-元素定位-梦幻西游案例
15.4.1 相对定位练习

在这里插入图片描述

如果直接用背景图片来实现

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. body {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box {
  14. height: 489px;
  15. background-color: #f00;
  16. background: url(../images/mhxy.jpg) center;
  17. }
  18. </style>
  19. </head>
  20. <body>
  21. <div class="box"></div>
  22. </body>
  23. </html>

渲染效果

在这里插入图片描述

这个没啥问题,它会一直处于中间位置

但是如果要用相对定位来实现

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. body {
  10. margin: 0;
  11. padding: 0;
  12. }
  13. .box {
  14. height: 489px;
  15. background-color: #f00;
  16. overflow: hidden;
  17. }
  18. .box img {
  19. position: relative;
  20. /* left: 图片的一般 */
  21. left: -960px;
  22. /* translate中的百分比是相对于自己 */
  23. /* transform: translate(-50%); */
  24. /* 向右边移动div的一般 */
  25. margin-left: 50%;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <div class="box">
  31. <img src="../images/mhxy.jpg" alt="">
  32. </div>
  33. </body>
  34. </html>

渲染效果

在这里插入图片描述

这样也可以实现。

15.5 布局-元素定位-固定定位的使用
15.5.1 固定定位 - fixed
  • 元素脱离normal flow(脱离标准流、脱标)
  • 可以通过left、right、top、bottom进行定位
  • 定位参照对象是视口(viewport)
  • 当画布滚动时,固定不动

    <!DOCTYPE html>







    Document





    我是span元素
    我是strong元素

    我是div元素








































































































渲染效果

在这里插入图片描述

滑动窗口

在这里插入图片描述

它会一直在这儿

15.5.2 画布和视口
  • 视口(Viewport)

    • 文档的可视区域
    • 如下图红框所示

    在这里插入图片描述

  • 画布(Canvas)

    • 用于渲染文档的区域
    • 文档内容超出视口范围,可以通过滚动查看
    • 如下图黑框所示

    在这里插入图片描述

  • 宽高对比

    • 画布 >= 视口
15.6 布局-元素定位-固定定位的练习
15.6.1 固定定位练习

在这里插入图片描述

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .handle {
  10. position: fixed;
  11. right: 30px;
  12. bottom: 30px;
  13. }
  14. .handle .item {
  15. width: 80px;
  16. height: 40px;
  17. text-align: center;
  18. line-height: 40px;
  19. background-color: brown;
  20. color: #fff;
  21. border-radius: 8px;
  22. cursor: pointer;
  23. }
  24. .handle .item:hover {
  25. background-color: red;
  26. }
  27. .top {
  28. margin-bottom: 10px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="handle">
  34. <div class="item top">顶部</div>
  35. <div class="item bottom">反馈</div>
  36. </div>
  37. <br><br><br><br><br>
  38. <br><br><br><br><br>
  39. <br><br><br><br><br>
  40. <br><br><br><br><br>
  41. <br><br><br><br><br>
  42. <br><br><br><br><br>
  43. <br><br><br><br><br>
  44. <br><br><br><br><br>
  45. <br><br><br><br><br>
  46. <br><br><br><br><br>
  47. </body>
  48. </html>

渲染效果

=在这里插入图片描述

在这里插入图片描述

没问题

15.7 布局-元素定位-绝对定位的参考对象
15.7.1 绝对定位 - absolute
  • 元素脱离normal flow(脱离标准流、脱标)
  • 可以通过left、right、top、bottom进行定位

    • 定位参照对象是最邻近的定位祖先元素 【如果没有定位,那压根儿没关系】
    • 如果找不到这样的祖先元素,参照对象是视口
  • 定位元素(positioned element)

    • position值不为static的元素
    • 也就是position值为relative、absolute、fixed的元素

    <!DOCTYPE html>







    Document




    哈哈哈啊



    我是span元素
    我是strong元素

    我是div元素



    呵呵呵呵




渲染效果

在这里插入图片描述

没问题

15.8 布局-元素定位-增强案例子绝父相
15.8.1 子绝父相
  • 在绝大数情况下,子元素的绝对定位都是相对于父元素进行定位
  • 如果希望子元素相对于父元素进行定位,又不希望父元素脱标,常用解决方案是:

    • 父元素设置position: relative(让父元素成为定位元素,而且父元素不脱离标准流)
    • 子元素设置position: absolute
    • 简称为“子绝父相”

    <!DOCTYPE html>







    Document







    我是span元素
    我是strong元素

    我是div元素






渲染效果

在这里插入图片描述

没问题。

15.9 布局-position设置为fixed或者absolute
15.9.1 将position设置为absolute/fixed元素的特点(一)
  • 可以随意设置宽高

    在这里插入图片描述

  • 宽高默认由内容决定
  • 不再受标准流的约束

    • 不再严格按照从上到下、从左到右排布
    • 不再严格区分块级(block)、行内级(inline),行内块级(inline-block)的很多特性都会消失
  • 不再给父元素汇报宽高数据
  • 脱标元素内部默认还是按照标准流布局

    在这里插入图片描述

15.9.2 将position设置为absolute/fixed元素的特点(二)
  • 绝对定位元素(absolutely positioned element)

    • position值为absolute或者fixed的元素
  • 对于绝对定位元素来说

    • 定位参照对象的宽度 = left + right + margin-left + margin-right + 绝对定位元素的实际占用宽度
    • 定位参照对象的高度 = top + bottom + margin-top + margin-bottom + 绝对定位元素的实际占用高度
  • 如果希望绝对定位元素的宽高和定位参照对象一样,可以给绝对定位元素设置以下属性

    • left: 0、right: 0、top: 0、bottom: 0、margin:0
  • 如果希望绝对定位元素在定位参照对象中居中显示,可以给绝对定位元素设置以下属性

    • left: 0、right: 0、top: 0、bottom: 0、margin: auto
    • 另外,还得设置具体的宽高值(宽高小于定位参照对象的宽高)

    <!DOCTYPE html>







    Document











渲染效果

在这里插入图片描述

15.10 值设置auto的效果总结
15.10.1 auto到底是什么?
  • 800 = 200 + ml0 + mr0 + 0 + 0
  • auto -> 交给浏览器你来出来
  • width: auto;
  1. 行内非替换元素 -> width: 包裹内容
  2. 块级元素 ->width: 包含块的宽度
  3. 绝对定位元素 -> width: 包裹内容
15.11 布局-绝对定位练习 网易item
15.11.1 绝对定位的案例练习

在这里插入图片描述

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. /* 重置代码 */
  10. a {
  11. text-decoration: none;
  12. color: #333;
  13. }
  14. /* 公共的CSS */
  15. .sprite_01 {
  16. background-image: url(../images/music_sprite_01.png);
  17. display: inline-block;
  18. }
  19. .sprite_02 {
  20. background-image: url(../images/music_sprite_02.png);
  21. display: inline-block;
  22. }
  23. .sprite_02_icon_music {
  24. width: 14px;
  25. height: 11px;
  26. background-position: 0 -24px;
  27. }
  28. .sprite_02_icon_play {
  29. width: 16px;
  30. height: 17px;
  31. background-position: 0 0;
  32. }
  33. /* 布局代码 */
  34. .item {
  35. width: 140px;
  36. margin: 0 auto;
  37. }
  38. .item .top {
  39. position: relative;
  40. }
  41. .item .top img {
  42. /* 将图片下面的多出来的区域去除 */
  43. vertical-align: top;
  44. /* display: block; */
  45. }
  46. .item .top .cover {
  47. position: absolute;
  48. top: 0;
  49. bottom: 0;
  50. left: 0;
  51. right: 0;
  52. background-image: url(../images/music_sprite_01.png);
  53. background-position: 0 0;
  54. }
  55. .item .top .info {
  56. position: absolute;
  57. bottom: 0;
  58. left: 0;
  59. right: 0;
  60. height: 27px;
  61. padding-left: 10px;
  62. line-height: 27px;
  63. font-size: 12px;
  64. color: #ccc;
  65. background-image: url(../images/music_sprite_01.png);
  66. background-position: 0 -537px;
  67. }
  68. .item .top .info .icon-music {
  69. position: relative;
  70. top: 1px;
  71. /* display: inline-block; */
  72. /* width: 14px;
  73. height: 11px; */
  74. /* background-image: url(../images/music_sprite_02.png); */
  75. /* background-position: 0 -24px; */
  76. }
  77. .item .top .info .count {
  78. margin-left: 4px;
  79. }
  80. .item .top .info .icon-play {
  81. position: absolute;
  82. top: 0;
  83. bottom: 0;
  84. right: 10px;
  85. margin: auto 0;
  86. /* display: inline-block; */
  87. /* width: 16px;
  88. height: 17px; */
  89. /* background-image: url(../images/music_sprite_02.png); */
  90. /* background-position: 0 0; */
  91. }
  92. /* 底部的样式 */
  93. .item .bottom {
  94. display: block;
  95. margin-top: 8px;
  96. font-size: 14px;
  97. }
  98. .item .bottom:hover {
  99. text-decoration: underline;
  100. }
  101. </style>
  102. </head>
  103. <body>
  104. <div class="item">
  105. <div class="top">
  106. <img src="../images/music_album01.jpg" alt="音乐封面">
  107. <a class="cover" href="#"></a>
  108. <div class="info">
  109. <i class="sprite_02 sprite_02_icon_music icon-music"></i>
  110. <span class="count">62万</span>
  111. <i class="sprite_02 sprite_02_icon_play icon-play"></i>
  112. </div>
  113. </div>
  114. <a class="bottom" href="#">
  115. 天气好的话,把耳机分给我一半吧
  116. </a>
  117. <i class="sprite_02 sprite_02_icon_play"></i>
  118. <i class="sprite_02 sprite_02_icon_music"></i>
  119. </div>
  120. </body>
  121. </html>

渲染效果

在这里插入图片描述

15.12 布局-粘性定位sticky的使用
15.12.1 粘性定位 - sticky
  • 另外还有一个定位的值是position: sticky,比起其他定位值要新一些.

    • sticky是一个大家期待已久的属性;
    • 可以看做是相对定位和固定(绝对)定位的结合体;
    • 它允许被定位的元素表现得像相对定位一样,直到它滚动到某个阈值点;
    • 当达到这个阈值点时, 就会变成固定(绝对)定位;
  • sticky是相对于最近的滚动祖先包含滚动视口的(the nearest ancestor scroll container’s scrollport )

在这里插入图片描述

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .nav {
  10. background-color: #f00;
  11. color: #fff;
  12. /* position: relative;
  13. top: 0;
  14. left: 0;
  15. right: 0; */
  16. position: sticky;
  17. top: 0;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <h1>我是标题</h1>
  23. <div class="nav">
  24. <span>电脑</span>
  25. <span>手机</span>
  26. <span>衣服</span>
  27. <span>鞋子</span>
  28. </div>
  29. <ul>
  30. <li>电脑列表1</li>
  31. <li>电脑列表2</li>
  32. <li>电脑列表3</li>
  33. <li>电脑列表4</li>
  34. <li>电脑列表5</li>
  35. <li>电脑列表6</li>
  36. <li>电脑列表7</li>
  37. <li>电脑列表8</li>
  38. <li>电脑列表9</li>
  39. <li>电脑列表10</li>
  40. <li>电脑列表11</li>
  41. <li>电脑列表12</li>
  42. <li>电脑列表13</li>
  43. <li>电脑列表14</li>
  44. <li>电脑列表15</li>
  45. <li>电脑列表16</li>
  46. <li>电脑列表17</li>
  47. <li>电脑列表18</li>
  48. <li>电脑列表19</li>
  49. <li>电脑列表20</li>
  50. <li>电脑列表21</li>
  51. <li>电脑列表22</li>
  52. <li>电脑列表23</li>
  53. <li>电脑列表24</li>
  54. <li>电脑列表25</li>
  55. <li>电脑列表26</li>
  56. <li>电脑列表27</li>
  57. <li>电脑列表28</li>
  58. <li>电脑列表29</li>
  59. <li>电脑列表30</li>
  60. <li>电脑列表31</li>
  61. <li>电脑列表32</li>
  62. <li>电脑列表33</li>
  63. <li>电脑列表34</li>
  64. <li>电脑列表35</li>
  65. <li>电脑列表36</li>
  66. <li>电脑列表37</li>
  67. <li>电脑列表38</li>
  68. <li>电脑列表39</li>
  69. <li>电脑列表40</li>
  70. <li>电脑列表41</li>
  71. <li>电脑列表42</li>
  72. <li>电脑列表43</li>
  73. <li>电脑列表44</li>
  74. <li>电脑列表45</li>
  75. <li>电脑列表46</li>
  76. <li>电脑列表47</li>
  77. <li>电脑列表48</li>
  78. <li>电脑列表49</li>
  79. <li>电脑列表50</li>
  80. <li>电脑列表51</li>
  81. <li>电脑列表52</li>
  82. <li>电脑列表53</li>
  83. <li>电脑列表54</li>
  84. <li>电脑列表55</li>
  85. <li>电脑列表56</li>
  86. <li>电脑列表57</li>
  87. <li>电脑列表58</li>
  88. <li>电脑列表59</li>
  89. <li>电脑列表60</li>
  90. <li>电脑列表61</li>
  91. <li>电脑列表62</li>
  92. <li>电脑列表63</li>
  93. <li>电脑列表64</li>
  94. <li>电脑列表65</li>
  95. <li>电脑列表66</li>
  96. <li>电脑列表67</li>
  97. <li>电脑列表68</li>
  98. <li>电脑列表69</li>
  99. <li>电脑列表70</li>
  100. <li>电脑列表71</li>
  101. <li>电脑列表72</li>
  102. <li>电脑列表73</li>
  103. <li>电脑列表74</li>
  104. <li>电脑列表75</li>
  105. <li>电脑列表76</li>
  106. <li>电脑列表77</li>
  107. <li>电脑列表78</li>
  108. <li>电脑列表79</li>
  109. <li>电脑列表80</li>
  110. <li>电脑列表81</li>
  111. <li>电脑列表82</li>
  112. <li>电脑列表83</li>
  113. <li>电脑列表84</li>
  114. <li>电脑列表85</li>
  115. <li>电脑列表86</li>
  116. <li>电脑列表87</li>
  117. <li>电脑列表88</li>
  118. <li>电脑列表89</li>
  119. <li>电脑列表90</li>
  120. <li>电脑列表91</li>
  121. <li>电脑列表92</li>
  122. <li>电脑列表93</li>
  123. <li>电脑列表94</li>
  124. <li>电脑列表95</li>
  125. <li>电脑列表96</li>
  126. <li>电脑列表97</li>
  127. <li>电脑列表98</li>
  128. <li>电脑列表99</li>
  129. <li>电脑列表100</li>
  130. </ul>
  131. </body>
  132. </html>

渲染效果

在这里插入图片描述

滑下去

在这里插入图片描述

也可以整一个临时的滚动视口

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .box {
  10. width: 500px;
  11. height: 500px;
  12. margin: 100px auto 0;
  13. overflow: scroll;
  14. background-color: #ccc;
  15. }
  16. .nav {
  17. background-color: #f00;
  18. color: #fff;
  19. position: sticky;
  20. top: 0;
  21. }
  22. </style>
  23. </head>
  24. <body>
  25. <div class="box">
  26. <h1>我是标题</h1>
  27. <div class="nav">
  28. <span>电脑</span>
  29. <span>手机</span>
  30. <span>衣服</span>
  31. <span>鞋子</span>
  32. </div>
  33. <ul>
  34. <li>电脑列表1</li>
  35. <li>电脑列表2</li>
  36. <li>电脑列表3</li>
  37. <li>电脑列表4</li>
  38. <li>电脑列表5</li>
  39. <li>电脑列表6</li>
  40. <li>电脑列表7</li>
  41. <li>电脑列表8</li>
  42. <li>电脑列表9</li>
  43. <li>电脑列表10</li>
  44. <li>电脑列表11</li>
  45. <li>电脑列表12</li>
  46. <li>电脑列表13</li>
  47. <li>电脑列表14</li>
  48. <li>电脑列表15</li>
  49. <li>电脑列表16</li>
  50. <li>电脑列表17</li>
  51. <li>电脑列表18</li>
  52. <li>电脑列表19</li>
  53. <li>电脑列表20</li>
  54. <li>电脑列表21</li>
  55. <li>电脑列表22</li>
  56. <li>电脑列表23</li>
  57. <li>电脑列表24</li>
  58. <li>电脑列表25</li>
  59. <li>电脑列表26</li>
  60. <li>电脑列表27</li>
  61. <li>电脑列表28</li>
  62. <li>电脑列表29</li>
  63. <li>电脑列表30</li>
  64. <li>电脑列表31</li>
  65. <li>电脑列表32</li>
  66. <li>电脑列表33</li>
  67. <li>电脑列表34</li>
  68. <li>电脑列表35</li>
  69. <li>电脑列表36</li>
  70. <li>电脑列表37</li>
  71. <li>电脑列表38</li>
  72. <li>电脑列表39</li>
  73. <li>电脑列表40</li>
  74. <li>电脑列表41</li>
  75. <li>电脑列表42</li>
  76. <li>电脑列表43</li>
  77. <li>电脑列表44</li>
  78. <li>电脑列表45</li>
  79. <li>电脑列表46</li>
  80. <li>电脑列表47</li>
  81. <li>电脑列表48</li>
  82. <li>电脑列表49</li>
  83. <li>电脑列表50</li>
  84. <li>电脑列表51</li>
  85. <li>电脑列表52</li>
  86. <li>电脑列表53</li>
  87. <li>电脑列表54</li>
  88. <li>电脑列表55</li>
  89. <li>电脑列表56</li>
  90. <li>电脑列表57</li>
  91. <li>电脑列表58</li>
  92. <li>电脑列表59</li>
  93. <li>电脑列表60</li>
  94. <li>电脑列表61</li>
  95. <li>电脑列表62</li>
  96. <li>电脑列表63</li>
  97. <li>电脑列表64</li>
  98. <li>电脑列表65</li>
  99. <li>电脑列表66</li>
  100. <li>电脑列表67</li>
  101. <li>电脑列表68</li>
  102. <li>电脑列表69</li>
  103. <li>电脑列表70</li>
  104. <li>电脑列表71</li>
  105. <li>电脑列表72</li>
  106. <li>电脑列表73</li>
  107. <li>电脑列表74</li>
  108. <li>电脑列表75</li>
  109. <li>电脑列表76</li>
  110. <li>电脑列表77</li>
  111. <li>电脑列表78</li>
  112. <li>电脑列表79</li>
  113. <li>电脑列表80</li>
  114. <li>电脑列表81</li>
  115. <li>电脑列表82</li>
  116. <li>电脑列表83</li>
  117. <li>电脑列表84</li>
  118. <li>电脑列表85</li>
  119. <li>电脑列表86</li>
  120. <li>电脑列表87</li>
  121. <li>电脑列表88</li>
  122. <li>电脑列表89</li>
  123. <li>电脑列表90</li>
  124. <li>电脑列表91</li>
  125. <li>电脑列表92</li>
  126. <li>电脑列表93</li>
  127. <li>电脑列表94</li>
  128. <li>电脑列表95</li>
  129. <li>电脑列表96</li>
  130. <li>电脑列表97</li>
  131. <li>电脑列表98</li>
  132. <li>电脑列表99</li>
  133. <li>电脑列表100</li>
  134. </ul>
  135. </div>
  136. </body>
  137. </html>

渲染效果

在这里插入图片描述

15.12.3 position值对比

在这里插入图片描述

15.13 布局-定位元素的z-index设置
15.13.1 CSS属性 - z-index
  • z-index属性用来设置定位元素的层叠顺序(仅对定位元素有效)

    • 取值可以是正整数、负整数、0
  • 比较原则

    • 如果是兄弟关系

      • z-index越大,层叠在越上面
      • z-index相等,写在后面的那个元素层叠在上面
    • 如果不是兄弟关系

      • 各自从元素自己以及祖先元素中,找出最邻近的2个定位元素进行比较
      • 而且这2个定位元素必须有设置z-index的具体数值

在这里插入图片描述

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .item {
  10. position: fixed;
  11. width: 100px;
  12. height: 100px;
  13. left: 0;
  14. top: 0;
  15. background-color: #f00;
  16. }
  17. .box2 {
  18. left: 20px;
  19. top: 20px;
  20. background-color: #0f0;
  21. z-index: -1;
  22. }
  23. .box3 {
  24. left: 40px;
  25. top: 40px;
  26. background-color: #00f;
  27. }
  28. </style>
  29. </head>
  30. <body>
  31. <div class="item box1">1</div>
  32. <div class="container">
  33. <div class="item box2">2</div>
  34. </div>
  35. <div class="item box3">3</div>
  36. </body>
  37. </html>

渲染效果

在这里插入图片描述

如果是兄弟比较

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .item {
  10. position: fixed;
  11. width: 100px;
  12. height: 100px;
  13. left: 0;
  14. top: 0;
  15. background-color: #f00;
  16. }
  17. .box2 {
  18. left: 20px;
  19. top: 20px;
  20. background-color: #0f0;
  21. z-index: -1;
  22. }
  23. .box3 {
  24. left: 40px;
  25. top: 40px;
  26. background-color: #00f;
  27. }
  28. .info {
  29. position: absolute;
  30. z-index: 999;
  31. }
  32. </style>
  33. </head>
  34. <body>
  35. <div class="item box1">1</div>
  36. <div class="container">
  37. <div class="item box2">
  38. <div class="info">哈哈哈</div>
  39. <div>呵呵呵</div>
  40. </div>
  41. </div>
  42. <div class="item box3">3</div>
  43. </body>
  44. </html>

渲染效果

在这里插入图片描述

发表评论

表情:
评论列表 (有 0 条评论,218人围观)

还没有评论,来说两句吧...

相关阅读