[关闭]
@MRsunhuimin 2019-07-12T01:35:39.000000Z 字数 3595 阅读 263

html第四天(2019.07.11)

html

作者:孙慧敏

1. 标准文档流

1.1 概念

    标准文档流:指元素根据块元素或行内元素的特性按从上到下,从左到右的方式自然排列。这也是元素默认的排列方式

1.2 组成

    1. 块级元素(block):<h1>…<h6>、<p>、<div>、列表
    2. 内联元素(inline):<span>、<a>、<img/>、<strong>...
内联标签可以包含于块级标签中,成为它的子元素,而反过来则不成立

2. <display>属性

说明
block 块级元素的默认值,元素会被显示为块级元素,该元素前后会带有换行符
inline 内联元素的默认值。元素会被显示为内联元素,该元素前后没有换行符
inline-block 行内块元素,元素既具有内联元素的特性,也具有块元素的特性
none 设置元素不会被显示

2.1 <display>的特性

    块级元素与行级元素的转变(block、inline)
    控制块元素排到一行(inline-block)
    控制元素的显示和隐藏(none)

3. 浮动

属性值 说明
left 元素向左浮动
right 元素向右浮动
none 默认值。元素不浮动,并会显示在其文本中出现的位置

4. 边框塌陷

原因:

    浮动元素脱离标准文档流

解决方法:

    清除浮动

4.1 清除浮动

说明
left 在左侧不允许浮动元素
right 在右侧不允许浮动元素
both 在左、右两侧不允许浮动元素
none 默认值。允许浮动元素出现在两侧

4.2 解决父级边框塌陷的方法

  1. 浮动元素后面加空div
  1. .clear{
  2. clear: both;
  3. margin: 0;
  4. padding: 0;
  5. }
  6. <div id="father">
  7. <div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
  8. <div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
  9. <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
  10. <div class="layer04">浮动的盒子……</div>
  11. <div class="clear"></div>
  12. </div>

2.设置父元素的高度

  1. #father {
  2. height: 400px;
  3. border:1px #000 solid;
  4. }
  5. <div id="father">
  6. <div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
  7. <div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
  8. <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
  9. <div class="layer04">浮动的盒子……</div>
  10. </div>

3.父级添加overflow属性

  1. #father {
  2. overflow: hidden;
  3. border:1px #000 solid;
  4. }
  5. <div id="father">
  6. ......
  7. </div>
属性值 说明
visible 默认值。内容不会被修剪,会呈现在盒子之外
hidden 内容会被修剪,并且其余内容是不可见的
scroll 内容会被修剪,但是浏览器会显示滚动条以便查看其余内容
auto 如果内容被修剪,则浏览器会显示滚动条以便查看其余的内容

4.父级添加伪类after

  1. .clear:after{
  2. content: ''; /*在clear类后面添加内容为空*/
  3. display: block; /*把添加的内容转化为块元素*/
  4. clear: both; /*清除这个元素两边的浮动*/
  5. }
  6. <div id="father" class="clear">
  7. <div class="layer01"><img src="image/photo-1.jpg" alt="日用品" /></div>
  8. <div class="layer02"><img src="image/photo-2.jpg" alt="图书" /></div>
  9. <div class="layer03"><img src="image/photo-3.jpg" alt="鞋子" /></div>
  10. <div class="layer04">浮动的盒子……</div>
  11. </div>

5.小结
清除浮动,防止父级边框塌陷的四种方法

    1. 浮动元素后面加空div
        简单,空div会造成HTML代码冗余

    2. 设置父元素的高度
        简单,元素固定高会降低扩展性

    3. 父级添加overflow属性
        简单,下拉列表框的场景不能用

    4. 父级添加伪类after
        写法比上面稍微复杂一点,但是没有副作用,推荐使用

5. inline-block和float的区别

    1. display:inline-block

        可以让元素排在一行,并且支持宽度和高度,代码实现起来方便

        位置方向不可控制,会解析空格

        IE 6、IE 7上不支持

    2. float 

        可以让元素排在一行并且支持宽度和高度,可以决定排列方向

        float浮动以后元素脱离文档流,会对周围元素产生影响,必须在它的父级上添加 清除浮动的样式

