CSS 浮动

这篇具有很好参考价值的文章主要介绍了CSS 浮动。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、为什么需要浮动

网页中有很多的布局效果,标准流没有办法完成。此时我们就可以利用浮动来实现部分网页布局,因为浮动可以改变元素标签默认的排列方式。

浮动最典型的应用:可以让多个块级元素在一行内排列显示。(无空隙)
网页布局第一准则:多个块级元素纵向排列找标准流,横向排列用浮动!

二、什么是浮动

float 属性用于创建浮动框,将其移动到一边,直到左边缘或右边缘触及到包含块或者触及到另一个浮动框的边缘。

div1 {
float: left;
}

属性值:
none 不浮动,left 左浮动,right 右浮动

三、浮动特性

① 浮动元素会脱离标准流;
② 浮动元素会在一行内显示,并沿着元素的顶部对齐;
③ 浮动元素会具有行内块元素的特性。

1.脱离标准流

(1)脱离标准流的控制,移动到指定位置;
(2)浮动的盒子不再保留原先的位置。

CSS 浮动
浮动的盒子是飘起来的,不会占用位置!

2.一行内显示

如果多个盒子都设置了浮动,则它们会按照属性值在一行内显示,并沿着元素顶部对齐。(紧挨着不会有空隙,一行显示不下会换行显示)

3.具有行内块元素特性

任何元素都可以浮动,不管原先是什么模式的元素,添加浮动后具有和行内块元素相似的特性。

① 如果行内元素有了浮动,则不需要转换成块级或行内块元素就可以直接为其设置宽度和高度;
② 如果块级盒子没有设置宽度,默认宽度和父级一样宽,但是添加浮动后,它的大小根据内容来决定。

四、约束浮动元素

为了约束浮动元素的位置,我们通常将浮动元素与标准流父级元素搭配使用。
先用标准流的父元素排列上下位置,之后内部子元素采取浮动排列左右位置,符合网页布局第一准则!

CSS 浮动

① 通栏盒子和浏览器一样宽,无需设置宽度;
② 浮动的盒子只会影响它后面的标准流盒子,不会影响前面标准流的;
③ 一个盒子里面有多个盒子时,如果其中一个盒子浮动了,那么为了防止不必要的麻烦,其它的盒子也应当设置浮动。

五、清除浮动

1.为什么要清除浮动

我们前面的浮动元素都有一个标准流的父元素,它们有一个共同特点就是它们都是有高度的。但是,所有的父盒子都必须有高度吗?
其实在很多情况下,由于盒子内容大小的不确定性,父盒子是不方便直接给出高度的,但是子盒子浮动又不占有位置,最终导致父级盒子高度为0,会直接影响到下面的标准流盒子。

CSS 浮动

2.清除浮动本质

① 清除浮动的本质是清除浮动元素造成的影响;
② 如果父盒子本身有高度,则不需要清除浮动;
③ 清除浮动之后,父级就会根据浮动的子盒子自动检测高度,父级有了高度就不会影响下面的标准流了。

语法:

div2 {
clear: right;
}

CSS 浮动
我们在实际工作中,几乎只会用到 both!

3.清除浮动的方法

① 额外标签法也称隔墙法,是 W3C 推荐的做法;
② 父级添加 overflow 属性;
③ 父级添加 :after 伪元素;
④ 父级添加双伪元素。

3.1 额外标签法

额外标签法会在最后一个浮动元素的末尾添加一个空的标签,例如<div style="clear: both"></div>,或者其它标签(如<br/>等)。

优点:通俗易懂,书写方便;
缺点:添加许多无意义的标签,结构化较差。
(新添加的元素必须是块级元素!)

3.2 父级添加 overflow 属性

为父级盒子添加 overflow 属性,属性值有:hidden、auto 和 scroll。

优点:代码简洁;
缺点:无法显示溢出的部分。
(注意是要给父元素添加属性!)

3.3 :after 伪元素法

:after 方法是额外标签法的升级版,也是给父元素添加。

给父元素添加一个名叫 clearfix 的类,如下图是 CSS部分:
CSS 浮动

优点:没有增加标签,结构简单;
缺点:照顾低版本浏览器。
(固定版式,复制粘贴直接用就可以!)

3.4 双伪元素清除浮动

也是给父元素添加一个类。
CSS 浮动

优点:代码简洁;
缺点:还是照顾低版本浏览器。
(依然是直接复制粘贴就可以!)文章来源地址https://www.toymoban.com/news/detail-494936.html

