学习前端的第九天

本文深入探讨了CSS布局中常见的高度塌陷问题及其解决方案,包括设置固定高度、开启BFC、使用clear属性、空div清除浮动等方法。同时,详细介绍了CSS定位机制,如relative、absolute、fixed和sticky定位的特点及应用场景,帮助开发者更好地理解和运用这些定位技巧。
摘要由CSDN通过智能技术生成

1.高度塌陷:在布局中,一般情况下,我们不给父元素设置高度,由内容撑开盒子高度,但当子元素设置浮动后,盒子脱离文档流,不占父元素内的位置,导致父元素高度为零。

解决方法:

1)给父元素设置高度;

2)给元素开启隐含属性BFC(块级格式上下文)

设置overflow样式,且属性值非visible;

设置元素浮动,但父元素也会脱离文档流,造成新的布局问题;

将元素转为行内块元素,但父元素宽度丢失,图片三像素问题出现;

将position的值为absolute或fixed;

特点:

开启BFC的元素可以包裹住浮动的元素,解决高度塌陷的问题;

开启的元素不会被浮动元素覆盖;

父子外边距不会重叠,可以解决外边距重叠问题。

3)设置clear样式,消除浮动元素对下面元素的影响

left:消除左侧元素浮动对元素的影响

right:消除右侧浮动对元素的影响

both:消除两侧浮动元素对元素的影响,其中哪一侧浮动带来的影响大,就清除谁

4)在浮动子元素的下方设置一个空的块元素,然后借助clear属性来消除浮动元素对空的块元素的浮动影响。

5)在高度塌陷的父元素的最后,添加一个空白的div,由于这个div并没有浮动,所以他是可以撑开父元素的高度的,然后在对其进行清除浮动,这样可以通过这个空白的div来撑开父元素的高度.

6)结合伪类after以及clear来解决,通过伪类after,在元素的后面添加内容,将这个内容转成块元素,再清除其他浮动元素对这个块元素的浮动影响

7)可以通过after伪类向元素的最后添加一个空白的块元素,然后对其清除浮动,这样做和添加一个div的原理一样,可以达到一个相同的效果。

2.定位:是一种布局手段,而且它是一种高级的布局手段,可以将页面中的任何元素放在页面中的任意位置,通过position属性进行设置。

属性值:static默认值不开启定位;

以下四种都属于开启定位

relative  开启相对定位

absolute  开启绝对定位

fixed     开启固定定位

sticky    开启粘滞定位

1)相对定位position:relative;

 特点:    

开启了相对定位,如果不配合偏移量使用,元素不会发生任何变化;相对定位,是相对于元素原来在文档流中的位置定位;开启了相对定位后,元素的层级会变高,也就是会盖住其他的元素;开启了相对定位后,元素的性质不会发生变化。

偏移量:相对于定位位置挪动的大小的值

left   相对于定位位置左侧的偏移量

right   相对于定位位置右侧的偏移量

top    相对于定位位置上侧的偏移量

bottom  相对于定位位置下侧的偏移量

一般情况下,设置偏移量,水平方向,left或right调动一个值,垂直方向,top或bottom调动一个值

2)绝对定位position:absolute;

特点:

开启了绝对定位,如果不配合偏移量使用,元素的位置没有发生变化

开启了绝对定位后,元素会脱离文档流,下面的元素就会跑上去

开启了绝对定位,元素脱离文档流,元素的性质就会发生变化

不再区分块还是行内还是行内块,也就是块元素不会独占一行了,行内元素可以设置宽高等等

绝对定位的原点,是相对于其包含块来确定的,一般情况下,如果设置子元素为绝对定位,我们会同时设置其父元素相对定位,以便设置偏移量,这种情况叫“子绝父相”,但最终还是要根据如何方便设置子元素偏移量为准。

包含块:在没有定位的情况下,其包含块就是其父元素或祖先元素,在开启了定位的情况下,其包含块就是离它最近开启了定位的祖先元素,如果其祖先元素都没有开启定位,包含块就是根元素(html标签)

3)固定定位position:fixed;

特点

开启固定定位后,元素会脱离文档流,元素的性质会发生改变

开启固定定位后,元素会固定在页面中,不会随着滚动条滚动而滚动

开启固定定位后,也需要配合偏移量,来改变元素在页面中位置

固定定位的原点是html根标签,也就是浏览器视口

常用的场景:固定的侧边导航;固定的广告;固定的顶部、底部导航

4)粘滞定位position: sticky;

特点

开启粘滞定位,元素不会脱离文档流,也就是元素性质也不会发生改变

开启粘滞定位后,元素位置不发生改变,需要配合偏移量使用

一般情况下,是配合top值使用,在没有到达top值之前,元素是随着滚动条滚动而滚动,当到达top值之后,元素就不会随着滚动条滚动而滚动了

粘滞定位是后来增加的定位方式,注意它的兼容性,一般兼容到ie9以上

粘滞定位的原点也是浏览器视口,也就是html根标签

主要的应用场景:侧边导航;广告;顶部导航,底部导航

         

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值