ol, ul { padding-left:40px; }/ P3 S2 l! ?- e, {1 M( o- ^
而ie的默认样式是:
. J# C0 B! p( d* aol, ul { margin-left:30pt; }
/ Y/ @! v2 P" ^$ P6 zopera 8或者以前的版本是否和ie一样?有兴趣的同志可以自行测试。
2 s5 N M8 Z- I; y; v但这至少说明一点,除了微软之外的浏览器厂商都达成一致意见,list的缩进应该使用padding来控制。其实这很好理解,缩进的是每一个item而不是整个的list。设计者对list有怎样的期望呢?比如说设置了ul的background:green,多数人应会期待整个ul(即包括了padding的部分)都使用绿色背景色,而不会希望在list的左侧缺失30pt(通常等于40px)。其次,marker部分(就是item之前的小圆点或者数字序号部分)是在li之外的,但从逻辑上说它属于list的一部分,在list之内。而ie使用margin,实际上就导致了marker部分是悬于list之外。实际上,如果list获得了layout(haslayout),你就发现marker不见了!因为在ie臭名昭著的layout模型里,haslayout之后,元素对象会自行处理其所占据区域的呈现,但是无法处理其区域之外。这也是其的width/height实际上类似min-width/min-height的原因,因为它无法绘制overflow到外面的部分。
. b9 Q9 B2 L% K; bcss code复制内容到剪贴板
& K" j5 w u- f) [5 N6 Z<style>% u) y/ b+ x5 B+ {$ e4 R
ol { background:green; }
( e9 `# n& k: ]6 o& Bol#mylist2 { zoom:1; }4 b# h7 {% R- B5 w% Z) G) |+ F! ~
</style>/ X: w/ a% K3 p! h% G
<ol id=mylist1>0 S! `8 B- J) z
<li>first item...</li>+ h$ {& J) D9 L2 E' E2 b. Q
<li>second item...</li>* m& m: X# A+ d7 H2 w
<li>third item...</li>
( `( ?2 U' z9 s) ]; z) ^. C5 K</ol>
) F H: ~4 ?5 W5 L! t' ^<ol id=mylist2>9 a* p7 Y# t: E2 ~1 l
<li>first item...</li>
5 w7 _0 u" J: f' t1 {: k& Q<li>second item...</li>
. @9 w$ y! x0 x# H- P& g<li>third item...</li>
6 T% {& x2 a! M</ol>+ y8 s/ i" ~% ]% B' ?
所以,比较好的方法就是给所有网页统一list的margin和padding,比如:
6 @" B# J* K% Iol, ul { margin-left:0; padding-left:40px; }
$ X% p3 H0 g6 m5 e# u2 Y或者也可以只针对ie进行修复:7 p/ o" w; k# q O
ol, ul { _margin-left:0; _padding-left:40px; }
5 Y! J6 `, B; |$ B3 F0 q% Y下面是其他网友的补充:
' h9 f% G0 T( o( e2 T6 S6 b' e( Pul标签的padding与margin默认值 40px
( k' y" g( a$ a( w" \; Oul标签的padding与margin默认值7 M* `1 v0 J4 R; q2 p
ul标签在ff中默认只有padding值(即:padding-left:40px),而在ie中只默认有margin值(即:margin-left:40px),所以先定义 ul{margin:0;padding:0;}就能解决大部分问题。8 P5 c" H# n8 Z2 O2 N i. M& { W
一般都在总样式规定一下:body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,blockquote,th,td,img {padding:0;margin:0;}
/ V! ~9 U y& B* D2 g% O& ?* c& B" i5 k: @+ X* z9 i _8 F
更多网页制作信息请查看: 网页制作 |
|