网站设计

网站建设中常用的CSS布局技巧

1.若有疑问立刻检测


 

  在犯错时若能对原始代码做简朴检测可以省去良多头痛题目。W3C对于XHTML与CSS 都有检测工具可用,请见 http://validator.w3.org 。请留意,在文件开头的错误,可能由于不当的结构等因素造成更多错误;我们建议先修正一些最显著的错误之后重新检测,这样也许会让错误数目爆减。


 

2.使用浮动功能时记得适当清除指令


 

  浮动是个危险的功能,未必会产生您所期望的结果。假如您碰到浮动元素延伸到外围容器的边框或者其他不正常情况,请先确定您的做法是准确的。请参阅Eric Meyer 在Complex Spiral Consulting Web 网站上的教授教养。


 

3.边界重合时利用padding或border来避免


 

  您可能会为了一点不应该泛起的空间而焦头烂额,或者您需要一点点空间时,怎样都挤不出来。假如您有用到margin,那么很轻易产生边界的重合;Andy Budd在他的网站上解释了可能的做法。


 

4.尝试避免同时对元素指定padding/border以及高度或宽度


 

  Windows版IE常常导致width与height的计算题目。有些方法可以解决此题目,但假如母元素需要指定高度与宽度时,最好能够在母元素之内的子元素套用margin,或者当子元素需要指定高度与宽度时,在母元素套用padding以达效果。


 

5.不要依靠min-width/min-height


 

  Windows版IE并不增援两种语法。但是在某种程度下,windows版IE可以达到相称于min-width/min-height的效果,所以只要对IE做点过滤功能,即可达到您想要的结果。


 

6.若有疑问,先减少百分比


 

  有时候某些错误会使50%+50%成为100.1%,使网页泛起题目。这时请尝试将这些值改为49%,甚至49.9%。


 

7.记住“TRouBLed”写法


 

  Border,margin与padding的简写语法有特定顺序,从上方开始顺时针方向滚动:top,right,bottom,left. 所以margin:0 1px 3px 5px;的结果是上方无边界,右边1像素,以此类推。记住“TRouBLe”,您就不会弄错次序了。


 

8.只要不是零的值,都要指定单位


 

  CSS需要您对每个font,Margin等各种值指定单位。(独一的例外是line-height)


 

9.重置浏览器的字体大小
重置浏览器的默认值 ,然后重设浏览器的字体大小你可以使用雅虎的用户界面重置的CSS方案 ,假如你不想下载9MB的文件,代码如下:
 


 



Java代码 复制代码


  1. body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,form,fieldset,input,textarea,p,   
     
  2. blockquote,th,td {margin:0; padding:0; }   
     
  3. table { border-collapse:collapse; border-spacing:0; }   
     
  4. fieldset,img { border:0; }   
     
  5. address,caption,cite,code,dfn,em,strong,th,var { font-style:normal; font-weight:normal; }   
     
  6. ol,ul { list-style:none; }   
     
  7. caption,th { text-align:left; }   
     
  8. h1,h2,h3,h4,h5,h6 { font-size:100%; font-weight:normal; }   
     
  9. q:before,q:after { content:”; }   
     
  10. abbr,acronym { border:0; }  


 


其次,我们重设浏览器字体的大小为10像素,使用如下:
 


 



Java代码 复制代码


  1. html {font-size: 62.5%;}  


 


这个大小基本合适,然后您可以根据自己的需要调整大小,如 标题1为120像素:
 


 



Java代码 复制代码


  1. h1 {font-size: 2em;}  


 



10.设置水平居中

大多数的网站目前都是固定宽度的。CSS代码如下:
 


 



Java代码 复制代码


  1. div#container {margin: 0 auto;}  


 



11.控制位置:绝对位置,相对位置
如果有两个div
 


 



Java代码 复制代码


  1. <div id='parent'>   
     
  2. <div id='son'></div>   
     
  3. </div>  


 


div有left和top属性,是用来定位的.
假如内层的div的position属性是absolute.那他就是相对于文档的左上角的位置..
假如内层的div(id为son的那个)position属性为relative,那它的left和top值就是相对于外层的div的左上角的间隔.


12.将重要元素放置在屏幕中心

假如你但愿将您想要的东西放在最中心,可以使用以下CSS:
 


 



Java代码 复制代码


  1. div.popup { height:400px; width:500px; position: absolute; top: 50%; left: 50%;}   
     
  2. div.popup { margin-top: -200px; margin-left: -250px;}  


 