6. 定位

position属性

    1. static:默认值,没有定位

    2. relative:相对定位

    3. absolute:绝对定位

    4. fixed:固定定位

6.1 相对定位relative属性值

    相对自身原来位置进行偏移

    偏移设置:top、left、right、bottom
  1. #third {
  2. background-color:#C5DECC;
  3. border:1px #395E4F dashed;
  4. position:relative;
  5. right:20px;
  6. bottom:30px;
  7. }
    规律:
    1. 设置相对定位的盒子会相对它原来的位置,通过指定偏移,到达新的位置

    2. 设置相对定位的盒子仍在标准文档流中,它对父级盒子和相邻的盒子都没有任何影响

    3. 设置相对定位的盒子原来的位置会被保留下来

6.2 绝对定位absolute属性值

    偏移设置: left、right、top、bottom 

    规律:
    1. 使用了绝对定位的元素以它最近的一个“已经定位”的“祖先元素” 为基准进行偏移

    2. 如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位

    3. 绝对定位的元素从标准文档流中脱离,这意味着它们对其他元素的定位不会造成影响

    4. 元素位置发生偏移后,它原来的位置不会被保留下来

    绝对定位不设置偏移量:

        1. 设置了绝对定位但没有设置偏移量的元素将保持在原来的位置。

        2. 在网页制作中可以用于需要使某个元素脱离标准流,而仍然希望它保持在原来的位置的情况

6.3 固定定位fixed属性固定定位

    偏移设置: left、right、top、bottom 

    类似绝对定位,不过区别在于定位的基准不是祖先元素,而是浏览器窗口

6.4 定位小结

6.4.1相对定位的特性和使用场景
1. 相对定位的特性

    1.1 相对于自己的初始位置来定位

    1.2 元素位置发生偏移后,它原来的位置会被保留下来

    1.3 层级提高,可以把标准文档流中的元素及浮动元素盖在下边

2. 相对定位的使用场景

    2.1 相对定位一般情况下很少自己单独使用,都是配合绝对定位使用,为绝对定位创造定位父级而又不设置偏移量
6.4.2绝对定位的特性和使用场景
1. 绝对定位的特性

    1.1 绝对定位是相对于它的定位父级的位置来定位,如果没有设置定位父级,则相对浏览器窗口来定位

    1.2 元素位置发生偏移后,原来的位置不会被保留

    1.3 层级提高,可以把标准文档流中的元素及浮动元素盖在下边

    1.4 设置绝对定位的元素脱离文档流

2. 绝对定位的使用场景

    2.1 一般情况下,绝对定位用在下拉菜单、焦点图轮播、弹出数字气泡、特别花边等场景
6.4.3固定定位的特性和使用场景
1. 固定定位的特性

    1.1 相对浏览器窗口来定位

    1.2 偏移量不会随滚动条的移动而移动

2. 固定定位的使用场景

    2.1 一般在网页中被用在窗口左右两边的固定广告、返回顶部图标、吸顶导航栏等

7. z-index属性

调整元素定位时重叠层的上下位置

    1. z-index属性值:整数,默认值为0

    2. 设置了positon属性时,z-index属性可以设置各元素之间的重叠高低关系

    3. z-index值大的层位于其值小的层上方
属性 说明 举例
opacity:x x值为0~1,值越小越透明 opacity:0.4;
filter:alpha(opacity=x) x值为0~100,值越小越透明 filter:alpha(opacity=40);

7.1 小结

1. 网页中的元素都含有两个堆叠层级

    1.1 未设置绝对定位时所处的环境,z-index是0

    1.2 设置绝对定位时所处的堆叠环境,此时层的位置由z-index的值确定

2. 改变设置绝对定位和没有设置绝对定位的层的上下堆叠顺序,只需调整绝对定位层的z-index值即可
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注