1. 程式人生 > >盒模型(重要)

盒模型(重要)

同方 put res tool 不顯示 元素 -s 上下左右 屬性

盒模型

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;

盒模型(重要)