日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【html】盒模型div,边框border,内边距padding,外边距margin

發布時間:2024/3/24 编程问答 92 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【html】盒模型div,边框border,内边距padding,外边距margin 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

初識盒模型

要想學習盒模型,首先要知道什么是盒模型。顧名思義,每個div標簽都是一個矩形,像一個盒子,所以HTML頁面布局可以理解為多個盒子嵌套排列而成。

盒模型的組成

盒模型包括:content(內容)、border(邊框)、padding(內邊距)以及margin(外邊距)。

content(內容):顯現圖像和文本內容。

border(邊框):指圍繞在盒模型外側的一條樣式自定義的線。

padding(內邊距):指元素內容與邊框之間的間距。

margin(外邊距):指圍繞在邊框之外的空白區域。

div的基礎屬性

div的基礎屬性包括width(寬度),height(高度)以及background-color(背景顏色)。如果div中沒有具體的內容,可以用這三個屬性讓div“現身”。

div{width: 100px;height: 100px;background-color: gold;}


關于border(邊框)


border是圍繞在盒模型外側的一條樣式自定義的線。border是一個復合屬性,用法為border:width style color;
例如:

div{width: 100px;height: 100px;background-color: gold;border:10px solid red;}


如果分開寫的話,可以寫為:

border-width: 10px;border-style: solid;border-color: red;

這與上文提到的border:10px solid red;作用是一樣的。
其實border-style不僅有solid一種,以下是常用的一些樣式:

border-style邊框樣式
solid直線
dashed虛線
dotted點線
double雙線


給div加上border之后,不難看出長寬都相應的增加了。所以border會增加盒模型的面積。

利用border繪制三角形

div{width: 100px;height: 100px;background-color: gold;margin: 20px;border: 10px solid red;border-left-color: blue;border-right-color:green;border-bottom-color:orange ;}

這段代碼的實現效果為


可見每邊的邊框相當于一個等腰梯形,如果要使梯形變為三角形,只需讓梯形的短邊長度為零即可。

div{width: 0px;height: 0px;background-color: gold;margin: 20px;border: 50px solid red;border-left-color: blue;border-right-color:green;border-bottom-color:orange ;}

利用border-radius制作圓

border-radius的含義為圓角,可以根據自定義的值改變邊框角的弧度。當border-radius:50%;時,div整體會變成一個圓形。

.second{width: 100px;height:100px;background-color: yellow;border: 20px solid skyblue;border-radius: 50%;}


結合三角形和圓形的繪制過程,可以得出扇形的繪制過程

div{width: 0px;height: 0px;background-color:transparent;/* 透明色 */margin: 20px;border: 50px solid red;border-left-color: transparent;border-right-color:transparent;border-bottom-color:orange ;border-radius: 50%;}

關于padding(內邊距)


內邊距指的是元素與邊框之間的空白區域,可以有1~4個值,按照順時針即上右下左的順序依次賦值,用代碼實現為

padding: 20px 30px 40px 50px;

還可以分為四個方向分別實現:

內邊距方向
padding-top上邊距
padding-right右邊距
padding-bottom下邊距
padding-left左邊距


在使用padding時,需要注意padding會增加盒模型的面積。用兩個長寬相等的盒模型比較,可以更直觀的得出結論。

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><style>*{margin: 0;padding: 0;list-style: none;}div{width: 100px;height: 100px;background-color: gold;margin: 20px;}</style> </head> <body><div></div><div style="padding: 20px 30px 40px 50px;"></div> </body> </html>


所以在運用padding時,要注意各邊的長度相應的縮小才能保持原盒模型的面積不變。

關于margin(外邊距)


外邊距是指圍繞在邊框之外的空白區域。同樣可以有1~4個值,以順時針即上右下左的順序依次賦值,用代碼實現為:

margin:20px;/* 代表上右下左四個方向各有20px的外邊距 */

還可以分為四個方向分別實現:

外邊距方向
margin-top上邊距
margin-right右邊距
margin-bottom下邊距
margin-left左邊距

在使用margin時,需要注意疊壓問題和塌陷問題。那么這兩個問題指的是什么呢?

疊壓問題

首先我們假設有兩個div上下排列,div1的下邊距為100px,div2的上邊距為150px,那么兩個div之間的間距是多少呢?100px?250px?還是150px?
答案是150px。
這種現象就很好地體現了疊壓問題。疊壓問題指的是:常態下,兄弟標簽間的上下間距以大值為準。我們來想這樣的一個例子,古代的劍客在功力高深的時候會給人一種有劍氣的感覺,假設A劍客的劍氣半徑是100米,B劍客的劍氣是150米,那么二者之間的安全距離是多少呢?很顯然是150米。

了解了疊壓問題,我們再來學習一下塌陷問題。

塌陷問題

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>margin</title><style>div{color: blue;width: 100px;height: 100px;font-size: 30px;}.fa{width: 300px;height: 300px;background-color: chocolate;}.son{width: 100px;height: 100px;background-color: darkgreen;margin-top: 30px;}</style> </head> <body><div class="fa"><div class="son"></div></div> </body> </html>


我們的本意原是讓div.son與div.fa產生30px的上邊距,卻不曾想div.fa連同div.son一起向下移動了30px的距離,與我們的意愿背道而馳,這樣的現象就稱為塌陷問題。
遇到這樣的問題不要著急,首先要知道問題形成的原因。
塌陷問題出現的原因:常態下,父級的第一個子級標簽是一個塊標簽,并且使用了margin或者margin-top。
針對這個問題,有以下的解決方案:
1.在父級使用border。
2.在父級使用padding-top,注意高度要相對應減少。
3.在父級使用overflow:hidden(溢出隱藏)。
但是要注意的是方案1和方案2相對應的邊長要縮小,才能保證原div的面積不變化。

總結

以上是生活随笔為你收集整理的【html】盒模型div,边框border,内边距padding,外边距margin的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。