╋艺 镇╋╋网站网络|程序语言|Flash╋┣◇网站建设&Web语言 → CSS规范:你真的了解盒模型吗?(1)


  共有18992人关注过本帖平板打印复制链接

主题:CSS规范:你真的了解盒模型吗?(1)

美女呀,离线,留言给我吧!
admin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 司令 亲民勋章
等级:管理员 帖子:3027 积分:27515 威望:0 精华:7 注册:2003/12/30 16:34:32
CSS规范:你真的了解盒模型吗?(1)  发帖心情 Post By:2011/1/18 17:19:02 [只看该作者]

    什么是CSS的盒子模式呢?在网页设计中我们常听的属性名是:内容(content)、填充(padding)、边框(border)、边界(margin), CSS盒模式都具备这些属性。

    为了给文档树中的各个元素排版定位(布局),浏览器会根据渲染模型(是讲元素怎么在页面上定位及布局的,包括position和float等等,visual formatting model)为每个元素生成四个嵌套的矩形框,分别称作content box、padding box、border box 和margin box。

    以上说的四种类型是不可分割的,并可能会重合,这就是CSS规范中描述的“盒模型”(box model),也就是以CSS的角度去看一个元素被渲染后的抽象形态。是讲一个元素自身的构成部分,不同于布局:多个元素在页面上的定位。

    51CTO推荐阅读:CSS布局:Web标准必备小结

    <!--EndFragment-->

    图例

    上面的大框,代表一个元素生成的矩形区域,也就是 box,每一个 box 都包括一个 content 区域(元素的内容,如文本,图形等)以及环绕其四周的 padding(元素的内边距,填充部分)、border (元素的边框) 和 margin (元素的外边距) 区域。padding、border 和 margin 区域都包括 top、right、bottom、left 四部分。如图所示(“LM”代表left margin,“RP”代表right padding,“TB”代表top border……)。

    边界

    上述四个区域(content、 padding、border和margin)分别有他们自己的边界,细化来说,每个区域都有top、right、bottom、left四个边界。

    ◆content 边界/内边界

    Content 边界环绕在由该元素的宽和高决定的一个矩形上,这个尺寸通常由该元素渲染后的内容决定。这四个content边界组成的矩形框就是该元素的 content box。

    ◆padding边界

    Padding 边界环绕在该元素的 padding区域的四周,顾名思义,填充背景色,在此范围内有效。如果padding的宽度为0,则padding边界与content边界重合。这四个padding边界组成的矩形框就是该元素的padding box。

    ◆border 边界

    Border 边界环绕在该元素的border区域的四周,如果border的宽度为0,则border边界与padding边界重合。这四个border边界组成的矩形框就是该元素的 border box。

    ◆margin 边界/外边界

    Margin 边界环绕在该元素的margin区域的四周,如果margin的宽度为0,则margin边界与border边界重合。这四个margin边界组成的矩形框就是该元素的 margin box。下面分别说一下各个部分。一个简单的例子,来自 W3C 官方:

    1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> 
    2. <HTML> 
    3. <HEAD> 
    4. <TITLE>Examples of margins, padding, and borders</TITLE> 
    5. <STYLE type="text/css"> 
    6. UL {  
    7. background: yellow;  
    8. margin: 12px 12px 12px 12px;  
    9. padding: 3px 3px 3px 3px;   
    10. /* No borders set */  
    11. }  
    12. LI {  
    13. color: white; /* text color is white */  
    14. background: blue; /* Content, padding will be blue */  
    15. margin: 12px 12px 12px 12px;  
    16. padding: 12px 0px 12px 12px; /* Note 0px padding right */  
    17. list-style: none /* no glyphs before a list item */  
    18. /* No borders set */  
    19. }  
    20. LI.withborder {  
    21. border-style: dashed;  
    22. border-width: medium; /* sets border width on all sides */  
    23. border-color: lime;  
    24. }  
    25. </STYLE> 
    26. </HEAD> 
    27. <BODY> 
    28. <UL> 
    29. <LI>First element of list</LI> 
    30. <LI class="withborder">Second element of list is  
    31. a bit longer to illustrate wrapping.</LI> 
    32. </UL> 
    33. </BODY> 
    34. </HTML> 

    示意图:

    示意图




  
平面设计、网站建设、三维动画、视频制作 联系QQ:114103945  回到顶部