本篇內容介紹了“CSS盒子大小與內外邊距及邊框的關系是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!
創(chuàng)新互聯(lián)主要從事做網(wǎng)站、成都網(wǎng)站設計、網(wǎng)頁設計、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務。立足成都服務棲霞,10年網(wǎng)站建設經(jīng)驗,價格優(yōu)惠、服務專業(yè),歡迎來電咨詢建站服務:028-86922220

盒子模型(CSS重點)
css學習三大重點: css 盒子模型 、 浮動 、 定位
主題思路:
目標:
理解:
能說出盒子模型有那四部分組成
能說出內邊距的作用以及對盒子的影響
能說出padding設置不同數(shù)值個數(shù)分別代表的意思
能說出塊級盒子居中對齊需要的2個條件
能說出外邊距合并的解決方法
應用:
能利用邊框復合寫法給元素添加邊框
能計算盒子的實際大小
能利用盒子模型布局模塊案例
所謂盒子模型:
盒子模型有元素的內容、邊框(border)、內邊距(padding)、和外邊距(margin)組成。
盒子里面的文字和圖片等元素是 內容區(qū)域
盒子的厚度 我們成為 盒子的邊框
盒子內容與邊框的距離是內邊距(類似單元格的 cellpadding)
盒子與盒子之間的距離是外邊距(類似單元格的 cellspacing)
就是把HTML頁面中的布局元素看作是一個矩形的盒子,也就是一個盛裝內容的容器。
標準盒子模型