到了这里,关于CSS 浮动的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 为什么越来越多的人开始学习大数据了?

    现在,在数字化转型的推动下,越来越多的企业意识到大数据的魅力,并不断在这个领域投入资金,Python+大数据开发相关人才也备受青睐! 大数据从业领域很宽广,不管是科技领域还是食品产业,零售业等都是需要大数据人才进行大数据的处理,以提供更好的用户体验,优

    2024年02月02日
    浏览(59)
  • 为什么越来越多的企业选择了云计算

    随着数字化转型的加速,越来越多的企业开始选择云计算作为信息技术应用的基础设施。那么,云计算究竟有哪些优势?未来发展趋势又是怎样的呢?让我们一起来探讨一下吧。 随着数字化转型的加速,越来越多的企业开始选择云计算作为信息技术应用的基础设施。那么,云

    2024年02月05日
    浏览(56)
  • 为什么越来越多的人转行学IT当程序员?

    疫情当下,大学毕业生的人数越来越多,就业越来越困难,导致毕业生的就业压力越来越大。但就在这种“毕业即失业”的就业形势下,IT行业的从业者却拿着高薪,在所有行业中成为“佼佼者”。 为什么学IT的人越来越多? 01 行业发展前景,一直向上 我们的工作、生活和学

    2023年04月11日
    浏览(75)
  • 为什么越来越多的企业选择云数据存储而放弃本地数据存储?

    随着企业的发展,它们会产生大量数据。企业已经意识到,利用他们的数据做出数据驱动的决策对于创新和保持竞争优势至关重要。 本文将会探讨企业在收集和分析大数据时可能面临的主要挑战,以及将企业数据仓库部署到本地或云数据存储的选择。我们将根据安全性、成本

    2024年02月08日
    浏览(49)
  • 为什么越来越多的设计师开始用云渲染来渲图?

    为什么越来越多的设计师开始使用 云渲染 ?小编认为可以从设计师以及云渲染平台自身这2个方向分析,下面一起阅读云渲染干货~ 1.出图多,电脑供不应求 绘图员制作完后需要渲染给甲方确认,甲方要求多的又着急的话边改图边渲染的效率不太高,这样让绘图员的工作增加

    2024年02月06日
    浏览(66)
  • 为什么越来越多的开发者放弃使用Postman,而选择Apifox

    1、Postman + Swagger + Mock + JMeter 作为一个后端开发,我做的大部分项目一般都是基于 Swagger 来管理 API 文档,基于 Postman 来做接口调试,基于 JMeter 来做接口性能测试,基于 RAP 等工具 Mock API 数据。 2、存在的问题 (1)多系统数据不互通 API设计者、前端开发、后端开发、测试人

    2024年01月20日
    浏览(54)
  • 为什么需要数据仓库

    为什么不在OLTP环境下分析?  OLTP环境也会存储历史数据,但这些历史数据并不是业务运行所需的,这些历史数据需要经常归档到数据仓库,并且在OLTP数据库中删除。 相比之下,事务环境适用于连续处理事务,通常应用于订单录入以及财务和零售事务。它们并不依赖历史数据

    2024年01月25日
    浏览(67)
  • 为什么需要超时控制

    本文将介绍为什么需要超时控制,然后详细介绍Go语言中实现超时控制的方法。其中,我们将讨论 time 包和 context 包实现超时控制的具体方式,并说明两者的适用场景,以便在程序中以更合适的方式来实现超时控制,提高程序的稳定性和可靠性。 超时控制可以帮助我们避免程

    2024年02月03日
    浏览(57)
  • 为什么需要websocket?

    前端和后端的交互模式最常见的就是前端发数据请求,从后端拿到数据后展示到页面中。如果前端不做操作,后端不能主动向前端推送数据,这也是http协议的缺陷。        因此,一种新的通信协议应运而生---websocket,他最大的特点就是服务端可以主动向客户端推送消息,客

    2024年02月12日
    浏览(59)
  • 为什么需要单元测试?

    为什么需要单元测试? 从产品角度而言,常规的功能测试、系统测试都是站在产品局部或全局功能进行测试,能够很好地与用户的需要相结合,但是缺乏了对产品研发细节(特别是代码细节的理解)。 从测试人员角度而言,功能测试和系统测试以及其他性能测试等等对测试

    2024年02月12日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包