Firefox与IE下UL预设标记的异同

开发 前端
列表UL或是OL中都有一个预设标记,这个标记可能是实点圆点,也可能是数字。在实际的应用中,IE与Firefox会有所不同。

列表UL或是OL中都有一个预设标记,这个标记可能是实点圆点,也可能是数字。在实际的应用中,我们需要去掉这个预设标记,但我们不清楚这个预设标记是存在于什么位置。因为IE与Firefox似乎在处理UL的预设标记时都有着不同的方式:我们来写一个UL的HTML代码结构:

51CTO推荐阅读:Firefox和IE之间7个JavaScript差异

HTML结构:

  1. <ul>   
  2. <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  3. <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  4. <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  5. <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  6. <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  7. </ul>  

运行代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.  <meta http-equiv="Content-Language" content="zh-CN" /> 
  6.  <title>Firefox与IE下UL预设标记的异同</title> 
  7. </head> 
  8. <body> 
  9. <ul>   
  10.  <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  11.  <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  12.  <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  13.  <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  14.  <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  15. </ul>   
  16. </body> 
  17. </html> 

这个UL在不同的浏览器中的显示基本上是差不多的。那么我们设定一下CSS试着看一下IE与Firefox什么地方不一样:

CSS代码:

  1. ul {background:#ddd; padding:0; }
  2.   

运行代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.  <meta http-equiv="Content-Language" content="zh-CN" /> 
  6.  <title>Firefox与IE下UL预设标记的异同</title> 
  7.  <style type="text/css"> 
  8.  /*<![CDATA[*/  
  9.   ul {background:#ddd; padding:0; }   
  10.  /*]]>*/  
  11.  </style> 
  12. </head> 
  13. <body> 
  14. <ul>   
  15.  <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  16.  <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  17.  <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  18.  <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  19.  <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  20. </ul>   
  21. </body> 
  22. </html> 

现在只把padding的值设为0,这时我们看一下IE中除了多个背景之外并没有什么变化,但是FF中的预设标记不见了!这里要注意的是IE中的预设标记是在背景外的。我们再来换个方式来设置:

CSS代码:

  1. ul {background:#ddd; margin:0; }
  2.   

运行代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.  <meta http-equiv="Content-Language" content="zh-CN" /> 
  6.  <title>Firefox与IE下UL预设标记的异同</title> 
  7.  <style type="text/css"> 
  8.  /*<![CDATA[*/  
  9.   ul {background:#ddd; margin:0; }   
  10.  /*]]>*/  
  11.  </style> 
  12. </head> 
  13. <body> 
  14. <ul>   
  15.  <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  16.  <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  17.  <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  18.  <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  19.  <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  20. </ul>   
  21. </body> 
  22. </html> 

这里我们再看,情况相反,IE的预设标记不见了,而FF中的预设标记还在,这里要注意的是这时Firefox中的预设标记是在背景里的。当然我们这里有点不理解了,到底这是为什么呢?这个预设标记究竟是在什么地方的呢?下面我们通过一个实例来看一下UL的预设标记是在什么地方的!

HTML结构:

  1. <ul>   
  2. <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  3. <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  4. <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  5. <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  6. <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  7. </ul>  

CSS代码:

  1. ul {background:#ddd; padding:100px; margin:100px; border:100px solid #eee; }   
  2. li {background:#aaa;}  

运行代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.  <meta http-equiv="Content-Language" content="zh-CN" /> 
  6.  <title>Firefox与IE下UL预设标记的异同</title> 
  7.  <style type="text/css"> 
  8.  /*<![CDATA[*/  
  9.   ul {background:#ddd; padding:100px; margin:100px; border:100px solid #eee; }   
  10.   li {background:#aaa;}  
  11.  /*]]>*/  
  12.  </style> 
  13. </head> 
  14. <body> 
  15. <ul>   
  16.  <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  17.  <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  18.  <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  19.  <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  20.  <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  21. </ul>   
  22. </body> 
  23. </html> 

这时我们看到,margin区域是最外围的白色部分,往里有点灰色的是border,再往里是更深一点的灰色,这个区域是padding,最深的区域是内容区。而预设标记正处在padding的区域,那么是不是说把padding区去掉这个预设标记就会消失呢?我们把CSS做一下修改:

CSS代码:

  1. ul {background:#ddd; padding:0; margin:100px; border:100px solid #eee; }   
  2. li {background:#aaa;}  

运行代码:

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
  2. <html xmlns="http://www.w3.org/1999/xhtml"> 
  3. <head> 
  4.  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
  5.  <meta http-equiv="Content-Language" content="zh-CN" /> 
  6.  <title>Firefox与IE下UL预设标记的异同</title> 
  7.  <style type="text/css"> 
  8.  /*<![CDATA[*/  
  9.   ul {background:#ddd; padding:0; margin:100px; border:100px solid #eee; }   
  10.   li {background:#aaa;}   
  11.  /*]]>*/  
  12.  </style> 
  13. </head> 
  14. <body> 
  15. <ul>   
  16.  <li>建设部通报八起房地产交易违法、违规典型案例 </li>   
  17.  <li>周小川表态引发美元震荡|人民币应成世界货币?</li>   
  18.  <li>首都机场一香港乘客制造炸弹威胁导致航班延误</li>   
  19.  <li>美国房市“麻烦”未了|底特律房子比车子便宜</li>   
  20.  <li>网络报告:美国是黑客大本营 中国是最大受害国</li>   
  21. </ul>   
  22. </body> 
  23. </html> 

我们把padding设为0后发现预设标记依然还在,不过这时他处在了border的上面,那么我们可以根据上面推测出预设标记并不存在于margin,padding或是border中,margin,padding与border只不过为预设标记提供了一个存在并显示的空间。而这个预设标记是浮于margin,padding与border之上的。

那么这时我们大致上可能已经理解了,其实IE与Firefox对于UL的默认值的设定是不一样的,IE给了UL一个margin值,但是却没有给padding值,所以IE中UL的预设标记点是在背景外的。而FF相反给了一个padding值却没有给margin值,所以在Firefox中UL的预设标记点是在背景内的。但是依据上面的实例我们清楚,这个预设标记点不属于paading也不属于margin。他只属于内容部分,他一直是在内容的外边缘,当然我们还可以通过CSS来设置其在内容的内边缘。

通过上面的例子我们清楚了,想要让这个预设标记消失光用margin:0;与padding:0;因为如果出现了border的宽度达到一定的数值时这个预设标记还是会出现的。所以正确的写法是:margin:0; padding:0; list-style:none;虽然预设标记很不错,但是却没办法精确控制,所以在实际应用中并不推荐使用,还是用背景图来代替!

【编辑推荐】

  1. XHTML 代码规范
  2. 语义化HTML结构漫谈
  3. HTML页面如何象ASP一样接受参数 
责任编辑:王晓东 来源: 9host
相关推荐

2010-08-23 16:09:31

IEfirefoxPadding

2010-08-20 14:47:02

IEFirefoxCSS

2010-08-27 15:56:52

IEFirefoxCSS

2010-08-20 13:34:12

IEFirefoxJavascript

2010-08-20 13:02:09

IEFirefox

2010-10-09 12:43:20

JSfirefox

2010-08-24 10:53:49

CSSpaddingIE

2010-08-18 15:41:38

IE6E7Firefox

2009-05-15 09:03:00

Firefox浏览器IE

2010-04-26 10:39:56

IEFirefox安全

2009-06-10 21:55:39

打开JavaScripIEFirefox

2010-09-06 15:06:29

IE6IE7Firefox

2010-08-16 15:15:12

CSSFireFoxIE

2010-08-20 10:12:14

IEFirefox

2010-08-19 13:54:51

FirefoxIECSS

2009-03-15 10:13:56

IEFirefox浏览器

2009-03-07 09:59:16

2009-06-09 21:46:18

JavaScript差IEFirefox

2010-09-16 13:17:31

IE6IE7IE8

2010-08-20 09:33:22

IE6IE7IE8
点赞
收藏

51CTO技术栈公众号