本文章来给各位同学介绍关于css中inline-block代替浮动布局float:left实例介绍,希望此教程对各位同学会有所帮助哦。
基于各位前辈的辛勤劳动,下面得出使用inline-block替换float:left;的最佳方案。
html代码
代码如下
复制代码
<div class="list">
<ul>
<li><img src="images/pic02.jpg" alt="\"></li>
<li><img src="images/pic02.jpg" alt="\"></li>
<li><img src="images/pic02.jpg" alt="\"></li>
<li><img src="images/pic02.jpg" alt="\"></li>
<li><img src="images/pic02.jpg" alt="\"></li>
<li><img src="images/pic02.jpg" alt="\"></li>
</ul>
</div>
css代码(来自taobaoued)
代码如下
复制代码
.list {
font-size:0;/* 所有浏览器 */
*word-spacing:-1px;/* IE6、7 */
}
.list ul li{
font-size: 12px;
letter-spacing: normal;
word-spacing: normal;
vertical-align:top;
display: inline-block;
*display:inline;
*zoom:1;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
/* firefox 中 letter-spacing 会导致脱离普通流的元素水平位移 */
.list{
letter-spacing:-5px;/* Safari 等不支持字体大小为 0 的浏览器, N 根据父级字体调节*/
}
}
最终效果图完美兼容
代码如下
复制代码
<!doctype html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--[if lt ie 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]-->
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<style type="text/css">
li{list-style: none;}
body{padding-bottom:44px;}
.fl{float:left;}
.fr{float:right;}
.header,.footer{background: #EDEDED;}
.header{width:100%; height:32px; line-height:32px; margin-bottom:12px;}
.footer{position:fixed; bottom:0; left:0; width:100%; height:32px; line-height:32px; _position:static; background:#000; opacity:.6; filter:alpha(opacity=60);}
.footer a{color:#fff;}
.footer a:hover{color:#FF6633;}
.header nav,.footer nav{width:980px; margin:0 auto;}
.footer .hd{background:#0099CC; color:#fff; height:32px; padding:0 10px; margin:0 10px; font-weight:bold;}
.footer span,.footer a{float:left;}
/* css start */
.list {
font-size:0;/* 所有浏览器 */
*word-spacing:-1px;/* IE6、7 */
max-width:820px;
margin:0 auto;
}
.list ul{_width:840px; margin-left:-20px;}
.list ul li{
max-width:400px;
height:279px; margin-left:20px;
margin-bottom:20px;
font-size: 12px;
letter-spacing: normal;
word-spacing: normal;
vertical-align:top;
display: inline-block;
*display:inline;
*zoom:1;
}
@media screen and (-webkit-min-device-pixel-ratio:0){
/* firefox 中 letter-spacing 会导致脱离普通流的元素水平位移 */
.list{
letter-spacing:-5px;/* Safari 等不支持字体大小为 0 的浏览器, N 根据父级字体调节*/
}
}
/*css end */
</style>
</head>
<body>
<header class="header">
<nav>
</nav>
</header>
<!-- html start -->
<div class="list">
<ul>
<li><img src="../images/pic01.jpg" alt="\"></li>
<li><img src="../images/pic01.jpg" alt="\"></li>
<li><img src="../images/pic01.jpg" alt="\"></li>
<li><img src="../images/pic01.jpg" alt="\"></li>
<li><img src="../images/pic01.jpg" alt="\"></li>
<li><img src="../images/pic01.jpg" alt=""></li>
</ul>
</div>
</body>
</html>
使用inline-block替换float:left的列表法不是一个hack,而是一个进步。
使用inline-block的时候,要注意在IE7和IE6下用背景替换文字的时候,会出现一个bug,解决方法是用font-size:0; line-height:0;替换text-indent:-9999px;,bug