CSS浮动
AI-摘要
Tianli GPT
AI初始化中...
介绍自己 🙈
生成本文简介 👋
推荐相关文章 📖
前往主页 🏠
前往爱发电购买
CSS浮动
Mxne传统网页布局方式
网页布局的本质——用 CSS 来摆放盒子,把盒子放到相应位置
- 普通流
- 浮动
- 定位
标准流(普通流/文档流)
标准流,就是标签按照规定好的默认方式排列。
- 块级元素会独占一行,从上到下顺序排列 常用元素:div、hr、p、h1-h6、ul、ol、dl、form、table
- 行内元素会按照顺序,从左到右顺序排列,碰到父元素边缘则自动换行。 常用元素:span、a、i、em
标准流是最基本的布局方式。
以上三种方式都是来摆放盒子的,盒子摆到合适位置,布局自然就完成了。
实际开发中,一个页面基本包含三种布局方式。
浮动
很多布局效果,标准流没办法完成,此时就可以利用浮动完成布局。浮动可以改变元素标签默认排列方式。如 让多个块级元素一行显示。
网页布局第一准则:多个块级元素 纵向 排列找 标准流,多个块级元素 横向 排列找 浮动。
网页布局第二准则:先设置盒子大小,再设置盒子位置。
1 | /* |
特性
浮动元素会脱离标准流,移动到指定位置(脱标);浮动的盒子 不占位置,会漂浮在文档流的盒子上面(浮在空中,不占位置)
如果多个盒子都设置了浮动,则它们会按照属性值 一行显示 并且 顶端对齐排列。 浮动的元素是相互贴在一起的(盒子间没有间隙),若父级 宽度放不下盒子,多出的盒子会 另起一行对齐。
- 浮动的元素会 具有行内块元素的特性,任何元素都可以浮动,增加浮动后具有行内块元素相似特性。如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定
浮动元素经常和标准流父级元素搭配使用:先用标准流父元素上下排列位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则。(大盒子束约小盒子)
未完待续…
清除浮动
为什么要清楚浮动:由于父级盒子很多情况下,不方便给高度,当时盒子浮动又不占有位置,最后父级盒子高度为 0 时,就会影响下面的盒子,对后面元素排版产生影响。
清除浮动的本质
- 清除浮动的本质是清除浮动元素脱离标准流造成的影响
- 如果父盒子本身具有高度,则不需要清除浮动
- 清除浮动之后,父级会根据浮动的子盒子自动检测高度,父级有了高度,就不会影响下面的标准流了。
1 | /* |
清除浮动的方法
- 额外标签法(隔墙法),是 W3C 推荐的方法
- 父级添加 overflow 属性
- 父级添加 after 伪元素
- 父级添加双伪元素
额外标签法
额外标签法是在最后一个 浮动元素末尾 添加一个 空块级元素,给其赋以属性 clear:both;
父级添加 overflow
给 父级 添加 overflow
属性,将其属性设置为 hidden
、auto
或scroll
。
父级添加 after
1 | .clearfix:after { |
父级添加双伪元素
1 | .clearfix::before, |
清除浮动的方法总结
清除浮动的方式 | 优点 | 缺点 |
---|---|---|
额外标签法(隔墙法) | 通俗易懂,书写方便 | 添加许多无意义的标签,结构化较差 |
父级 verflow:hidden | 书写简单 | 溢出隐藏 |
父级 after 伪元素 | 结构语义化正确 | 由于IE6-7不支持:after,兼容性问题 |
父级双伪元素 | 结构语义化正确 | 由于IE6-7不支持:after,兼容性问题 |
定位
评论
匿名评论隐私政策
✅ 你无需删除空行,直接评论以获取最佳展示效果