ol, ul { padding-left:40px; }% ~* g4 c+ I& |- y8 O9 ]
而ie的默认样式是:
. s# ^) K* `, ?+ h1 Bol, ul { margin-left:30pt; }" Y D9 ]2 e- ~& d( o+ I1 g# R/ _: c$ ]0 \
opera 8或者以前的版本是否和ie一样?有兴趣的同志可以自行测试。
- j0 b. Y) G: e# ~8 A. e但这至少说明一点,除了微软之外的浏览器厂商都达成一致意见,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到外面的部分。* ?5 G! a) ?$ y7 X- T
css code复制内容到剪贴板 b3 {' O7 n' C7 n$ Y
<style>
: U; I0 X$ O! i1 {' fol { background:green; }" U D' Q1 E" ~3 j; ^& t6 ~1 O
ol#mylist2 { zoom:1; }
, I* N0 ^ N. o( i. r1 W</style>
5 i% F) Q2 ^. u<ol id=mylist1>
: y6 ]" t0 I7 r& V5 l2 e<li>first item...</li>
4 `2 J5 ^" |& ^0 J<li>second item...</li>$ G3 Q( s8 y( Q
<li>third item...</li>
( c& J) s, m @ k& K/ n/ J, {2 c</ol>
4 h3 X r! ?2 ~1 B; K8 Q<ol id=mylist2>
8 J9 T* f# J2 p1 g. h<li>first item...</li>" m6 R+ z9 d* {$ P* W% l* ]
<li>second item...</li>2 n8 L2 j1 `- }
<li>third item...</li>( H5 r; z+ l: B
</ol>
5 N# m, E! Q6 G+ [所以,比较好的方法就是给所有网页统一list的margin和padding,比如:, d$ |* |5 ~7 s! l' i
ol, ul { margin-left:0; padding-left:40px; }
2 l, ?) t, v0 M' Z: b# i6 S! {或者也可以只针对ie进行修复:
( v( k( O/ U* h/ N- W: ^2 |6 sol, ul { _margin-left:0; _padding-left:40px; }
& l. S' F3 g4 C1 _, s1 o" P, N下面是其他网友的补充:
) f' t' c9 v1 vul标签的padding与margin默认值 40px7 y3 g7 O; B0 j, j, G. ~
ul标签的padding与margin默认值7 \4 {# S" I! @# g
ul标签在ff中默认只有padding值(即:padding-left:40px),而在ie中只默认有margin值(即:margin-left:40px),所以先定义 ul{margin:0;padding:0;}就能解决大部分问题。
2 ~6 m/ T; M, U& [. }/ p) Z一般都在总样式规定一下: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;}4 u" v+ T! B4 f P4 }1 N
: C: S, z; T4 b7 ^, h: Q+ P( T更多网页制作信息请查看: 网页制作 |
|