在CSS中我们会经常要用到“清除浮动”Clear,比较典型的就是clear:both;
CSS手册上是这样说明的:该属性的值指出了不允许有浮动对象的边。这个属性是用来控制float属性在文档流的物理位置的。
当属性设置float(浮动)时,其所在的物理位置已经脱离文档流了,但是大多时候我们希望文档流能识别float(浮动),或者是希望float(浮动)后面的元素不被float(浮动)所影响,这个时候我们就需要用clear:both;来清除。
比如:
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:right;width:400px;">这个是第2列,</p>
<p>这个是第3列。</p>
如果不用清除浮动,那么第3列文字就会和第1、2列文字在一起 ,所以我们在第3个这列加一个清除浮动 clear:both;
<p style="float:left;width:200px;">这个是第1列,</p>
<p style="float:left;width:400px;">这个是第2列,</p>
<p style="clear:left;">这个是第3列。</p>
通常,我们往往会将“清除浮动”单独定义一个CSS样式,如:
.clear {
clear: both;
}
然后使用<div class="clear"></div>来专门进行“清除浮动”。
不过也有不赞同意见是,<div class="clear"></div>可以不写,直接在下层清除就可以了。
比如本来好好的
<p style="float:left;width:200px;">这个是第1列,</p> <p style="float:left;width:400px;">这个是第2列,</p> <p style="clear:both;">这个是第3列。</p> |
非要整成
<p style="float:left;width:200px;">这个是第1列,</p> <p style="float:left;width:400px;">这个是第2列,</p> <div class="clear"></div> <p>这个是第3列。</p> |
这点看来,<div class="clear"></div>确实不需要写。
不过很显然,我们在网页设计时还有一种很普遍的情况:
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
</div>
<p style="clear:both;">第三段内容</p>
该页面测试在IE下效果正合所要:蓝色块内部有红色和黄色两个色块内容,同时在蓝色块以下是第三段文本。
不过FF的效果可不是这样的。我们不能单单想在下一层清除就能完成我们的工作,我们必须在浮动元素所在标签闭合之前及时进行“清除”。
<style type="text/css">
#main {background-color: #3399CC;width: 600px;padding: 20px;}
#sidebar {background-color: #FF6600; float: left;width: 130px;}
#container {float: right;width: 420px;background-color: #FFFF33;}
.clear {clear: both;}
</style>
<div id="main">
<div id="sidebar">第一段内容 第一段内容 第一段内容</div>
<div id="container">第二段内容 第二段内容 第二段内容</div>
<div class="clear"></div>
</div>
<p>第三段内容</p>
对于因多加的<div class="clear"></div>标签会引起IE和FF高度变化,通过如下方法解决:
.clear {
clear: both;
height:1px;
margin-top:-1px;
overflow:hidden;
}
转自: http://www.cnbruce.com/BLOG/showlog.asp?log_id=1281
分享到:
相关推荐
}`和`.clearfix:after{clear:both;}`来实现。 5. **响应式设计基础设置**:对于移动优先的设计策略,可以初始化一些媒体查询,如`@media screen and (max-width:XXXpx){...}`,以便在不同屏幕尺寸下应用不同样式。 ...
CSS浏览器兼容性问题...使用`clear:both;`来清除浮动。使用`height:auto;`来实现自适应高度。 了解浏览器的兼容性问题是非常重要的。使用正确的CSS技巧和hack可以解决浏览器的兼容性问题,提高Web开发的效率和质量。
在 CSS3 中,`overflow-x` 和 `overflow-y` 被引入以允许分别控制水平和垂直方向上的溢出内容处理方式。这为网页布局提供了更多的灵活性和精确度。 ### 2. 清除浮动的方法 清除浮动是前端开发中常见的需求,主要...
尤其是IE6,由于其对CSS支持的不足,使得开发过程中需要额外处理许多兼容性问题。以下是一些常见的CSS兼容性问题及其解决方案: 1. **垂直居中问题**: - CSS的`vertical-align:middle;`配合调整`line-height`可以...
2. **清除浮动**:为避免浮动元素导致的父元素高度塌陷,需要使用`clear:both`或伪元素`::after`进行清除浮动。 3. **Flex布局**:CSS3引入的弹性盒模型(Flexbox)能方便地实现单行或多行的弹性布局,是现代网页...
7. Both (二者都是): 在`clear`属性中,清除两侧的浮动元素。 8. Color (颜色): 设置文本、边框等的颜色,可以使用颜色名称、十六进制、RGB、RGBA等表示。 9. CSS (层叠样式表): 用于描述HTML或XML(包括如SVG、...
- 清除浮动:浮动元素可能导致父元素高度塌陷,需要使用`clear`属性(如`clear:both`)来清除浮动,或者使用`clearfix`类解决。 3. **背景**: - 背景颜色:通过`background-color`设置元素的背景色。 - 背景...
- `clear`属性用于决定元素是否允许其他浮动元素出现在其周围,可选值有`left`、`right`和`both`。 案例练习: - 练习1:将绿色边框样式改为左右边框宽度4px,样式为虚线,可以使用`border-left`和`border-right`...
在网页开发中,CSS(层叠样式表)的浏览器兼容性问题是一直困扰开发者的重要因素。不同的浏览器对CSS的理解和解析方式可能存在差异,这导致了在不同浏览器下页面显示效果的不一致。以下是针对CSS兼容性问题的一些...
3. 清除:`clear`用于清除浮动影响,如`both`清除两侧浮动。 4. 边距:`margin`设定元素四周的空白区域。 5. 内边距:`padding`控制元素内部的空白。 6. 边框:`border`属性包括`border-style`(样式)、`border-...
clear:both用来清除浮动这是一直来的印象,但是自己很少会用这个,理解其实也不太正确,今天查查了资料,记录一下 float的脱离文档流 float的原始作用是为了实现文字环绕的作用,可以理解为部分脱离文档流。 CSS中说...
在CSS世界中,`float`和`clear`是两个非常重要的布局属性,它们在网页设计中扮演着不可或缺的角色。这两个属性对于理解盒模型以及创建复杂的网页布局至关重要。在这篇文章中,我们将深入探讨`float`和`clear`的概念...
`clear`属性用于清除浮动,如`clear:both`,避免后续元素紧贴浮动元素。 六、动画与过渡 1. 过渡(transition):通过`transition`属性实现元素属性变化的平滑过渡,如`transition: all 0.5s ease 0s`。 2. 动画...
2. 清除(Clear):`clear: both`用于防止元素因浮动影响而错位,通常应用于包含浮动元素的父容器。 六、定位(Positioning) 1. 静态定位(Static):默认定位方式,元素遵循正常的文档流。 2. 相对定位(Relative...
- **盒模型**:理解CSS盒模型是非常重要的,它涉及到元素的宽度、内边距、边框和外边距。 - **定位方式**:除了浮动之外,还可以使用`position`属性来实现精确的定位,如`relative`、`absolute`、`fixed`等。 - **...
3. `clear`:防止元素被浮动元素覆盖,如`both`清除两侧浮动。 4. `margin`和`padding`:分别设置元素边界的外边距和内边距,可以使用简写形式。 5. `border`:包含边框样式、宽度和颜色的简写属性,如`border: 1px ...
clear:both; visibility:hidden; }`。这种方法无需添加额外的HTML结构,只需对CSS进行调整,即可有效清除浮动。 总结来说,理解和解决CSS的兼容性问题需要深入理解浏览器渲染机制,灵活运用各种技巧和hack。虽然...
`clear:both`可以确保元素不被两侧的浮动元素包围,而`clear:left`或`clear:right`则只清除单侧的浮动。 在实践中,开发者经常需要优先测试IE6和IE7,因为它们对CSS的支持最不完整,可能导致最复杂的问题。为这些老...
HTML与CSS面试题 ... 1. HTML语义化的理解: ...语义化的优点包括:易于阅读和维护、利于SEO、便于浏览器和搜索引擎解析。...② 给后面的父盒子上设置clear:both属性,clear表示清除其他盒子的浮动对自己的影响。
在本文中,我们将深入探讨几个关键的CSS布局属性,包括`position`、`direction`、`float`、`clear`、`z-index`、`width`以及`height`。 1. **position属性**: `position`属性决定了元素在页面中的定位方式。它...