我们都知道float在CSS中的作用是使元素脱离正常的文档流并使其移动到其父元素的“最左边”或“最右边”。元素浮动之后,它脱离当前正常的文档流,所以无法撑开其父元素,造成父元素的高度塌陷。如下的代码就是li向左浮动后,ul高度坍陷,所以border就显示为一条线。代码、效果如下:

 <!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>li浮动引起ul高度坍陷的解决方法</title>
<style type="text/css">
*{
margin: 0;
padding:0;
font-size: 14px;
list-style: none;
} ul{
margin: 100px auto;
width: 505px;
border: 1px solid #FC8403;
}
li{
float: left;
}
a{
text-decoration: none;
display: block;
height: 30px;
line-height: 30px;
background-color: #ccc;
width: 100px;
margin-right: 1px;
text-align: center; }
a:hover{
background-color: #f60;
color: #fff;
} .clearfix {
*zoom: 1;
}
.clearfix:before, .clearfix:after {
display: table;
line-height: 0;
content: "";
}
.clearfix:after {
clear: both;
}
</style>
</head>
<body>
<ul>
<li>
<a href="##">首&nbsp&nbsp&nbsp&nbsp页</a>
</li>
<li>
<a href="##">新闻资讯</a>
</li>
<li>
<a href="##">产品展示</a>
</li>
<li>
<a href="##">售后服务</a>
</li>
<li>
<a href="##">联系我们</a>
</li>
</ul>
</body>
</html>

  下面我们就来看一下float浮动因起此问题的几种解决方法:

    1、最直接简单的方法就是给ul加一个高度。

         ul{
margin: 100px auto;
width: 505px;
border: 1px solid #FC8403; height: 30px; /*添加高度,解决float浮动引起的高度坍陷*/
}

    2、在最后一个li后加上一个div,给div加上clear:both的样式。

         <li>
<a href="##">联系我们</a>
</li>
<div style="clear:both;"></div><!--添加一个空div,用clear:both清除浮动造成的影响--> 

    3、给ul加上overflow: hidden;zoom:1;的样式。

         ul{
margin: 100px auto;
width: 505px;
border: 1px solid #FC8403; overflow: hidden;/*添加高度,解决float浮动引起的高度坍陷*/
zoom:;
}

    4、给ul加class="clearfix"的样式。

         .clearfix {
*zoom:;
}
.clearfix:before, .clearfix:after {
display: table;
line-height:;
content: "";
}
.clearfix:after {
clear: both;
}

    以上任意一种方法,都可以解决此问题。

li浮动引起ul高度坍陷的解决方法的更多相关文章

  1. li浮动时ul高度为0,解决ul自适应高度的几种方法

    网址:http://www.gxchina.com/edu/11208.html 1.给ul元素设置高度height最直接的办法是给ul元素设置一个高度,即ul标签添加height属性,代码如下: u ...

  2. 浮动引发的高度塌陷问题及其解决方法(BFC相关概念及性质)

    浮动引发的高度塌陷问题 高度塌陷问题的产生 BFC(Block Formatting Context)的引入 元素开启BFC后的特点 开启BFC的元素不会被其他浮动元素所覆盖 开启BFC的元素不会发生 ...

  3. float过后 高度无法自适应的解决方法

    float过后 高度无法自适应的解决方法: 在float层最外面包一层div即可.

  4. CSS设置浮动导致背景颜色设置无效的解决方法

    float浮动会使父元素高度塌陷,父级元素不能被撑开,所以导致背景颜色不能被撑开 解决方法: 对父元素设置高度 对父元素设置 overflow:hidden清除浮动 把父元素也设置为float浮动 结 ...

  5. 谷歌、火狐浏览器下实现JS跨域iframe高度自适应的完美解决方法,跨域调用JS不再是难题!

    谷歌.火狐浏览器下实现JS跨域iframe高度自适应的解决方法 导读:今天开发的时候遇到个iframe自适应高度的问题,相信大家对这个不陌生,但是一般我们都是在同一个项目使用iframe嵌套页面,这个 ...

  6. 新浪微博 page应用 自适应高度设定 终于找到解决方法

    我做的是PAGE应用,无法自适应高度.找了好久解决方法. 用js 设置父窗口 iframe 也不好用,有的浏览器不兼容. 官方上说发是这样的: 应用动态高度自适应 Iframe高度:开发者可以使Ifr ...

  7. HTML 文档流,设置元素浮动,导致父元素高度无法自适应的解决方法(高度欺骗)

    元素浮动定义 float 属性定义元素在哪个方向浮动.以往这个属性总应用于图像,使文本围绕在图像周围,不过在 CSS 中,任何元素都可以浮动.浮动元素会生成一个块级框,而不论它本身是何种元素. 如果浮 ...

  8. html 关于内部是float元素的外部div高度为0的解决方法!

    最近编写一个页面的时候遇见一个问题,外部div是block的,而内部元素是float的,大家应该都知道float的元素是没有实际高度的,就算你设置了float元素的高度他也不会撑开外部block元素的 ...

  9. IE7下浮动元素的内容自动换行的BUG解决方法

    有时候我们想写个浮动得到这样的效果: 代码: <!doctype html> <html> <head> <meta charset="utf-8& ...

随机推荐

  1. web后台获取不到session中的值(loading sessions from persistent storage),后改用JS传值

    线上的程序似乎从session中取不到domain数据,重启了一下tomcat查看log日志发现,居然有报错.错误信息如下 22-Sep-2016 00:52:16.562 SEVERE [local ...

  2. php跨服务器传递对象

    最近因为研究跨域名,跨服务器的问题,所以无聊,就想到了一个跨服务器传递对象的问题. 想要跨服务器传递数据,那么就要使用到get或者post提交. 我这里的方法有点复杂,但是因为平时工作时,有封装相应的 ...

  3. hdu 1599 find the mincost route

    http://acm.hdu.edu.cn/showproblem.php?pid=1599 floyd找最小环. #include <cstdio> #include <cstri ...

  4. USB 各型插座插头引脚分布

    最近画USB的电路,老是忘记它的引脚排列,每次都要去翻手册,很麻烦,索性整理了一下,以后用着也方便,这些图都来自USB标准上. 注:以下均为插座或插头的前视图,即将插座或插头面向自己. USB A型插 ...

  5. logstash 内置匹配IP

    10.252.142.174 - - [06/Sep/2016:08:41:36 +0800] "GET /api/validate/code/send?mobilePhone=186522 ...

  6. back_insert_iterator和iterator用起来不一样。

    先看代码: #include<iostream> #include<vector> #include<algorithm> #include<iterator ...

  7. SPRING+JNDI+C3P0 in tomcat6

    Tomcat 中Jndi是使用Tomcat自带的连接池,由于客户要求,抛弃Tomcat自带的连接池.使用c3p0 .经过几个小时调试,解决方案如下: 环境:Tomcat 6 下面来看Jndi 与 c3 ...

  8. IOS 退出App

    UIApplication *app = [UIApplication sharedApplication]; [app performSelector:@selector(suspend)]; // ...

  9. JAVA 代理模式(Proxy)

    1.代理模式 代理模式的作用是:为其他对象提供一种代理以控制对这个对象的访问.在某些情况下,一个客户不想或者不能直接引用另一个对象,而代理对象可以在客户端和目标对象之间起到中介的作用. 代理模式一般涉 ...

  10. [转载]Vertica “ERROR: Too many ROS containers exist”

    最近在用Vertica的时候碰到一个问题,Vertica在运行了一段时间后总是出现类似下面的错误 1: java.sql.SQLException: [Vertica][VJDBC](5065) 2: ...