欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

浮动水平居中 有大用

shiping1 的头像
在table内插入div,div设置浮动,在table上设置margin:0 auto; 而table不要设置宽度,因为table默认是宽度最小化的,实现居中的效果会比较好,而且可以无限伸展


方法一:

Html代码  收藏代码
  1. <!DOCTYPE html>  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>页面元素的水平居中</title>  
  6. <style type="text/css">  
  7.     * { margin:0; padding:0; list-style:none; font-size:14px; font-family:Tahoma, Geneva, sans-serif; }  
  8.     .clearfix:after { content:""; height:0; visibility:hidden; display:block; clear:both; }  
  9.     .clearfix { zoom:1; }  
  10.     a{ text-decoration:none;}  
  11.     h1{ text-align:center; padding:10px; font-size:20px; margin:30px 0;}  
  12.     /** 包装器,relative */  
  13.     .wrap { margin:20px auto; padding:10px 0; background:orange; overflow:hidden; position:relative; }  
  14.     /** relative left 50% */  
  15.     .page { float:left; position:relative; left:50%; }  
  16.     /** relative right 50% */  
  17.     .page li { float:left; position:relative; right:50%; overflow:hidden; margin:0 5px; }  
  18.   
  19. </style>  
  20. </head>  
  21. <body>  
  22. <h1>页面元素的水平居中</h1>  
  23. <h2>浮动方式:</h2>  
  24. <div class="wrap clearfix">  
  25.     <ul class="page">  
  26.         <li> <a href="#">上一页</a> </li>  
  27.         <li> <a href="#">1</a> </li>  
  28.         <li> <a href="#">2</a> </li>  
  29.         <li> <a href="#">3</a> </li>  
  30.         <li> <a href="#">4</a> </li>  
  31.         <li> <a href="#">2</a> </li>  
  32.         <li> <a href="#">3</a> </li>  
  33.         <li> <a href="#">2</a> </li>  
  34.         <li> <a href="#">3</a> </li>  
  35.         <li> <a href="#">4</a> </li>  
  36.         <li> <a href="#">5</a> </li>  
  37.         <li> <a href="#">6</a> </li>  
  38.         <li> <a href="#">下一页</a> </li>  
  39.     </ul>  
  40. </div>  
  41.   
  42. </body>  
  43. </html>  

 这里主要用到position:relative配合left:50%的技巧,兼容各浏览器,需要注意的是IE7下需要设置overflow:hidden;来解决无法设置子元素宽度的BUG。

 

方法二:

 

Html代码  收藏代码
  1. <!DOCTYPE html>  
  2. <html xmlns="http://www.w3.org/1999/xhtml">  
  3. <head>  
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  
  5. <title>页面元素的水平居中</title>  
  6. <style type="text/css">  
  7.     * { margin:0; padding:0; list-style:none; font-size:14px; }  
  8.     .clearfix:after { content:""; height:0; visibility:hidden; display:block; clear:both; }  
  9.     .clearfix { zoom:1; }  
  10.     a{ text-decoration:none;}  
  11.     h1{ text-align:center; padding:10px; font-size:20px; margin:30px 0;}  
  12.     .wrap { margin:20px auto; padding:10px 0; background:orange; overflow:hidden; position:relative; }  
  13.     .inwrap{ float:left; position:relative; left:50%;}  
  14.     .page { float:left; position:relative; left:-50%; }  
  15.     .page li { float:left;margin:0 5px;  }  
  16.     .page li a { display:block; padding:2px 9px; background:white; border:1px solid red; float:left;}  
  17. </style>  
  18. </head>  
  19. <body>  
  20. <h1>页面元素的水平居中</h1>  
  21. <h2>浮动方式:</h2>  
  22. <div class="wrap clearfix">  
  23.     <div class="inwrap">  
  24.         <ul class="page">  
  25.             <li> <a href="#">上一页</a> </li>  
  26.             <li> <a href="#">1</a> </li>  
  27.             <li> <a href="#">2</a> </li>  
  28.             <li> <a href="#">3</a> </li>  
  29.             <li> <a href="#">4</a> </li>  
  30.             <li> <a href="#">2</a> </li>  
  31.             <li> <a href="#">3</a> </li>  
  32.             <li> <a href="#">2</a> </li>  
  33.             <li> <a href="#">3</a> </li>  
  34.             <li> <a href="#">4</a> </li>  
  35.             <li> <a href="#">5</a> </li>  
  36.             <li> <a href="#">6</a> </li>  
  37.             <li> <a href="#">下一页</a> </li>  
  38.         </ul>  
  39.     </div>  
  40. </div>  
  41. </body>  
  42. </html>  

 这里也可以多套一层的方式设置left:-50%,更合理,也可以避免一些不必要的IE BUG。举一反三,这种float元素居中的方式其实可以延展应用到很多需要浮动元素又居中的情况。

来自 
http://hc24.iteye.com/blog/2047211


普通分类: