浮动的认识

您所在的位置:网站首页 html元素浮动上方 浮动的认识

浮动的认识

2023-03-14 23:13| 来源: 网络整理| 查看: 265

浮动最早出现的时候不是为了做整个页面布局的,他是为了实现一种效果,叫文字环绕。后来因为浮动的属性特殊,用来做横向布局使用。所以学习完浮动后,我们遇到横向布局,可以直接用浮动实现。

浮动这个属性未来一定会被弹性盒子完全替代。

选择器 { float: left; }

浮动支持以下属性

left 左浮动 从左边开始 横向排列 贴左侧 更常用right 右浮动 从右边开始 横向排列 贴右边none 不浮动 脱离文档流

正常的布局文档流是从上到下的,当我们给一个元素浮动,然后在正常的文档流中,相当于这个元素消失了。

块元素 不怕 会出现在浮动元素的下方行内元素(文字)沿着浮动元素排列 (浮动元素无法盖着行内元素) 多个元素同时浮动

如果多个元素同时浮动,那么元素们会在另外一个空间中进行有序的布局,排列方式从最开始的从上到下,变成了从左到右。

浮动后的特点 元素变成块元素

不管是什么元素,只要浮动,都支持设置宽高和margin padding等属性。

导致父元素高度塌陷

当一个父元素内部所有的子元素都浮动时,父元素会没有高度。

如何解决?

给父元素添加浮动

只适合特定布局

定高法

这种方法只适合确定的单行元素,未来不可能出现换行的情况

清除浮动

clear属性用来清除浮动。

clear有left(左浮元素无法覆盖)、right(右浮动元素无法覆盖)、both(左右浮动元素)

原理,给父元素内部最后添加空标签,设置样式

.clear { height: 0; clear: both; }

这个方法需要在html中添加空标签,不是一个好的办法。

结合伪元素 + clear解决问题(完美写法)

原理理解最好,不理解没关系。

去下面的补充知识中随便找一个网站的clearfix代码,复制到自己的网站css中。然后布局时遇到子元素全部浮动的情况,就给父元素添加一个clearfix即可。

浮动元素换行

如果说我们的浮动元素没有多余空间,则会换到下一行排列。

浮动元素前面的块元素会阻止元素继续浮动

在我们浮动时,如果前面有块元素,则元素会阻止覆盖前面的块元素。

补充 伪元素

这个东西是通过css在页面渲染的时候,给对应的标签上添加的一个假的元素。不像真的元素一样,是HTML标签。这个元素可以通过css设置属性 ,并且其内容也需要通过css设置。

选择器::after { content: ""; } 选择器::before { content: ""; }

这样的伪元素的写法,类似与给父元素标签中添加了span标签,填入对应的内容

1 2 3 4 5 .box::after { content: "内容"; }

相当于直接,在html结构的最下面,添加了一个span标签

1 2 3 4 5 内容

after是添加在对应元素闭合标签之前的,before是添加在开始标签之后的。

伪元素默认是行内元素

各个网站的clearfix

小米

.clearfix:after,.clearfix:before { content: " "; display: table } .clearfix:after { clear: both }

京东

.clearfix:after { /* 让元素不可见但是占据位置 */ visibility: hidden; clear: both; display: block; content: "."; height: 0 } .clearfix { *zoom:1 }

淘宝

.clearfix { *zoom:1 } .clearfix:after,.clearfix:before { content: " "; display: table } .clearfix:after { height: 0; line-height: 0; visibility: hidden; clear: both }

伪元素用两个:: 和一个:效果都一样,在CSS3中,为了让用户区分伪元素和伪类的写法,所以定义伪元素要用两个冒号。一个冒号兼容性更好,两个冒号更符合标准。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3