今天做項目的時候碰到了不固定元素個數,需要水平居中的問題,原來的確定寬度下margin:0 auto等方法木有用了。想起來之前看過display:inline-block的文章,
果斷用這個。
之前很少用這個屬性。。印象里麻煩比較多。。好了不多說了,上代碼。
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>center</title> 6 <style> 7 .content-wrapper{ 8 text-align: center; 9 } 10 11 .content-wrapper ul li{ 12 display: inline-block; 13 border: 1px black solid; 14 } 15 16 17 </style> 18 </head> 19 <body> 20 <div class="content-wrapper"> 21 <ul> 22 <li>hello kitty</li> 23 <li>hello kitty</li> 24 <li>hello kitty</li> 25 </ul> 26 </div> 27 </body> 28 </html>
打開頁面,乍一看居中了!!
等等,好像有點奇怪,出現了空白
一般這個奇奇怪怪的空白都是文本節點元素惹的禍。。換行符喲,不信你把li都弄一行里。。
好,解決方法就是在wrapper中定義font-size:0;對於里面需要定義字體大小的元素再挨個手動定義一遍。。。
然后為了兼容ie6/7需要做點hack處理。。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>center</title> <style> .content-wrapper{ text-align: center; font-size: 0; } .content-wrapper ul li{ display: inline-block; *display: inline; *zoom:1; border: 1px black solid; font-size: 16px; } </style> </head> <body> <div class="content-wrapper"> <ul> <li>hello kitty</li> <li>hello kitty</li> <li>hello kitty</li> </ul> </div> </body> </html>
好了,完成了!li元素可以用后端代碼進行迭代生成了~