語法:
border : border-width || border-style || border-color
| 屬性 | 作用 |
|---|---|
| border-width | 定義邊框粗細,單位是px |
| border-style | 邊框的樣式 |
| border-color | 邊框顏色 |
邊框的樣式:
none:沒有邊框即忽略所有邊框的寬度(默認值)
solid:邊框為單實線(最為常用的)
dashed:邊框為虛線
dotted:邊框為點線
border : border-width || border-style || border-color
例如:
border: 1px solid red; 沒有順序
很多情況下,我們不需要指定4個邊框,我們是可以單獨給4個邊框分別指定的。
| 上邊框 | 下邊框 | 左邊框 | 右邊框 |
|---|---|---|---|
| border-top-style:樣式; | border-bottom-style:樣式; | border-left-style:樣式; | border-right-style:樣式; |
| border-top-width:寬度; | border- bottom-width:寬度; | border-left-width:寬度; | border-right-width:寬度; |
| border-top-color:顏色; | border- bottom-color:顏色; | border-left-color:顏色; | border-right-color:顏色; |
| border-top:寬度 樣式 顏色; | border-bottom:寬度 樣式 顏色; | border-left:寬度 樣式 顏色; | border-right:寬度 樣式 顏色; |
通過表格的cellspacing="0",將單元格與單元格之間的距離設置為0,
但是兩個單元格之間的邊框會出現(xiàn)重疊,從而使邊框變粗
通過css屬性:
table{ border-collapse:collapse; }collapse 單詞是合并的意思
border-collapse:collapse; 表示相鄰邊框合并在一起。
<style>
table {
width: 500px;
height: 300px;
border: 1px solid red;
}
td {
border: 1px solid red;
text-align: center;
}
table, td {
border-collapse: collapse; /*合并相鄰邊框*/
}</style>
padding屬性用于設置內邊距。 是指 邊框與內容之間的距離。
| 屬性 | 作用 |
|---|---|
| padding-left | 左內邊距 |
| padding-right | 右內邊距 |
| padding-top | 上內邊距 |
| padding-bottom | 下內邊距 |
當我們給盒子指定padding值之后, 發(fā)生了2件事情:
內容和邊框 有了距離,添加了內邊距。
盒子會變大了。
注意: 后面跟幾個數(shù)值表示的意思是不一樣的。
我們分開寫有點麻煩,我們可以不可以簡寫呢?
| 值的個數(shù) | 表達意思 |
|---|---|
| 1個值 | padding:上下左右內邊距; |
| 2個值 | padding: 上下內邊距 左右內邊距 ; |
| 3個值 | padding:上內邊距 左右內邊距 下內邊距; |
| 4個值 | padding: 上內邊距 右內邊距 下內邊距 左內邊距 ; |
練一練:
請寫出如下內邊距:
要求盒子有一個左邊內邊距是 5像素
要求簡寫的形式寫出 一個盒子上下是 25像素 左右是15像素。
要求簡寫的形式寫出 一個盒子 上內邊距是 12像素 下內邊距是 0 左內邊距是 25像素 右內邊距是 10像素
盒子的實際的大小 = 內容的寬度和高度 + 內邊距 + 邊框
問題
會撐大原來的盒子
解決:
通過給設置了寬高的盒子,減去相應的內邊距的值,維持盒子原有的大小
練一練
一個盒子寬度為100, padding為 10, 邊框為5像素,問這個盒子實際的寬度的是()
130
100 + 20 + 10
關于根據(jù)下列代碼計算 盒子寬高下列說法正確的是()
p {
width: 200px;
height: 200px;
border: 1px solid #000000;
border-top: 5px solid blue;
padding: 50px;
padding-left: 100px;
}寬度為352px 高度為306px
w 200 + 150 + 2 = 352
h 200 + 100 + 6 = 306
如果沒有給一個盒子指定寬度, 此時,如果給這個盒子指定padding, 則不會撐開盒子。
margin屬性用于設置外邊距。 margin就是控制盒子和盒子之間的距離
| 屬性 | 作用 |
|---|---|
| margin-left | 左外邊距 |
| margin-right | 右外邊距 |
| margin-top | 上外邊距 |
| margin-bottom | 下外邊距 |
margin值的簡寫 (復合寫法)代表意思 跟 padding 完全相同。
可以讓一個塊級盒子實現(xiàn)水平居中必須:
盒子必須指定了寬度(width)
然后就給左右的外邊距都設置為auto,
實際工作中常用這種方式進行網(wǎng)頁布局,示例代碼如下:
.header{ width:960px; margin:0 auto;}常見的寫法,以下下三種都可以。
margin-left: auto; margin-right: auto;
margin: auto;
margin: 0 auto;
盒子內的文字水平居中是 text-align: center, 而且還可以讓 行內元素和行內塊居中對齊
塊級盒子水平居中 左右margin 改為 auto
text-align: center; /* 文字 行內元素 行內塊元素水平居中 */margin: 10px auto; /* 塊級盒子水平居中 左右margin 改為 auto 就闊以了 上下margin都可以 */
插入圖片 我們用的最多 比如產(chǎn)品展示類 移動位置只能靠盒模型 padding margin
背景圖片我們一般用于小圖標背景 或者 超大背景圖片 背景圖片 只能通過 background-position
img {
width: 200px;/* 插入圖片更改大小 width 和 height */
height: 210px;
margin-top: 30px; /* 插入圖片更改位置 可以用margin 或padding 盒模型 */
margin-left: 50px; /* 插入當圖片也是一個盒子 */
}
p {
width: 400px;
height: 400px;
border: 1px solid purple;
background: #fff url(images/sun.jpg) no-repeat;
background-position: 30px 50px; /* 背景圖片更改位置 我用 background-position */
}
為了更靈活方便地控制網(wǎng)頁中的元素,制作網(wǎng)頁時,我們需要將元素的默認內外邊距清除
代碼:
* {
padding:0; /* 清除內邊距 */
margin:0; /* 清除外邊距 */}注意:
行內元素為了照顧兼容性, 盡量只設置左右內外邊距, 不要設置上下內外邊距。
使用margin定義塊元素的垂直外邊距時,可能會出現(xiàn)外邊距的合并。
當上下相鄰的兩個塊元素相遇時,如果上面的元素有下外邊距margin-bottom
下面的元素有上外邊距margin-top,則他們之間的垂直間距不是margin-bottom與margin-top之和
取兩個值中的較大者這種現(xiàn)象被稱為相鄰塊元素垂直外邊距的合并(也稱外邊距塌陷)。
解決方案:盡量給只給一個盒子添加margin值。
對于兩個嵌套關系的塊元素,如果父元素沒有上內邊距及邊框
父元素的上外邊距會與子元素的上外邊距發(fā)生合并
合并后的外邊距為兩者中的較大者
解決方案:
可以為父元素定義上邊框。
可以為父元素定義上內邊距
可以為父元素添加overflow:hidden。
還有其他方法,比如浮動、固定、絕對定位的盒子不會有問題,后面咱們再總結。。。
學習完盒子模型,內邊距和外邊距,什么情況下用內邊距,什么情況下用外邊距?
大部分情況下是可以混用的。 就是說,你用內邊距也可以,用外邊距也可以。 你覺得哪個方便,就用哪個。
我們根據(jù)穩(wěn)定性來分,建議如下:
按照 優(yōu)先使用 寬度 (width) 其次 使用內邊距(padding) 再次 外邊距(margin)。
width > padding > margin
原因:
margin 會有外邊距合并 還有 ie6下面margin 加倍的bug(討厭)所以最后使用。
padding 會影響盒子大小, 需要進行加減計算(麻煩) 其次使用。
width 沒有問題(嗨皮)我們經(jīng)常使用寬度剩余法 高度剩余法來做。
無序和有序列表前面默認的列表樣式,在不同瀏覽器顯示效果不一樣,而且也比較難看,所以,我們一般上來就直接去掉這些列表樣式就行了。 代碼如下
li { list-style: none; }
以下我們講的CSS3部分新屬性, 但是我們遵循的原則是,以下內容,不會影響我們頁面布局, 只是樣式更好看了而已。

