overflow解决float浮动后高度自适应问题

也许你在做网页的时候发现,发一个区块内的元素被应用了float之后,那么整个box的高度对就不以被浮动对象的高度为标准了。
如图中的城市导航内的城市列表中采用了float之后,那个外框的高度并不是内容元素的高度:

怎么解决这个问题呢?经发现可以采用overflow来解决!方法是在父元素加上如下代码即可

overflow:auto; zoom:1;

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

 1  1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
 2  2 <html xmlns="http://www.w3.org/1999/xhtml">
 3  3 <head>
 4  4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 5  5 <title>float浮动之后的问题</title>
 6  6 <style>
 7  7 * { padding:0; margin:0;}
 8  8 body { font-size:12px; line-height:150%;}
 9  9 ul { list-style:none;}
10 10 .container { width:700px; margin:0 auto;}
11 11 .header, .footer { height:60px; background:#99CC66; margin-bottom:6px; font-size:18px; font-weight:bold;}
12 12 .main {}
13 13 .left { float:left; width:200px;}
14 14 .sidepanel { border:1px solid #CC6600; margin-bottom:8px;}
15 15 .sidepanel h2 { font-size:12px; background:#CC6600; height:24px; line-height:24px; text-indent:20px; color:#fff;}
16 16 .city { padding:6px 0px; overflow:auto; zoom:1;}
17 17 .city li { float:left; width:35px; text-align:center;}
18 18 .right { margin-left:200px; background:#CCCC66; height:240px;}
19 19 .hotinfo {padding:6px;}
20 20 .clearfloat {clear:both;height:0;font-size: 1px;line-height: 0px;}
21 21 </style>
22 22 </head>
23 23
24 24 <body>
25 25 <div class="container">
26 26   <div class="header">header</div>
27 27   <div class="main">
28 28     <div class="left">
29 29       <div class="sidepanel">
30 30         <h2>城市导航</h2>
31 31         <ul class="city">
32 32           <li>北京</li>
33 33           <li>上海</li>
34 34           <li>天津</li>
35 35           <li>南京</li>
36 36           <li>广州</li>
37 37           <li>重庆</li>
38 38           <li>济南</li>
39 39           <li>杭州</li>
40 40           <li>郑州</li>
41 41           <li>北京</li>
42 42           <li>上海</li>
43 43           <li>天津</li>
44 44           <li>南京</li>
45 45           <li>广州</li>
46 46           <li>重庆</li>
47 47           <li>济南</li>
48 48           <li>杭州</li>
49 49           <li>郑州</li>
50 50         </ul>
51 51       </div>
52 52       <div class="sidepanel">
53 53         <h2>热门文章</h2>
54 54         <ul class="hotinfo">
55 55           <li>本月20日起入境日本须留指纹</li>
56 56           <li>本月20日起入境日本须留指纹</li>
57 57           <li>本月20日起入境日本须留<font color="#43FF73">指纹</font></li>
58 58           <li>本月20日起入境日本须留指纹</li>
59 59           <li>本月20日起入境日本须留指纹</li>
60 60           <li>本月20日起入境日本须留指纹</li>
61 61           <li>本月20日起入境日本须留指纹</li>
62 62           <li>本月20日起入境日本须留指纹</li>
63 63           <li>本月20日起入境日本须留指纹</li>
64 64         </ul>
65 65       </div>
66 66     </div>
67 67     <div class="right">右侧内容</div>
68 68   </div>
69 69   <br class="clearfloat" /><!-- 用于清除浮动的元素 -->
70 70   <div class="footer">footer</div>
71 71 </div>
72 72 </body>
73 73 </html>

overflow在w3c的解释:http://www.w3school.com.cn/cssref/pr_pos_overflow.asp

overflow解决float浮动后高度自适应问题,布布扣,bubuko.com

时间: 2024-10-05 23:38:18

overflow解决float浮动后高度自适应问题的相关文章

[装载]float元素浮动后高度不一致导致错位的解决办方法

原文出处:float元素浮动后高度不一致导致错位的解决办方法 给换行后的第一个li添加clear:left 如: ul li{float:left;width:160px;} .c{clear:left;} <li>1</li> <li>2</li> <li>3</li> <li class="c">4</li> <li>5</li> <li>6</

解决float浮动带来的父元素高度没有的问题---清除浮动

float的特性 : 1:使元素block块级化: 2:破坏性造成的紧密排列特性. 基于以上的特性,使得我们通常把浮动用来布局,带来的问题是,容易出问题,重用性不行,ie6-的版本下很多问题,因为它是要求固定的宽度,宽度计算错误就会带来整个布局的错乱. float属性出现的初衷是为了让文字环绕图片实现图文混排的效果和应用于流体布局,所以float浮动带来的父元素高度没有的问题并不是我们说的是一个  BUG,这本身就是float的特性. 以下是解决float浮动带来的父元素高度没有的问题 测试为I

瀑布流,并且解决定位和容器高度自适应问题,随意放哪都可以用。

css: #main{ width:956px; height: auto; margin: 10px auto 0px auto; border:2px solid #ccc; float:left; position:relative; } #main .pin{ width:220px; height:auto; padding:15px 0px 0px 15px; float:left; } #main .pin .box{ width:203px; height:auto; paddi

float浮动造成高度塌陷的解决办法

Float是我们在页面布局中常用的,也是非常重要的一个属性,可以让页面布局变得更加灵活. 但是在继续学习之后,尤其是掌握了宽高自适应之后,我们常常会发现一个奇怪的现象:如果父元素没有设置高度,而子元素都浮动了的话,父元素就“瘪”了. 就像下面这样 <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css">

CSS float 父元素高度自适应

<html> <head><title></title><style type="text/css">*{margin:0 ;padding:0;}.content{border:1px solid red;}.fl{float:left}</style></head> <body> <div class="content"> <div class=&q

解决Iframe跨域高度自适应,利用window.postMessage()实现跨域消息传递页面高度(JavaScript)

在iframe跨域引用高度自适应这块写的js方式都试了不管用,最终使用的是window.postMessage() 跨域获取高度 传递信息 1.首先,在主页面上使用iframe引入子页面:也就是A.html页面引入B.html页面,下面看看A.html <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head>

float元素浮动后高度不一致导致错位的解决办方法

换行开始的第一个元素clear:left;即可 例如  四列时应该时第5个,9个...加clear:left; .row .col-lg-3:nth-child(4n+1),.row .col-md-3:nth-child(4n+1){     clear:left;} 4n+1 选择一行4列时下一行第一个元素 原文地址:https://www.cnblogs.com/djiz/p/9356323.html

float浮动后,父级元素高度塌陷和遮盖问题

当子元素不浮动的时候,父元素的高度是由子元素撑起来的. 子元素A和B是两个div,独占一行 效果如图: 当子元素B浮动起来之后,父元素高度塌陷到只剩子元素A的高度 效果如图: 当给子元素A(div)设置CSS属性:display:inline 后,A的宽高将不起作用,宽高由内容撑开,即被字母A撑开.此时父级元素高度没有塌陷到和A一样,而是和B的高度一样 效果如图: 当子元素A和B同时浮动起来之后,A的CSS属性:display:inline失效,效果为float的效果,同时父级元素的高度彻底塌陷

解决float浮动定位时父元素的高度为0的情况

首先我想实现这样一个效果: 我设置一个<div class="content"></div>背景为黄色,然后在其中设置两个div分别为<div class="left"></div> ,<div class="right"></div>分别设置左浮动,背景颜色蓝色和右浮动背景颜色红色代码如下: <!DOCTYPE html><html><head