KHL 002 11-電腦-本職-前台 盒模型,khl11-

來源:互聯網
上載者:User

KHL 002 11-電腦-本職-前台 盒模型,khl11-
 CSS 盒模型

CSS中的盒模型

  • inline

  • inline-block

  • block

  • table

  • absolute position

  • float

盒子3D模型

 

 

可以看出: 
其中 padding 、content 、background-image 、background-color 四者構成Z軸;border與margin、padding三者之間應該是平面上的並級關係,並不能構成Z國的層疊關係。

重設盒模型解析模型
  • W3C的標準盒模型

外盒尺寸計算(元素空間尺寸) 
element 空間高度 = 內容高度 + 內距 + 邊框 + 外距 
element 空間寬度 = 內容寬度 + 內距 + 邊框 + 外距

內盒尺寸計算(元素大小) 
element 空間高度 = 內容高度 + 內距 + 邊框(height為內容高度) 
element 空間寬度 = 內容寬度 + 內距 + 邊框(width為內容高度)

  • ID傳統下盒模型(IE6以下,不包括IE6版本或QuirksMode下IE5.5+)

外盒尺寸計算(元素空間尺寸) 
element 空間高度 = 內容高度 + 外距(height為內容高度) 
element 空間高度 = 內容高度 + 外距(width為內容高度)

內盒尺寸計算(元素大小) 
element 空間高度 = 內容高度 +(height包含了元素內容寬度、邊框、內距) 
element 空間寬度 = 內容寬度 +(width包含了元素內容寬度、邊框、內距)

目前瀏覽器大部分元素都是基於W3C標準的盒模型,但是對於form中部分元素還基於傳統的盒模型,如input中的submit、reset、button和select等元素,這樣如果給其設定border和padding它們也只會往元素盒內延伸。

CSS3盒模型屬性box-sizing屬性的文法及參數
  • centent-box : 預設值,讓元素維持W3C的標準盒模型

  • border-box : 此值會重新定義CSS2.1中盒模型組成的模式,讓元素維持IE傳統的盒模型

  • inherit :此值使元素繼承父元素的盒模型模式

box-sizing 使用
<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>KHL 作品 電腦 知識管理系統 小試 部落格系統</title>    <link rel="stylesheet" type="text/css" href="../assets/css/reset.css" />    <link rel="stylesheet" type="text/css" href="../assets/css/base.css" />    <link rel="stylesheet" type="text/css" href="../assets/css/index.css" /></head><body><!-- header --><div id="header" class="clearfix">    head</div><!-- /header --><!-- seacher --><div id="seacher"></div><!-- /seacher --><!-- body --><div id="body-container">    <!-- body left -->    <div id="left-container">        left    </div>    <!-- /body left -->    <!-- body right -->    <div id="right-container">        right    </div>    <!-- /body right --></div><!-- body --><!-- footer --><div id="footer" class="clearfix">    footer</div><!-- /footer --><script type="text/javascript" src="../assets/jquery/jquery.min.js"></script><script type="text/javascript">    $(function () {        console.log('jc four!');    });</script></body></html>

 

 

 1 #header{ 2     width: 100%; 3     height: 50px; 4     background-color: #48525E; 5 } 6  7 #seacher{ 8     width: 100%; 9     height: 70px;10     background-image: url("../image/seacher-bg.jpg");11 }12 13 #body-container{14     width: 1200px;15     margin: 0 auto;16 }17 18 #left-container{19     box-sizing: border-box;20     float: left;21     width: 900px;22     height: 400px;23     background-color: #ffffff;24     padding-left: 20px;25     padding-right: 20px;26     padding-top: 20px;27 }28 29 #right-container{30     float: right;31     width: 280px;32     height: 400px;33     padding-top: 20px;34 }35 36 #footer{37     width: 100%;38     height: 120px;39     background-color: #48525E;40 }

 

 

 

 如果此時給left-container添加20px的內邊距,則顯示如下:

 

 

對於這種情況,可以把#left-containerbox-sizing設定為border-box,這樣就不必再修改寬度或者再內嵌div了

 

 1 #left-container{ 2     box-sizing: border-box; 3     float: left; 4     width: 900px; 5     height: 400px; 6     background-color: #ffffff; 7     padding-left: 20px; 8     padding-right: 20px; 9     padding-top: 20px;10 }11 12 #right-container{13     float: right;14     width: 280px;15     height: 400px;16     padding-top: 20px;17 }

 

 

 

 

可以看到left地區已經有了20px的內邊距,且布局並沒有打亂。

overflow屬性

此屬性用於指定如何顯示盒中容納不下的內容

overflow-x/overflow-y

  • visible : 預設值,不剪下容器中的任何內容、不添加捲軸,元素被剪下為包含對象的視窗大小,且clip屬性設定將失效

  • auto : 在需要時剪下內容並添加捲軸

  • hidden : 內容溢出容器時,所有內容被隱藏且不顯示捲軸

  • scroll : 不論內容是否溢出容器,overflow-x都會顯示捲軸,而overflow-y會顯示縱向捲軸

  • no-display : 當內容溢出容器時不顯示元素,此時類似於添加了display:none聲明

  • no-content : 當內容溢出時不顯示內容,此時類似於添加了visibility:hidden聲明

resize 屬性
  • none : 使用者不能拖動元素修改尺寸大小

  • both : 可以拖動元素同時修改元素的寬度和高度

  • horizontal : 可修改寬度

  • vertical : 可修改高度

  • inherit : 繼承父元素的resize屬性值

outline

outline主要是用來在元素周圍繪製一條輪廓線,可以直到突出元素的作用。CSS3中對outline作了一定的擴充

  • outline-color : 定義輪廓線的顏色,預設值為黑色

  • outline-style : 定義輪廓線的樣式,預設為none

  • outline-width : 定義輪廓線的寬度,預設參數為:medium,表示繪製中等寬度的輪廓線

  • outline-offset : 定義輪廓線的位移位置的數值,此值可取負數值。為正數時向外偏離,為負數時表示向內位移

  • inherit : 元素繼承父元素的outline效果

與boeder對比

  • boeder屬性盒模型的一部分,直接影響盒子的大小,outline不影響

  • outline的各邊都一樣,不能單獨設定

  • outline可能是非矩形的,如果元素是多行,外輪廓線就至少是能夠包含該元素所有框的外輪廓。

  • border只能向外擴充,outline可以向內擴充

 

 

 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4     <meta charset="UTF-8"> 5     <title>KHL 作品 電腦 知識管理系統 小試 部落格系統</title> 6  7     <style type="text/css"> 8  9         .bar{10             width: 100%;11             height: 50px;12             overflow: hidden;13         }14 15         #one{16             width: 200px;17             height: 35px;18             border: 1px solid red;19             line-height: 35px;20             text-align: center;21             margin: 0 auto;22             outline: 10px solid #ccc;23 24         }25 26         #two{27             width: 200px;28             height: 35px;29             border: 1px solid red;30             line-height: 35px;31             text-align: center;32             margin: 0 auto;33             outline: 10px solid #ccc;34             outline-offset: 5px;35         }36 37         #three{38             width: 200px;39             height: 35px;40             border: 1px solid red;41             line-height: 35px;42             text-align: center;43             margin: 0 auto;44             outline: 10px solid #ccc;45             outline-offset: -5px;46         }47     </style>48 49 50 </head>51 <body>52     <div id="one"></div>53 54     <div class="bar"></div>55 56     <div id="two">outline效果</div>57 58     <div class="bar"></div>59 60     <div id="three">outline效果</div>61 62 </body>63 </html>

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.