ol, ul { padding-left:40px; }: h; t5 s+ b Z) {
而ie的默认样式是:
& V; k2 a' Y# X5 V8 l0 ]$ I' bol, ul { margin-left:30pt; }
- c7 _ {3 D4 `5 ]opera 8或者以前的版本是否和ie一样?有兴趣的同志可以自行测试。
. x: w1 G2 T. d2 P但这至少说明一点,除了微软之外的浏览器厂商都达成一致意见,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到外面的部分。$ e3 n# E) \4 j4 C
css code复制内容到剪贴板
9 F8 K- \) u9 v+ u8 E<style>
( _8 W k2 d! A4 C# S& v# I% iol { background:green; }
7 W& I! j4 ?/ C. H: Lol#mylist2 { zoom:1; }
$ v( l% y; @# r</style>+ j* Y) e3 q8 N! V" r* a4 ^
<ol id=mylist1>
( U. N9 Y1 {4 ]1 C: W; b<li>first item...</li>
$ h7 G4 Z1 |! Q9 I<li>second item...</li>
" A5 N8 h3 R! A$ C<li>third item...</li>8 q+ m( i/ `; l
</ol>( `$ U( x! ?( V2 S' g7 d
<ol id=mylist2>
- Q0 m" t3 }- p. R5 t<li>first item...</li>" @, E( ~7 ]; p" G% o7 c# D! g
<li>second item...</li> }( ?8 z, }# r C% ?2 \3 s
<li>third item...</li>
) w0 ]+ u9 U( y' Y( b. B</ol>
: y6 p- w: }4 h所以,比较好的方法就是给所有网页统一list的margin和padding,比如:- T# J8 ^6 X4 V
ol, ul { margin-left:0; padding-left:40px; }
! r8 O8 B* }* I! Y+ H或者也可以只针对ie进行修复:' Y- ?" z3 K; B: F3 w
ol, ul { _margin-left:0; _padding-left:40px; }
- }( d k x5 ~7 {下面是其他网友的补充:; f& a; u) m. O. [) c$ C
ul标签的padding与margin默认值 40px2 _ j' I$ q" w$ X5 l8 x
ul标签的padding与margin默认值% U4 o6 v5 g8 i9 y i4 I
ul标签在ff中默认只有padding值(即:padding-left:40px),而在ie中只默认有margin值(即:margin-left:40px),所以先定义 ul{margin:0;padding:0;}就能解决大部分问题。+ [/ ^. H8 M& D( D0 C6 U- H
一般都在总样式规定一下: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 k U9 V7 l8 l" `) e: [( D% E! ?3 @8 |6 l+ U* \
更多网页制作信息请查看: 网页制作 |
|