語法:
border-radius:length;
其中每一個值可以為 數(shù)值或百分比的形式。
技巧: 讓一個正方形 變成圓圈
border-radius: 50%;

以上效果圖矩形的圓角, 就不要用 百分比了,因為百分比會是表示高度和寬度的一半。
而我們這里矩形就只用 用 高度的一半就好了。精確單位。
語法:
box-shadow:水平陰影 垂直陰影 模糊距離(虛實) 陰影尺寸(影子大小) 陰影顏色 內/外陰影;

前兩個屬性是必須寫的。其余的可以省略。
外陰影 (outset) 是默認的 但是不能寫 想要內陰影可以寫 inset
p {
width: 200px;
height: 200px;
border: 10px solid red;
/* box-shadow: 5px 5px 3px 4px rgba(0, 0, 0, .4); */
/* box-shadow:水平位置 垂直位置 模糊距離 陰影尺寸(影子大小) 陰影顏色 內/外陰影; */
box-shadow: 0 15px 30px rgba(0, 0, 0, .4);
}開始就形成良好的書寫規(guī)范,是你專業(yè)的開始。
【強制】 選擇器 與 { 之間必須包含空格。
示例:
.selector {}【強制】 屬性名 與之后的 : 之間不允許包含空格, : 與 屬性值 之間必須包含空格。
示例:
font-size: 12px;
【強制】 并集選擇器,每個選擇器聲明必須獨占一行。
示例:
/* good */
.post,
.page,
.comment {
line-height: 1.5;
}
/* bad */
.post, .page, .comment {
line-height: 1.5;
}【建議】 一般情況情況下,選擇器的嵌套層級應不大于 3 級,位置靠后的限定條件應盡可能精確。
示例:
/* good */#username input {}.comment .avatar {}/* bad */.page .header .login input {}.comment p * {}【強制】 屬性定義必須另起一行。
示例:
/* good */.selector {
margin: 0;
padding: 0;}/* bad */.selector { margin: 0; padding: 0; }【強制】 屬性定義后必須以分號結尾。
示例:
/* good */.selector {
margin: 0;}/* bad */.selector {
margin: 0}“CSS盒子大小與內外邊距及邊框的關系是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質量的實用文章!
網(wǎng)頁標題:CSS盒子大小與內外邊距及邊框的關系是什么
網(wǎng)頁路徑:http://www.chinadenli.net/article10/iiijgo.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營銷、動態(tài)網(wǎng)站、做網(wǎng)站、搜索引擎優(yōu)化、云服務器、網(wǎng)站設計
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)