css什么时候清除浮动

在css中,当我们对元素进行float浮动时就需要清除浮动,因为当元素进行浮动时,元素就会脱离文档流;并且在css中任何元素都可以浮动,浮动元素会生成一个块级框,而不论它本身是何种元素。

css什么时候清除浮动

css/editerView/ck_htmledit_views-b5506197d8.css”/>

推荐:《css基础教程》

清除浮动,什么时候需要清除浮动,清除浮动都有哪些方法 ?
一.什么时候需要清除浮动?

我们对元素进行了浮动(float)时,我们的元素就会脱离文档流,像一只小船一样漂流在文档之上。

在 CSS 中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
float主要流行与页面布局,然后没有使用后没有清除浮动,就会后患无穷。

立即学习“前端免费学习笔记(深入)”;

知乎上截图:
这里写图片描述

分析HTML代码结构:

    

1

    

2

    

3

登录后复制

分析CSS代码样式:

.outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;}.p1{width: 80px;height: 80px;background: red;float: left;}.p2{width: 80px;height: 80px;background: blue;float: left;}.p3{width: 80px;height: 80px;background: sienna;float: left;}

登录后复制

这里写图片描述

这里我没有给最外层的p.outer 设置高度,但是我们知道如果它里面的元素不浮动的话,那么这个外层的高是会自动被撑开的。但是当内层元素浮动后,就出现了影响

1、父盒子的margin受到影响,无法实现左右居中,
2、我没有给父盒子设置高度,浮动后父盒子的高度没有被撑开,图片中撑开的高度是padding带来的效果。

这里写图片描述

清除浮动都有哪些方法 ?
清除(clear)也有4个可能值。最常用的是 both,清楚左右两边的浮动。left 和 right 只能清楚一个方向的浮动。none 是默认值。

方法一:添加新的元素 应用 clear:both;
HTML:

    

1

    

2

    

3

    

登录后复制

CSS:

.clear{clear:both; height: 0; line-height: 0; font-size: 0}

登录后复制

效果:
这里写图片描述
即:
这里写图片描述
【补充】:
使用空标签清除浮动.
这里写图片描述

这里写图片描述
方法二:父级p定义 overflow: auto(注意:是父级p也就是这里的 p.outer)

HTML:

 //这里添加了一个class    

1

    

2

    

3

    <!--

-->

登录后复制

CSS:

