注册 | 登录 | 设为首页 | 加入收藏
您当前的位置:飞翔学院-IT中国 → 编程开发网页制作html → 文章内容

各种浏览器有序列表样式的兼容研究

作者:何为 来源:本站整理 发布时间:2007-11-29 18:41:05

由于各个浏览器对css的解释不同,list-style在各浏览器调试的时候经常会遇到各种各样的问题,我一般习惯在css开头就定义list-style:none;,全部用背景解决,免得麻烦。

最近遇到要做排行榜,一排下来四五十个,做个背景吧,图太大,不好,想想决定用有序列表做,本来这就应该是有序列表ol的任务。可惜,在各个浏览器的调试时遇到n多问题,最大的困扰了我一天的问题就是在ie下面,没有序号,或者有序号,但都是1.,郁闷了,找了好久的资料都没头绪,最后在蓝色看到一个帖子的回复,解决了这个问题。li下面不能有height,定义了height就出现序号全部是1.的情况。

ok,我写了个自认为还算简洁的代码拿出来分享。

<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd";>
<html xmlns="http://www.w3.org/1999/xhtml";>
<head>
<title> 各浏览器有序列表样式兼容研究 </title>
<meta name="keywords" content="有序列表,list-style,css兼容,css hack" />
<meta name="description" content="各浏览器有序列表样式兼容研究" />
<style>
body{font:12px tahoma,sans-serif;color:#000;margin-top:100px;}
*{margin:0;padding:0;}
a:link,a:visited{color:#005FA9;text-decoration:none;}
a:active,a:hover{color:#005FA9;text-decoration:underline;}
.rank{width:300px;margin:0 auto;border:1px solid #CCC;}
h1,li{border-bottom:1px solid #CCC;}
h1{font-size:14px;height:22px;background:#FE4;padding:5px 0 0 15px;}
li{
padding:5px;
list-style-type:decimal;/*样式为数字序号*/
list-style-position:inside;/*样式显示在box内部*/
color:#015B56;}
/*直接定义p的样式减少标签和代码,这里出现了多个浏览器的不兼容,需要hack*/
li p{
float:right;
margin:-15px 5px 0 0;/*适合所有浏览器*/
_margin:-22px 5px 0 0;/*ie6及以下专用*/
#margin:-22px 5px 0 0;/*ie7下专用*/
}
/*以下opera专用*/
@media all and (min-width:0px){
li p{margin-top:1px;padding-right:20px;}
}
</style>
</head>
<body>
<div class="rank">
    <h1>有序列表 - 序号测试</h1>
    <ol>
    <li><a href="#">有序列表</a><p>88888</p></li>
    <li><a href="#">css兼容</a><p>77777</p></li>
    <li><a href="#">css hack</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>77777</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    <li><a href="#">明天会更好</a><p>6666</p></li>
    </ol>
</div>
</body>
</html>

稍作分析:

1、li不能有height,有了height,ie下序号就出不来了。
2、对于积分居右的处理,运用了最少的p标签,由于各个浏览器的问题,只能写相应的hack。没有用!important是因为ie7和firefox都识别,这样会出问题。

  • 打印文档
  • 推荐好友
  • 返回顶部
  • 增大字体
  • 减少字体
关于本站 | 工作机会 | 合作网站 | 广告服务 | 市场合作| 联系我们 | 抽奖活动
版权所有: 武汉威俊科技有限公司 Copyright 2005-2007 www.ITCNW.COM All rights reserved