`

【转】CSS子div设置float后父级div无法自适应高度的问题解决方法

阅读更多

    在用CSS+DIV的布局中,经常会发现,当一个DIV float之后,如果他的高度超过了其父DIV的高度时,其父DIV的高度并不会相应的进行调整。要解决这个问题(也叫做闭合(清除)浮动),我们有四种办法:

 

1. 额外标签法

 

这种方法就是向父容器的末尾再插入一个额外的标签,并令其清除浮动(clear)以撑大父容器。这种方法浏览器兼容性好,没有什么问题,缺点就是需 要额外的(而且通常是无语义的)标签。我个人比较喜欢这种方法,因为它简单、实用、浏览器兼容性好,而且这种方法也是W3C推荐的方法

<div style="clear:both;"></div>

或者使用

<br style="clear:both;"/>

 

2. 使用after伪类

 

这种方法就是对父容器使用after伪类和内容声明在指定的现在内容末尾添加新的内容。经常的做法就是添加一个“点”,因为它比较小不太引人注意。然后我们再利用它来清除浮动(闭合浮动元素),并隐藏这个内容。这种方法兼容性一般,但经过各种 hack 也可以应付不同浏览器了,同时又可以保证html比较干净。

 

#outer:after{
content:".";
height:0;
visibility:hidden;
display:block;
clear:both;
}

 

3. 设置overflow为hidden或者auto

 

这种做法就是将父容器的overflow设为hidden或auot就可以在标准兼容浏览器中闭合浮动元素。不过使用overflow的时候,可能会对页面表现带来影响,而且这种影响是不确定的,你最好是能在多个浏览器上测试你的页面。

#outer{
overflow:auto;
zoom:1;
}

overflow:auto;是让高度自适应, zoom:1;是为了兼容IE6,也可以用height:1%;的方式来解决。

 

4. 浮动外部元素,float-in-float

 

这种做法就是让父容器也浮动,这利用到了浮动元素的一个特性——浮动元素会闭合浮动元素。这种方式在 IE/Win 和标准兼容浏览器中都有较好的效果,但缺点也很明显——父容器未必想浮动就浮动的了,毕竟浮动是一种比较特殊的行为,有时布局不允许其浮动也很正常。

分享到:
评论

相关推荐

    子div含float,父div高度自适应的div+css布局写法

    div+css高度自适应网页布局,子div含float,父div高度自适应,已经通过测试的浏览器:ie6、ie7、ie8、火狐、Chrome。 代码来源: http://www.positioniseverything.net/articles/onetruelayout/equalheight

    css+div自适应窗口宽度

    总的来说,CSS+div自适应窗口宽度主要依靠`min-width`, `width`, `float`和百分比单位等属性来实现。通过合理的布局和JavaScript辅助,可以创建出适应不同屏幕尺寸的响应式网页,确保在各种设备上提供良好的用户体验...

    关于div自适应高度/左右高度自适应一致的js代码

    通过上述两种方法的结合使用,我们就可以解决在网页布局中常见的左右两侧DIV自适应高度以及DIV高度自适应屏幕的布局问题。这不仅有助于保持页面布局的整洁和一致性,而且能够提升网页在不同设备和屏幕尺寸上的适应性...

    div+css菜单导航布局自适应宽度

    我们可以为`div`设置类或ID,然后在CSS中通过这些类或ID来定义样式,如宽度、高度、颜色等。在创建导航菜单时,通常会用一个`div`来包裹整个导航条,每个菜单项也会被分别放入独立的`div`中。 接着,让我们探讨CSS...

    CSS+DIV常用方法说明

    ### CSS+DIV常用方法说明:理解布局与标签的精髓 #### 概述 在现代网页设计中,CSS(层叠样式表)与HTML中的`&lt;div&gt;`元素是构建页面布局和样式的基石。通过合理利用CSS与`&lt;div&gt;`,可以实现响应式设计、灵活的网格...

    div+css模板布局 右侧固定,左侧自适应

    但是,这种方法可能导致父元素高度塌陷,需要额外的清理或clearfix解决。 2. **定位布局**:利用`position`属性,将右侧`div`设置为`position:fixed`,使其相对于浏览器窗口固定。左侧`div`可以保持默认的流式布局...

    div ul li 嵌套后如何解决增加多个li后DIV高度自适应问题

    总的来说,通过合理设置 `li`、`ul` 和 `div` 的高度属性,以及使用 `clear:both` 解决浮动问题,我们可以实现 `div` 高度自适应 `li` 的功能。当在 `ul` 中添加更多 `li` 时,这个结构会自动扩展其高度以适应新的...

    div+css常见兼容性问题

    在网页设计中,`div+css`是一种常见的布局方式,但它也伴随着一系列的浏览器兼容性问题。这些问题主要出现在不同浏览器对CSS规范的解读和实现上存在差异,尤其是老版本的Internet Explorer(如IE6和IE7)与其他...

    div不能自适应高度不能随图片的高度变化

    总结以上几种方法,我们可以通过不同的CSS技术手段来解决&lt;div&gt;不能随图片高度变化而自适应高度的问题。每种方法都有自己的使用场景和优缺点,开发者可以根据实际页面结构和布局需求来选择最合适的解决方案。在实际...

    IE6的双倍边距和火狐自适应高度

    为了解决IE6中自适应高度的问题,可以通过以下方法: 1. **显式定义高度:** 可以为`&lt;div&gt;`显式设置一个高度,但这不是最优解,因为它限制了布局的灵活性。 2. **使用`min-height`属性:** 在现代浏览器中,可以...

    css+div浏览器兼容技巧

    - 当一个div设置了`float`属性后,IE浏览器会将margin值加倍。解决此问题的方法是在div中添加`display:inline`。这样,IE浏览器会将margin理解为正常值。 3. **浮动产生的双倍距离** - 为解决IE浏览器中浮动元素...

    CSS+DIV实例

    1. 浮动布局:早期的`CSS+DIV`布局常使用`float`属性,让元素在容器中浮动,实现左右排列或自适应布局。 2. 盒模型:理解盒模型是布局的关键,它包括元素的内容、内边距、边框和外边距,影响元素的总尺寸。 3. 定位...

    里面的div怎么撑开外面的div让高度自适应

    如果内部的 `div` 或其子元素(如 `li`)设置了浮动(`float`),那么在某些情况下,即使设置了 `min-height`,外部 `div` 也可能无法正确地扩展。这是因为浮动元素不会影响其父元素的高度计算。为了解决这个问题,...

    css+div源代码

    下面将详细探讨CSS、div以及它们如何协同工作来创建动态和响应式的网页设计。 首先,CSS是一种样式表语言,用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档的外观和格式。它的主要作用是分离内容(HTML)...

    css+div网站实例源码

    - **Flexbox**: CSS Flexbox布局模块,适用于需要在不同屏幕尺寸上自适应的现代网页设计,通过设置`display: flex`,可以轻松实现主轴对齐、交叉轴对齐、伸缩等效果。 - **Grid Layout**: CSS Grid布局模块,提供了...

    用CSS+DIV做的网上书店模板

    【CSS+DIV布局详解】 CSS(Cascading Style Sheets)是一种样式表语言,用于描述HTML或XML(包括如SVG、MathML等各种XML方言)文档的呈现。它通过控制元素的样式,如字体、颜色、大小、位置等,来实现网页的布局和...

    DivCSS.rar_ divcss_divcss

    1. 浮动布局:通过设置float属性,可以让Div元素浮动,常用于创建多列布局。 2. 定位布局:利用position属性(static, relative, absolute, fixed),可以实现元素的精确定位。 3. Flex布局:现代浏览器支持的...

    DIV+CSS浏览器兼容问题解决方法

    为解决这个问题,可以为非IE浏览器使用min-width和min-height,同时为IE设置宽度和高度,如: ```css #box{ width: 80px; height: 35px; } html&gt;body #box{ width: auto; height: auto; min-width: 80px; ...

    2列左窄右宽、高度自适应CSS模板

    "2列左窄右宽、高度自适应CSS模板"是一种常见的网页布局模式,它将页面分为两个部分:左侧窄栏和右侧宽栏。这种布局广泛应用于各种网站,如博客、电子商务平台等,因为它可以有效地展示主要内容和辅助信息。 首先,...

    css+div LAMP兄弟连

    4. **浮动(Float)与清除(Clear)**:在布局中,浮动元素常用于创建多列布局,而清除则用于解决因浮动带来的问题。 5. **响应式设计(Responsive Design)**:学习如何使用媒体查询(`@media`)适应不同设备的屏幕...

Global site tag (gtag.js) - Google Analytics