盒模型(重要)
盒模型
width:內容的寬高
height:內容的高
padding:內邊距
border:邊框
margin:外邊距
盒模型的概念
在CSS中,"box model"這一術語是用來設計和布局時使用,然後在網頁中基本上都會顯示一些方方正正的盒子。我們稱為這種盒子叫盒模型。
盒模型有兩種:標準模型和IE模型。我們在這裏重點講標準模型。
盒模型示意圖
盒模型的屬性
width:內容的寬度
height: 內容的高度
padding:內邊距,邊框到內容的距離
border: 邊框,就是指的盒子的寬度
margin:外邊距,盒子邊框到附近最近盒子的距離
如果讓你做一個寬高402*402的盒子,您如何來設計呢?
答案有上萬種,甚至上一種。
盒模型的計算
如果一個盒子設置了padding,border,width,height,margin(咱們先不要設置margin,margin有坑,後面課程會講解)
盒子的真實寬度=width+2*padding+2*border
盒子的真實寬度=height+2*padding+2*border
那麽在這裏要註意看了。標準盒模型,width不等於盒子真實的寬度。
另外如果要保持盒子真實的寬度,那麽加padding就一定要減width,減padding就一定要加width。真實高度一樣設置。
padding
padding:就是內邊距的意思,它是邊框到內容之間的距離
另外padding的區域是有背景顏色的。並且背景顏色和內容的顏色一樣。也就是說background-color這個屬性將填充所有的border以內的區域
padding的設置
padding有四個方向,分別描述4個方向的padding。
描述的方法有兩種
1、寫小屬性,分別設置不同方向的padding
padding-top: 30px;
padding-right: 30px;
padding-bottom: 30px;
padding-left: 30px;
2、寫綜合屬性,用空格隔開
/* 上 右 下 左 */ padding: 20px 30px 40px 50px ; /* 上 左右 下 */ padding: 20px 30px 40px; /* 上下 左右 */ padding: 20px 30px; /* 上下左右 */ padding: 20px;
一些標簽默認有padding
比如ul標簽,有默認的padding-left值。
那麽我們一般在做站的時候,是要清除頁面標簽中默認的padding和margin。以便於我們更好的去調整元素的位置。
我們現在初學可以使用通配符選擇器
*{
padding:0;
margin:0;
}
But,這種方法效率不高。
所以我們要使用並集選擇器來選中頁面中應有的標簽(不同背,因為有人已經給咱們寫好了這些清除默認的樣式表,reset.css)
https://meyerweb.com/eric/tools/css/reset/
邊框
border:邊框的意思,描述盒子的邊框
邊框有三個要素: 粗細 線性樣式 顏色
border: solid
如果顏色不寫,默認是黑色。如果粗細不寫,不顯示邊框。如果只寫線性樣式,默認的有上下左右 3px的寬度,實體樣式,並且黑色的邊框。
按照3要素來寫border
border-width: 3px;
border-style: solid;
border-color: red;
/*
border-width: 5px 10px;
border-style: solid dotted double dashed;
border-color: red green yellow;
*/
按照方向劃分
border-top-width: 10px;
border-top-color: red;
border-top-style: solid;
border-right-width: 10px;
border-right-color: red;
border-right-style: solid;
border-bottom-width: 10px;
border-bottom-color: red;
border-bottom-style: solid;
border-left-width: 10px;
border-left-color: red;
border-left-style:solid;
上面12條語句,相當於 bordr: 10px solid red;
另外還可以這樣:
border-top: 10px solid red;
border-right: 10px solid red;
border-bottom: 10px solid red;
border-left: 10px solid red;
清除邊框的默認樣式,比如input輸入框
border:none;
border:0;
使用border來制作小三角
/*小三角 箭頭指向下方*/
div{
width: 0;
height: 0;
border-bottom: 20px solid red;
border-left: 20px solid transparent;
border-right: 20px solid transparent;
}
margin
margin:外邊距的意思。表示邊框到最近盒子的距離。(兄弟之間)
/*表示四個方向的外邊距離為20px*/
margin: 20px;
/*表示盒子向下移動了30px*/
margin-top: 30px;
/*表示盒子向右移動了50px*/
margin-left: 50px;
margin-bottom: 100px;
盒模型(重要)