CSS(四)

一、高度塌陷

1、在浮动布局中,父元素的高度默认由子元素撑开,子元素浮动后脱离文档流,将无法撑起父元素高度从而导致塌陷
2、父元素高度丢失后,其下元素会自动上移导致页面的布局混乱
尚硅谷web前端——CSS(四)
3、BFC:块级格式化环境,CSS中隐含属性,为元素开启BFC会变成独立的布局区域
4、BFC特点:

  • 开启BFC的元素不会被浮动元素所覆盖
  • 子元素和父元素之间外边距不会重叠
  • 可以包含浮动的子元素

5、开启BFC的方法:

  • 设置元素浮动(将失去宽度)
  • 将元素设置为行内块(将失去宽度)
  • 将元素的overflow设置为一个非visible的值 如:overflow:hidden
    尚硅谷web前端——CSS(四)

二、clear属性

1、用来消除其他元素浮动对其的影响

  • left消除左侧影响
  • right消除右侧影响
  • both消除两侧较大的影响
    2、原理:设置清除后,浏览器会自动为元素添加一个外边距,以使位置不受其他元素的影响
    不使用clear时:
    尚硅谷web前端——CSS(四)
    使用clear
    尚硅谷web前端——CSS(四)

三、使用after 伪类解决高度塌陷

尚硅谷web前端——CSS(四)

四、定位(position)

1、通过定位可以将元素摆放在页面的任何位置,通过position属性来设置

  • static默认值,静止,没有开启定位
  • relative开启元素的相对定位
  • absolute绝对定位
  • fixed固定定位
  • sticky粘滞定位

2、相对定位 relative

  • 开启相对定位后,若不设置偏移量,将不会发生任何变化,通过偏移量来修改元素的位置

  • top 定位元素和定位位置上边的距离

  • bottom定位元素和定位位置下边的距离

  • left\right控制水平方向的位置

  • 相对定位时参照元素在文档流中的位置(它之前所在的位置)

  • 相对定位会提升元素的层级

  • 相对定位会使元素脱离文档流

  • 相对定位不会改变元素性质
    尚硅谷web前端——CSS(四)
    效果:
    尚硅谷web前端——CSS(四)
    3、绝对定位 absolute

  • 绝对定位如果不设置偏移量,则元素的位置不发生改变

  • 元素会从文档流中脱离

  • 绝对定位会改变元素性质,行内元素变成块元素,块的宽高被内容撑开

  • 绝对定位会提高元素的层级

  • 绝对定位使其对于其包含块进行定位
    什么是包含块嘞? (●’◡’●)
    ①正常情况下包含块是离当前元素最近的祖先元素
    ②绝对定位的包含块是离它最近的开启了定位的祖先元素,如果所有的祖先元素都没有开启定位,则相对于根元素(html)进行定位
    ③根元素(html)是初始包含块

    尚硅谷web前端——CSS(四)尚硅谷web前端——CSS(四)我上面写错了,应该是移动到根元素的左上角(⊙ˍ⊙)
    尚硅谷web前端——CSS(四)
    4、固定定位 fixed

  • 固定定位也是一种绝对定位,特点与绝对定位差不多

  • 固定定位永远参照与浏览器的视口进行定位

  • 固定定位元素不会随网页的滚动而滚动(联想:小广告)

5、粘滞定位 sticky

  • 与相对定位特点基本一直,在元素到某位置后固定不变
  • 相对于包含块(body)进行偏移

6、绝对定位元素的位置

  • 水平布局:margin-left/right+left/right+border-leftt/right+width+padding-left/right=包含块内容区宽度
  • 开启绝对定位后,千万不要忘了增加了left和right,9个属性值需要满足等式
  • 当发生过度约束时,如果没有auto,则自动调整right
  • 若有auto,则调整auto
  • left 和right 默认auto
  • 垂直方向必须满足(只有绝对定位才可以):margin-top/bottom+top/bottom+border-top/bottom+height+padding-top/bottom=包含块的高度,过度约束的时候会自动调整bottom来满足等式

7、元素的层级

  • 开启定位元素,可通过z-index来指定元素层级,z-index整数越大,越优先显示
  • 若层级一致,则优先显示靠下面位置的元素
  • 祖先元素层级再高也不会盖住后代元素

相关文章:

  • 2021-09-28
  • 2021-11-25
  • 2022-02-01
  • 2021-04-27
  • 2021-11-02
猜你喜欢
  • 2021-06-13
  • 2021-09-29
  • 2021-05-05
  • 2021-11-26
  • 2021-10-02
  • 2022-02-05
  • 2021-12-17
相关资源
相似解决方案