.over-flow{    overflow: auto; zoom: 1; //zoom: 1; 是在处理兼容性问题}

登录后复制

效果图同上。

原理:使用overflow属性来清除浮动有一点需要注意,overflow属性共有三个属性值:hidden,auto,visible。我们可以使用hiddent和auto值来清除浮动,但切记不能使用visible值,如果使用这个值将无法达到清除浮动效果,其他两个值都可以。

【补充】:
使用overflow属性
此方法有效地解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。使用该方法是只需在需要清除浮动的元素中定义CSS属性:overflow:auto,即可。 overflow:auto;是让高度自适应,zoom:1;是为了兼容IE6,也可以用height:1%;的方式来解决,注意,zoom不符合W3C标准。overflow:hidden也可以实现。overflow:hidden也可以实现。
这里写图片描述

这里写图片描述

方法三: 据说是最高大上的方法 :after 方法:(注意:作用于浮动元素的父亲)
先说原理:它就是利用:after和:before来在元素内部插入两个元素块,从而达到清除浮动的效果。其实现原理类似于clear:both方法,只是区别在于:clear在html插入一个p.clear标签,而outer利用其伪类clear:after在元素内部增加一个类似于p.clear的效果。下面来看看其具体的使用方法:

.outer {zoom:1;}    /*==for IE6/7 Maxthon2==*/.outer:after {clear:both;content:'.';display:block;width: 0;height: 0;visibility:hidden;}   /*==for FF/chrome/opera/IE8==*/

登录后复制

其中clear:both;指清除所有浮动;content: ‘.’; display:block;对于FF/chrome/opera/IE8不能缺少,
其中content()可以取值也可以为空。visibility:hidden;的作用是允许浏览器渲染它,但是不显示出来,这样才能实现清楚浮动。
即:

.outer{border: 1px solid #ccc;background: #fc9;color: #fff; margin: 50px auto;padding: 50px;} .clearfix:after {content:'';display:block;clear:both;visibility:hidden;zoom:1;}

登录后复制

 

登录后复制

【补充】:

使用after伪对象清除浮动

after伪对象非IE浏览器支持,所以并不影响到IE/WIN浏览器。具体写法可参照以下示例。使用中需注意以下几点。

a、该方法中必须为需要清除浮动元素的伪对象中设置height:0,否则该元素会比实际高出若干像素;

b、content属性是必须的,但其值可以为空,蓝色理想讨论该方法的时候content属性的值设为”.”

再次again:当一个内层元素是浮动的时候,如果没有关闭浮动时,其父元素也就不会再包含这个浮动的内层元素,因为此时浮动元素已经脱离了文档流。也就是为什么外层不能被撑开了!

浮动的特点:
1.浮动的元素,讲向左或者向右浮动,浮动到包围元素的边上,或者上一个浮动元素的边上为止。

2.浮动的元素,不再占用空间,且浮动元素的层级要高于普通元素。

3.浮动的元素,一定是块元素,不管之前是什么元素。

4.如果浮动的元素没有指定宽度的话,浮动后会尽可能变窄,因此浮动元素要指定宽和高。

5.一行的多个元素,要浮动大家一起浮动。

以上就是css什么时候清除浮动的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2883679.html

(0)
上一篇 2025年3月10日 20:21:36
下一篇 2025年3月10日 20:21:47

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • css中有哪些UI元素状态伪类选择器

    css中的UI元素状态伪类选择器有:1、E:hover;2、E:action;3、E:focus;4、E:enable;5、E:disabled;6、E:read-only;7、E:read-write;8、E:checked。 UI元素状…

    2025年3月10日
    200
  • css如何设置首行缩进2个字符

    css设置首行缩进2个字符的方法:可以利用text-indent属性来设置首行缩进2个字符,如【text-indent:2em;】。text-index属性用于规定文本块中首行文本的缩进,em是相对单位。 相关属性: text-indent…

    2025年3月10日
    200
  • css怎么合并单元格

    css合并单元格的方法:首先创建一个HTML示例文件;然后通过设置colspan来合并列;最后再通过设置rowspan合并行即可。 推荐:《css视频教程》 css table之合并单元格 colspan 是合并列,rowspan是合并行,…

    2025年3月10日
    200
  • css如何实现不显示元素

    css实现不显示元素的方法:可以利用display和visibility属性实现,如【display:none;visibility:hidden;】。display属性规定元素应该生成的框的类型,visibility属性规定元素是否可见。…

    2025年3月10日
    200
  • css怎么设置字体倾斜样式

    css设置字体倾斜样式的方法,可以利用font-style属性来进行设置,如【font-style:oblique;】。font-style属性指定文本的字体样式,属性值oblique指定倾斜样式。 相关属性介绍: font-style属性…

    2025年3月10日
    200
  • css怎么把字体加粗加大

    css把字体加粗加大的方法:可以利用font-weight属性来实现,如【font-weight: bold;】。font-weight属性用于设置文本的粗细,bold用于定义粗体字符。 相关属性: font-weight 属性设置文本的粗…

    2025年3月10日
    200
  • css内链式、外链式和嵌入式之间有什么区别?

    区别:内链式是指使用style属性在HTML标签中写css样式;外链式是指将css样式单独写在一个以“.css”为扩展名的文件中,使用link标签引用;嵌入式使用style标签引用,在“”中单独写css样式。 详细讲解: 1、href=&#…

    2025年3月10日
    200
  • css选择器first-child与first-of-type之间有什么区别?

    区别::first-child匹配父元素中的第一个子元素,可以说是结构上的第一个子元素;而:first-of-type匹配父元素下相同类型子元素中的第一个,不再限制是第一个子元素了,只要是该类型元素的第一个就行了。 【推荐教程:CSS视频教…

    2025年3月10日
    200
  • css比html更复杂为什么还要用?

    原因:单纯使用html开发出来的页面是丑陋的,而html内部标签支持的样式并不是很多,使用css可以美化html页面;且将网页的大部分甚至是全部的表示信息从HTML文件中移出,并将它们保留在一个样式表中,可以降低文件大小、易于维护。 【推荐…

    2025年3月10日
    200
  • css怎么设置字体位置

    css设置字体位置的方法:可以利用text-align属性来设置,如【text-align:left】,表示位置居中。text-align属性用于指定元素文本的水平对齐方式。 相关属性: text-align属性指定元素文本的水平对齐方式。…

    2025年3月10日
    200

发表回复

登录后才能评论