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

CSS(四)

一、高度塌陷

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

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

5、开启BFC的方法:

  • 设置元素浮动(将失去宽度)
  • 将元素设置为行内块(将失去宽度)
  • 将元素的overflow设置为一个非visible的值 如:overflow:hidden
    在这里插入图片描述

二、clear属性

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

  • left消除左侧影响
  • right消除右侧影响
  • both消除两侧较大的影响
    2、原理:设置清除后,浏览器会自动为元素添加一个外边距,以使位置不受其他元素的影响
    不使用clear时:
    在这里插入图片描述
    使用clear
    在这里插入图片描述

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

在这里插入图片描述

四、定位(position)

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

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

2、相对定位 relative

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

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

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

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

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

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

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

  • 相对定位不会改变元素性质
    在这里插入图片描述
    效果:
    在这里插入图片描述
    3、绝对定位 absolute

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

  • 元素会从文档流中脱离

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

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

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

    在这里插入图片描述在这里插入图片描述我上面写错了,应该是移动到根元素的左上角(⊙ˍ⊙)
    在这里插入图片描述
    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整数越大,越优先显示
  • 若层级一致,则优先显示靠下面位置的元素
  • 祖先元素层级再高也不会盖住后代元素
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值