您必需明确的指定宽度和高度,再把top和left属性设为他们的一半,这样就可以是这个部门回到屏幕的中央。


13.可以重复利用的规则

 


 



Java代码 复制代码


  1. .left {float: left;}   
     
  2. .right {float: right;}   
     
  3. img .left { border:2px solid #aaaaaa; margin: 0 10px 0 0;}   
     
  4. img .right { border:2px solid #aaaaaa; margin: 0 0 0 10px; padding: 1px;}  




14. 解决IE6 的浮动元素的双倍边距题目
对一个div设置了float:left 和 margin-left:100px 那么在IE6中,这个bug就会泛起。您只需要多设置一个display即可,代码如下:


 



Java代码 复制代码


  1. div {float:left;margin:40px;display:inline;}  


 




15.简朴的导航菜单

在您的设计中预设一个导航栏长短常有益的。可以让别人对你网页的主要内容有一个大致的了解。第一次来的XHTML:
 


 



Java代码 复制代码


  1. <div id=”navbar”>   
     
  2. <ul>   
     
  3. <li><a href=”http://www.peakflowdesign.com”>Peakflow Design</a></li>   
     
  4. <li><a href=”http://www.google.com”">Google</a></li>   
     
  5. <li><a href=”http://zenhabits.net/”>Zen Habits</a></li>   
     
  6. </ul>   
     
  7. </div>  


 


CSS代码:
 


 



Java代码 复制代码


  1. #navbar ul li {display:inline;margin:0 10px 0 0;}   
     
  2. #navbar ul li a {color: #333;display:block;float:left;padding:5px;}   
     
  3. #navbar ul li a:hover {background:#eee;color:black;}  


 


 
16.不使用table的form表单

正如我们现在进行宁波网站设计的table-free,把重点是放在使用DIVs上。不再对表的列和域进行约束,所以我们需要一些好用的CSS,在JeddHowden.com 发现
 


 



Java代码 复制代码


  1. XHTML:   
     
  2. <form action=”form.php” method=”post”>   
     
  3. <fieldset>   
     
  4. <legend>Personal Information</legend>   
     
  5. <div>   
     
  6. <label for=”first_name”>First Name:</label>   
     
  7. <input type=”text” name=”first_name” id=”first_name” size=”10″ value=”" />   
     
  8. </div>   
     
  9. <div>   
     
  10. <label for=”last_name”>Last Name:</label>   
     
  11. <input type=”text” name=”last_name” id=”last_name” size=”10″ value=”" />   
     
  12. </div>   
     
  13. <div>   
     
  14. <label for=”postal”>Zip/Postal Code:</label>   
     
  15. <input type=”text” name=”postal” id=”postal” size=”10″ value=”" />   
     
  16. </div>   
     
  17. </fieldset>   
     
  18. </form>  


 



 


 



Java代码 复制代码


  1. CSS:   
     
  2. form div {clear:left;display:block;width:400px;zoom:1;margin:5px 0 0 0;padding:1px 3px;}   
     
  3. form div label {display:block;float:left;width:130px;padding:3px 5px;margin: 0 0 5px 0;text-align:right;}  


 



17.让footer老是停留在页面的底部

在网页的底部老是留存着公司的版本信息,如何是这部门信息来实现呢?这是一个很古老的技术,这都要归功于The Man in Blue 。
 


 



Java代码 复制代码


  1. XHTML:   
     
  2. <body>   
     
  3. <div id=”nonFooter”>   
     
  4. <div id=”content”> *Place all page content here* </div>   
     
  5. </div>   
     
  6. <div id=”footer”> *Place anything you want in your footer here*   
     
  7. </div>   
     
  8. </body>  


 


 


 



Java代码 复制代码


  1. CSS:   
     
  2. html, body { height: 100%; }   
     
  3. #nonFooter { position: relative; min-height: 100%; }   
     
  4. * html #nonFooter { height: 100%; }   
     
  5. #content { padding-bottom: 9em; }   
     
  6. #footer { position: relative; margin-top: -7.5em; }  


 


18.在统一元素上使用多种类
跟着有用的功能越来越多的,大多数的人都忽略了内部CSS的选择。一个元素可以套用良多的类,例如:
 


 



Java代码 复制代码


  1. .red {color: red;}   
     
  2. .bold {font-weight: strong;}  


 


我们可以运用它:
 


 



Java代码 复制代码


  1. <p class=”red bold”>This text will be red yet also bold!</p>  


发布时间:2010-10-17 10:23:41