`

CSS: 解决Div float后,父Div无法高度自适应的问题

阅读更多

CSS: 解决Div float后,父Div无法高度自适应的问题   

遇到上述问题的解决方案,以待后查【

 

2010-04-21 15:04:06 |  分类: WEB | 字号   订阅

在用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+css常见兼容性问题

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

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

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

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

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

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

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

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

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

    DivCSS.rar_ divcss_divcss

    《深入理解DivCSS:构建网页布局的艺术》 在网页设计领域,HTML与CSS是不可或缺的基础技术,而DivCSS则是HTML布局的重要组成部分。本篇将基于提供的资料“DivCSS.rar”中的“DivCSS.pdf”,深入探讨DivCSS的核心...

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

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

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

    标题和描述中提到的问题正是关于这个需求:如何让内部的 `div` 撑开外部的 `div`,使得外部 `div` 的高度能随内容增多而自适应。 在正常情况下,如果内部 `div` 的内容高度超过外部 `div` 的固定高度,外部 `div` ...

    DIV CSS:网页一行两列背景自适应

    【网页一行两列背景自适应】的实现是一个经典的CSS布局挑战。在网页设计中,有时候我们需要将页面主体分为左右两栏,每栏拥有不同的背景颜色,同时要求这两栏的背景高度能够随着各自内容的多少自动调整,保持一致。...

    案例6:DIV+CSS样式页面布局(重要).rar

    `DIV`元素本身无特定含义,但可以通过CSS赋予其不同的样式属性,如宽度、高度、颜色、边距等。它能帮助组织网页内容,创建模块化的设计,使页面结构清晰,便于维护和调整。在实际布局中,`DIV`通常与其他元素配合...

    div+css 不错的学习实例

    3. **浮动与定位**:浮动(float)常用于创建多列布局,但可能导致父元素高度塌陷的问题;相对定位(position: relative)和绝对定位(position: absolute)可以实现元素的精确位置控制,但需注意层叠上下文。 4. *...

    css和div学习步骤

    2. 解决问题:尝试解决实际开发中遇到的布局和样式问题,提升解决问题的能力。 七、持续学习与进阶 1. 预处理器:了解Sass、Less等CSS预处理器,提高代码复用性和可维护性。 2. CSS动画与过渡:学习如何创建动态...

    CSS+DIV实例

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

    DIV+CSS相对IE6、IE7和IE8的兼容问题

    标题和描述均提到了“DIV+CSS相对IE6、IE7和IE8的兼容问题”,这揭示了在Web开发中,尤其是针对老旧浏览器如IE6、IE7和IE8进行CSS布局时,开发者可能遇到的一系列挑战。这些浏览器在解析CSS规则时存在独特的行为,...

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

    【CSS浏览器兼容问题详解】 ...综上所述,解决CSS在不同浏览器间的兼容性问题,需要深入理解各种浏览器对CSS规范的实现差异,并利用适当的技巧和工作原理进行调整。不断学习和实践,才能更好地应对各种兼容性挑战。

    CSS+DIV常用方法说明

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

    div css 网站布局实录

    在网页设计领域,Div+CSS是构建网页布局的主流技术之一。Div(Division)是HTML中的一个块级元素,常用于组织和分隔页面内容,而CSS(Cascading Style Sheets)则是用来控制网页样式和布局的重要工具。本篇文章将...

    css+div LAMP兄弟连

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

Global site tag (gtag.js) - Google Analytics