问题:FF中把UL下的LI设为左浮动UL的背景色就没有了?

因为容器的子元素设置浮动后, 内容移出了文档流! 

解决办法: 1.给个overflow:hidden;作为闭合浮动元素2.设定UL 一个固定的高度

下面是一些与之相关的解决办法,参考文章《那些年一起清除过的浮动》<style type="text/css">
.warp{
    width:80%;
    border:1px solid #000000;
}
.main{
    width:70%;
    height:300px;
    background-color:#999933;
    float:left;
}
.side{
    width:22%;
    height:300px;
    background-color:#66CC33;
    float:right;
}
#footer{
    width:80%;
    height:80px;
    background-color:#0000FF;
}
</style>
</head>

<body>
<div class="warp">
<h2>1)添加额外标签</h2>
<div class="main">main</div>
<div class="side">side</div>
<div style="clear:both;"></div>
</div>
<div id="footer"></div>
</body>

没有添加红色代码前:

添加红色代码后:

2:<br clear="all"/>

在红色代码处放上如上代码,效果一样

br 有 clear=“all | left | right | none” 属性

3:父元素设置overflow:hidden;(在IE6中还需要触发 hasLayout ,例如 zoom:1)

<body>
<div class="warp" style="overflow:hidden;*zoom:1;">
<h2>3)父元素设置overflow</h2>
<div class="main">main</div>
<div class="side">side</div>
</div>
<div id="footer"></div>
</body>

其余代码如第一个例子,效果都一样

缺点:内容增多时候容易造成不会自动换行导致内容被隐藏掉,无法显示需要溢出的元素;04年POPO就发现overflow:hidden会导致中键失效

4)父元素设置 overflow:auto 属性

同样IE6需要触发hasLayout

缺点:多个嵌套后,firefox某些情况会造成内容全选;IE中 mouseover 造成宽度改变时会出现最外层模块有滚动条等,firefox早期版本会无故产生focus等

5)父元素也设置浮动

针对上例,让footer清除浮动clear:both;否则

缺点:使得与父元素相邻的元素的布局会受到影响,不可能一直浮动到body,不推荐使用

6)父元素设置display:table

缺点:盒模型属性已经改变,由此造成的一系列问题,得不偿失,不推荐使用

7)使用:after 伪元素

由于IE6-7不支持:after,使用 zoom:1触发 hasLayout

原文全部代码如下:

<style type="text/css">  .clearfix:after {  content: "."; display: block; height: 0; clear: both; visibility: hidden;  }   .clearfix {display: inline-block;}  /* for IE/Mac */   </style> <!--[if IE]> <style type="text/css"> .clearfix {zoom: 1;/* triggers hasLayout */  display: block;/* resets display for IE/Win */} </style>  <![endif]-->  鉴于 IE/Mac的市场占有率极低,我们直接忽略掉,最后精简的代码如下:

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

.clearfix { *zoom:1; }

优点:结构和语义化完全正确,代码量居中

缺点:复用方式不当会造成代码量增加

时间: 2024-09-30 11:33:23

问题:FF中把UL下的LI设为左浮动UL的背景色就没有了?的相关文章

将一个ul下的li转移到另外一个ul里面 【appendTo】

<1> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>将一个ul下的li转移到另外一个ul里面</title> <script src="script/jquery-1.11.0.min.js" type="text/javascript"></script> <script type=&

jquery选择div下的ul下的li下的a

使用jQuery选择器: $("div#div的id ul li a")//选择的是div下 ul下所有li下的所有a标签 $("div#div的id").children("ul:first").children("li:first").find("a");//div下的第一个ul下的第一个li下的a标签 //可以用下标 $("div#div的id").children("u

遍历ul下的li,点击弹出li的索引

首先我们需要一个html结构 <div > <ul> <li>a</li> <li>a</li> <li>a</li> <li>a</li> <li>a</li> </ul> </div> 我们遍历ul 下所有的li 并添加点击事件,一般我们会在for循环里面添加点击事件,但是结果和我们所期盼不一样,那么是为什么呢???? 接下来看看我们的

ul下的li浮动,如何是ul有li的高度

此时ul展示的界面为: ①给ul加上一个样式,display:inline-block; <html> <head> <title>float</title> <style> ul{ display: inline-block; border:1px solid #000; } ul li{ border:1px solid #f00; float:left; } </style> </head> <body>

jqury控制&lt;ul&gt;下的&lt;li&gt;选中效果

这里是引用art-template模板的版本(具体不详说啦) css部分 .wk_res_ul li.active a ,.wk_res_ul li:hover a{    color: #f90 !important;} ---------------------------------------- html部分 <ul class="wk_res_ul fl_ul" style="border-bottom:none" id="subject_

jquery,javascript -设置某一ul下的li下的 a的属性

//javascriptvar ul = document.getElementById('ul); var as = ul.getElementsByTagName('a'); for(var i = 0; i <as.length; i++) { as.item(i).onmouseover = function() { var iframe_con = document.getElementById(pos_content); var src = './content/' + this.i

解决ul下的li换行问题,(父元素div加overflow:scroll没作用的问题)

#left, #right { width: 50%; box-sizing: border-box; min-height: 100%; float: left; overflow: scroll;//必须写} #left ul{ float: left;//必须写 display:flex;//必须写 }#left ul > li { display:inline-block;//必须写 list-style: none; box-sizing: border-box; float: lef

利用js输出ul下li的index索引值

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>打印索引</title> </head> <style type="text/css"> li{background: pink;margin-bottom: 10px;height: 40px;} </style> <body>

query怎么获取ul下的多个li元素的宽度总和

一般情况下,li 的宽度是固定的话, 直接 获取li的数量  *  宽度就可以了 比如: 获取li 的个数: var lis = $('ul li ').length; 如果 li 宽度是  100的话. var UL= lis * 100; ul宽度 = li 个数 * li 的宽度 li 的宽度不是固定的 var sumWidth =0;  $("ul").find("li").each(function(){sumWidth += $(this).witdh(