成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CSS規范:你真的了解盒模型嗎?

開發 前端
什么是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標準必備小結

圖例

上面的大框,代表一個元素生成的矩形區域,也就是 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> 

示意圖:

示意圖

#p#

margin

'margin' 是 'margin-top', 'margin-right', 'margin-bottom', 'margin-left' 的簡寫,表明 margin 的大小范圍。它的值可以是寬度值、百分比值或‘auto’這3者之一,注意:寬度值必須帶有單位。

margin簡寫

1. 以上、右、下、左的順序給以上四個值賦值。

  1. CSS codemargin: 1px 2px 3px 4px;
  2.  

等價于:

  1. CSS codemargin-top: 1px  
  2. margin-right: 2px  
  3. margin-bottom: 3px  
  4. margin-left: 4px 
  5.  

記住,從上面開始,順時針旋轉一圈。

2. 以上下、左右的順序賦值

  1. CSS codemargin: 1px 2px;
  2.  

那么相當于:

  1. CSS codemargin-top: 1px  
  2. margin-right: 2px  
  3. margin-bottom: 1px  
  4. margin-left: 2px
  5.  

這種賦值方式,適合下面講到的 *-top,*-right,*-bottom,*-left的簡寫的賦值,如padding,border-width,border-color等,下面不再說明。

可以應用在什么元素上

非table類型的元素,以及table類型中table-caption, table 和inline-table這3類。例如 TD TR TH等,margin是不適用的。

什么時候無效

對于行內非替換元素(例如 SPAN),垂直方向的margin不起作用。例如:

  1. <div style="border:1px solid red;"> 
  2. <span style="margin:100px; background:gray;">ddd</span> 
  3. </div> 
  4.  

可以看到,DIV 的上下 border 緊貼著灰色的SPAN元素。

margin折疊

垂直方向上的不同元素的相鄰的margin在某些情況下,會發生折疊的現象。比如,兩個 div ,上下相鄰,上面 DIV 的margin-bottom 會和 下面 DIV 的 margin-top 產生折疊的現象,兩個重疊成一個,具體寬度取較大的。例如:

  1. <div style="background-color:green; width:100px; height:100px;margin-bottom:100px;"> 
  2. </div> 
  3. <div style="background-color:red; width:100px; height:100px; margin-top:50px;"> 
  4. </div> 
  5.  

上下兩個DIV最終相距100px,而不是150px。

#p#

padding

padding是 'padding-top', 'padding-right', 'padding-bottom', 'padding-left'的縮寫。賦值的方法跟margin相同,只是沒有 ‘auto’ 值。默認值是0。

它可以應用到的元素

除display值是 ‘table-row-group’, ‘table-header-group’, ‘table-footer-group’, ‘table-row’, ‘table-column-group’ 和 ’table-column’ 的所有元素。

border

border是個比較復雜的東西。它是'border- top', 'border-right', 'border-bottom', 'border-left'。千萬別認為它跟前面的padding還有 margin一樣只是設置width就好了。

border包含3個部分,’border-width’,’border- color’,’border-style’,分別用來設置它的寬度,顏色和樣式。適用于任何元素。

border-width是 'border-top-width', 'border-right-width', 'border-bottom-width', 'border-left-width'。默認值是0。可用值有‘thin’,‘medium’,‘thick’,以及常用的數值帶單位的寬度值。

border-color是'border-top-color', 'border-right-color', 'border-bottom-color', 'border-left-color'的簡寫。默認值是 ‘color’ 特性的值。

border-style是'border-top-style', 'border-right-style', 'border-bottom-style', 'border-left-style'的簡寫。默認值是 none 特性的值。可用值有:’none’,’hidden’,’dotted’,’dashed’,’solid’,’double’,’groove’,’ridge’,’inset’,’outset’,有興趣的可以逐個試試效果。

【編輯推薦】

  1. 揭開外邊距折疊Collapsing margins的面紗
  2. CSS hack:實現IE6、IE7、Firefox兼容
  3. CSS布局:Web標準必備小結 
責任編輯:王曉東 來源: CSDN跨瀏覽器專區
相關推薦

2022-07-26 00:00:22

HTAP系統數據庫

2014-04-17 16:42:03

DevOps

2021-01-15 07:44:21

SQL注入攻擊黑客

2021-11-09 09:48:13

Logging python模塊

2014-11-28 10:31:07

Hybrid APP

2023-03-16 10:49:55

2020-02-27 10:49:26

HTTPS網絡協議TCP

2019-09-16 08:40:42

2012-05-31 09:56:54

云安全

2023-10-24 08:53:24

FutureTas并發編程

2019-11-06 09:52:01

JavaScript單線程非阻塞

2022-03-14 07:53:27

ELTETL大數據

2022-12-12 08:46:11

2015-07-31 10:35:18

實時計算

2017-10-18 22:01:12

2025-01-03 08:09:15

2024-02-02 08:50:20

Node.js元數據自動化

2021-11-26 08:07:16

MySQL SQL 語句數據庫

2022-06-29 10:21:33

3d打印輔助工具

2023-11-01 13:48:00

反射java
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99这里只有精品 | av黄色免费 | 亚洲精品一区二区三区 | 成人精品区 | 91影库 | www.99久久.com | wwww.8888久久爱站网 | 精品一区二区三区在线观看国产 | 黄色一级大片在线免费看产 | 日韩欧美三级在线 | 91免费看片| 久久婷婷国产 | 欧美成人激情 | 欧美一级一 | 亚洲成人精品免费 | 国产精品久久精品 | 免费日韩av网站 | 国产精品国产三级国产aⅴ原创 | 成人av在线播放 | 日韩国产精品一区二区三区 | 亚洲精品视| 成人妇女免费播放久久久 | 范冰冰一级做a爰片久久毛片 | 91久久精品一区二区二区 | 一区二区中文 | 国产成人综合一区二区三区 | 天天操综合网站 | 精品欧美一区二区精品久久久 | 色爱区综合| 国产日韩一区 | 二区不卡 | 国产二区三区 | 日本一区二区三区在线观看 | 麻豆久久久久久久 | 国产精品久久久久久吹潮 | 欧美日韩免费一区二区三区 | 日韩成人免费视频 | 久久99久久99| 激情欧美一区二区三区中文字幕 | 国产精品1区2区3区 男女啪啪高潮无遮挡免费动态 | 日韩成人在线视频 |