`
魏祖清
  • 浏览: 180267 次
  • 性别: Icon_minigender_1
  • 来自: 福建
社区版块
存档分类
最新评论

常用的清除浮动的方法有以下三种

阅读更多
常用的清除浮动的方法有以下三种:

此为未清除浮动源代码,运行代码无法查看到父级元素浅黄色背景。

<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>


1、使用空标签清除浮动。我用了很久的一种方法,空标签可以是div标签,也可以是P标签。我习惯用<P>,够简短,也有很多人用<hr>,只是需要另外为其清除边框,但理论上可以是任何标签。这种方式是在需要清除浮动的父级元素内部的所有浮动元素后添加这样一个标签清除浮动,并为其定义CSS代码:clear:both。此方法的弊端在于增加了无意义的结构元素。

ps:<br clear=”all”/>也可以实现效果,但不清楚使用哪个比较好。呵呵
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
.clr{clear:both;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
<p class=”clr”> </p>
</div>



2、使用overflow属性。此方法有效地解决了通过空标签元素清除浮动而不得不增加无意代码的弊端。使用该方法是只需在需要清除浮动的元素中定义CSS属性:overflow:auto,即可!overflow:auto;是让高度自适应, zoom:1;是为了兼容IE6,也可以用height:1%;的方式来解决,注意,zoom不符合W3C标准.
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;overflow:auto;zoom:1;}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>



3.
<style type=”text/css”>
<!–
*{margin:0;padding:0;}
body{font:36px bold; color:#F00; text-align:center;}
#layout{background:#FF9;dispaly:inline_block;width:100%}
#left{float:left;width:20%;height:200px;background:#DDD;line-height:200px;}
#right{float:right;width:30%;height:80px;background:#DDD;line-height:80px;}
–>
</style>
<div id=”layout”>
<div id=”left”>Left</div>
<div id=”right”>Right</div>
</div>



清除浮动一个凡是做页面的人都会遇到的一个东西,但是是否大家都能够清楚的知道,全方位的了解呢?于是一闲下来了马上写了这样的一篇文章,不能讲面面俱到,然而基本能将我所知道的倾囊相授了。
我们粗略的一起来看看清除浮动的办法一共有多少个(IE里面用zoom:1就不写了,下一个专题再写)。

   1. 采用伪类:after进行后续空制的高度位零的伪类层清除
   2. 采用CSS overflow:auto的方式撑高
   3. 采用CSS overflow:hidden的方式产生怪异适应
   4. 采用display:table将对象变成table形式
   5. 采用div标签,以及css的clear属性


粗略的看,他们都能将问题解决;然而他们另外一方面又有着各自的利弊。(一一对应)

   1. 优点结构语义化完全正确,不会产生其余的怪异问题。
      缺点复用方式不当容易造成代码量急剧增大。
      建议最外层轻浮动时使用,或清晰模块化复用方式的人使用。
   2. 优点结构语义化完全正确,代码量极少。
      缺点多个嵌套后,点击最外层的轻浮动框会遭成最外层至最内层内容全选(FF);或者在mouseover造成宽度改变时会出现最外层模块有滚动条(IE)。
      建议内个模块使用,请勿嵌套。
   3. 优点结构语义化完全正确,代码量极少。
      缺点内容增多时候极易不会自动换行而内容被隐藏掉。
      建议宽度固定时使用,请勿嵌套。
   4. 优点结构语义化完全正确,代码量极少。
      缺点盒模型属性已经改变,可想而知奇异事件自然多得你数都数不到。
      建议如果你不想改Bug改死你的话,最好不要使用;不过可以作为alpha版本当中临时性的忽悠下测试。
   5. 优点代码量极少,复用性极高。
      缺点完全不能完美的适应语义化,不利于改版以及需求变更。
      建议初学者使用,可以让你快速的解决浮动问题。 
分享到:
评论

相关推荐

    css如何清除浮动常用的方法有哪些

    以下是三种常用的清除浮动方法: 1. **使用clear属性**: `clear:both;` 这是最直接的清除浮动方式,它告诉元素不允许任何浮动元素出现在其左侧或右侧。当应用于浮动元素的下一个兄弟元素时,`clear:both;` 将使该...

    DIV+CSS 清除浮动常用方法总结

    为解决这个问题,我们可以采用以下三种常见的清除浮动方法: 1. **添加clearfix类**: 这是最常见的一种方式,通过给未浮动的子元素添加`clear: both;`来实现。如果所有子元素都浮动了,可以在最后一个子元素后面...

    前端开发面试题整合(css、js、vue。react等)

    有三种方法可以清除浮动影响: * 使用 overflow 来清除浮动的影响 * 使用额外标签法,在浮动的盒子之下再放一个标签,在这个标签中使用 clear:both,来清除浮动对页面的影响 * 使用伪元素来清除浮动 3. 实现盒子...

    牛客-前端布局与事件高频考点

    BFC(Block Formatting Context)是CSS布局中的一种机制,可以用来清除浮动。BFC可以将浮动元素包含在其中,从而清除浮动的影响。 五、overflow:hidden作用 overflow:hidden可以用来溢出隐藏,清除浮动的影响。...

    三种纤维过滤器在火电厂水处理中的应用.pdf

    总结以上知识点,三种纤维过滤器在火电厂水处理中的应用各有特点,其中下进水囊式纤维过滤器已得到了具体的应用和分析。针对纤维过滤器的优缺点,需要结合实际水质条件进行选择,并且在实际应用过程中不断优化其设计...

    CSS hack 针对IE6,IE7,firefox显示不同效果

    一个常用的方法是使用一个clearfix类,它通过添加一个伪元素来清除浮动。具体实现如下: ```css .clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; } .clearfix ...

    CSS完美兼容IE6_IE7_FF的通用方法

    对于行高和垂直居中问题,可以采用以下几种方法: - 直接设置`line-height`与当前div的高度相同,并使用`vertical-align: middle`来实现文本的垂直居中。 - 水平居中可以通过设置`margin: 0 auto`来实现。 - 对于a...

    最新版面试宝典(1).pdf

    - 清除浮动的不同方法。 - 响应式设计的实现方法,适应不同分辨率的页面布局技巧。 - 渐进增强与优雅降级的概念及其区别。 - 结构与表现分离的Web页面设计理念。 - Web语义化的理解和重要性。 - CSS选择器的...

    父级元素未设置高度和宽度时高度塌陷问题的解决方法

    解决“高度塌陷”有多种策略,下面将详细介绍其中三种常用的方法: 1. **浮动父级元素** 这种方法较为奇特但确实有效。通过设置父级元素的浮动属性,如`float:left`或`float:right`,可以使其高度自动扩展以包裹...

    最新web前端面试题(及答案).docx

    #### 三、清除浮动的方法及其优劣 **问题3:** 清除浮动有哪些方式?比较好的方式是哪一种? **答案:** 1. **清除浮动的方法:** - **方法1:** 定义父元素的高度。 - **方法2:** 在结尾处添加一个空的`&lt;div&gt;`...

    2022年大厂前端面试手册新版1

    清除浮动主要有以下几种方法: 1. 使用clear属性:如`clear:both;`,但只能对当前元素起作用。 2. 使用clearfix类:通过伪元素如`.clearfix::before`和`.clearfix::after`添加清除浮动。 3. 使用overflow属性:设置`...

    css中间自适应布局的5种解法详解

    这种布局方式的优点是兼容性高,但缺点也很明显,需要清除浮动,否则浮动元素会影响其他布局。 第二种方法是使用CSS的绝对定位(position: absolute)。在这种布局方式下,通过将左右栏相对于父容器绝对定位并固定...

    iPlatUI 前台开发指南

    - **浮动和清除浮动**:掌握浮动的基本原理及清除浮动的方法。 - **position和z-index**:了解各种定位方式的区别及其层级控制。 - **overflow属性**:掌握溢出处理机制。 - **margin和padding**:掌握间距的...

    Containing Floats (Complex Spiral Consulting).pdf

    1. **清除浮动:** 使用`clear`属性或伪元素`::after`来清除浮动效果,使父元素能够正确包裹其内的浮动元素。 2. **使用Flexbox或Grid:** 在现代浏览器中,使用Flexbox或Grid布局可以更简单地实现相同的布局效果,...

    Web前端开发经典面试题(附参考答案)

    - A 项是常用的一种方法,可以在文档流中插入一个明确的断点来清除浮动。 - B 项通过隐藏溢出内容来清除浮动,也是一种常见方法。 - C 项不推荐,因为这会导致整个布局结构发生变化。 - D 项是使用类来清除浮动...

    CSS中火狐浏览器与IE浏览器的兼容

    一种常用的解决方法是: ```css #element { display: inline-block; vertical-align: middle; line-height: 200px; /* 根据实际情况调整 */ height: 200px; /* 同上 */ } ``` ##### 2. 解决IE下的margin双倍...

    ie的常见兼容问题

    常用的几种方法包括: - 对于图片等块级元素,可以通过设置`text-align: center`使其居中。 - 对于固定宽度的块级元素,可以通过设置`margin: 0 auto`使其居中。 - 对于列表项,可以将`display`属性设置为`inline...

    css-dictionary(CSS常用英语词汇详解)

    以下将详细介绍近100个在CSS中常用的英语词汇及其含义。 #### 二、A - Z 英语词汇详解 ##### A - **Absolute**: 绝对定位。用于CSS中的`position`属性,使元素脱离文档流,并相对于最近的非静态定位祖先元素定位...

Global site tag (gtag.js) - Google Analytics