CSS盒子模型和盒子陰影的理解

在CSS中盒模型是最重要的章節之一,在真正做web前端都會經常用到盒模型,所以初學者必須要掌握盒模型。

所有HTML元素都可以看作一個盒子,在CSS中盒模型這一術語是用來設計和佈局時使用。CSS盒模型本質上是一個盒子,用來封裝它周圍的元素,包括:

內邊距,外邊距,邊框,填充和實際內容。盒模型允許我們在其它元素和周圍元素邊框之間的空間放置元素。看一張圖片可以很好的理解盒模型。


元素內容(content)、 
內邊矩(padding-top、padding-right、padding-bottom、padding-left):內容到邊框的距離。
邊框(border-top、border-right、border-bottom、border-left):可以看成是盒子的厚度。
外邊距(margin-top、margin-right、margin-bottom、margin-left):盒子與盒子或盒子與邊界的距離。

其中padding和margin的賦值都有四中方式,取值是按照順時針方向取值,情況分別是:

padding: 100px; (上下左右內邊距是100px)
padding: 100px 50px;(上下內邊距是100px,左右內邊距都是50px)
padding: 100px 50px 120px;(上邊距100px,左右邊距50px,下邊距120px)
padding: 100px 50px 120px 60px;(上邊距100px,右邊距50px,下邊距120px,左邊距60px)

內邊距、外邊距、邊框的數值根據具體要求設置,如果不設置將會由默認數值代替。如果直接寫一個寬度和高度時,那只是設置了內容區域寬度和高度。
width: 100px;
height: 100px;
border: 10px solid red;
padding: 20px;
margin: 20px;
這個盒子的寬度和高度都是200px。

最終元素的總寬度計算公式是這樣的:總元素的寬度=內容寬度+左內邊距+右內邊距+左邊框+右邊框+左外邊距+右外邊距

元素的總高度最終計算公式是這樣的:總元素的高度=內容高度+上內邊距+下內邊距+上邊框+下邊框+上外邊距+下外邊距

例如10個200*200的盒子:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>盒子</title>
    <style>
        div:first-of-type{width: 100px;height: 100px;border: 10px solid red;padding: 20px;margin: 20px;}
        div:nth-of-type(2){width: 60px;height: 60px;border: 50px solid black;padding: 10px;margin: 10px;}
        div:nth-of-type(3){width: 50px;height: 50px;border: 45px solid orange;padding: 15px;margin: 15px;}
        div:nth-of-type(4){width: 40px;height: 100px;border: 20px solid blue;padding: 5px 20px 5px;margin: 20px;}
        div:nth-of-type(5){width: 100px;height: 80px;border: 10px solid yellow;padding: 20px 10px 10px;margin: 20px;}
        div:nth-of-type(6){width: 160px;height: 160px;border: 10px solid salmon;padding: 10px;margin: 0px;}
        div:nth-of-type(7){width: 160px;height: 160px;border: 10px solid #d330ff;padding: 0px;margin: 10px;}
        div:nth-of-type(8){width: 0px;height: 0px;border: 80px solid #63ff91;padding: 10px;margin: 10px;}
        div:nth-of-type(9){width: 0px;height: 0px;border: 40px solid #19d4ff;padding: 0px;margin: 60px;}
        div:last-of-type{width: 0px;height: 0px;border: 10px solid #08ff0a;padding: 0px;margin: 90px;}
        div{float: left}
    </style>
</head>
<body>
<div></div><div></div><div></div><div></div><div></div>
<div></div><div></div><div></div><div></div><div></div>
</body>
</html>
效果:

盒子陰影標籤:box-shadow:inset x-offset y-offset blur-radius color;

inset:內部陰影,如果不設置會默認outset。

x-offset:陰影在水平方向上的位移,正數代表向右,負數代表向左。

y-offset:陰影在垂直方向上的位移,正數代表向下,負數代表向上。

blur-radius:模糊半徑,只能是正數,數越大越模糊。

color:陰影的顏色。

代碼示例:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div{
            margin: 100px;
        }
        div:first-of-type{
            width: 100px;
            height: 100px;
            border-radius: 30px;
            background-color: yellow;
            box-shadow: 50px 50px 0px #ff4a7c;
        }
        div:last-of-type{
            width: 100px;
            height: 100px;
            border-radius: 30px;
            background-color: yellow;
            box-shadow: 50px 50px 0px #ff4a7c,100px 100px 0px black;
        }
    </style>
</head>
<body>
<div></div>
<div></div>
</body>
</html>
效果:




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章