(學習視訊分享:、html視訊教學)
3-11 盒子大小與內外邊距及邊框的關係
css學習三大重點: css 盒子模型 、 浮動 、 定位
主題思路:
目標:
所謂盒子模型:
標準盒子模型
border : border-width || border-style || border-color
屬性 | 作用 |
---|---|
border-width | 定義邊框粗細,單位是px |
border-style | 邊框的樣式 |
border-color | 邊框顏色 |
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,
但是兩個單元格之間的邊框會出現重疊,從而使邊框變粗
通過css屬性:
table{ 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值之後, 發生了2件事情:
內容和邊框 有了距離,新增了內邊距。
盒子會變大了。
注意: 後面跟幾個數值表示的意思是不一樣的。
我們分開寫有點麻煩,我們可以不可以簡寫呢?
值的個數 | 表達意思 |
---|---|
1個值 | padding:上下左右內邊距; |
2個值 | padding: 上下內邊距 左右內邊距 ; |
3個值 | padding:上內邊距 左右內邊距 下內邊距; |
4個值 | padding: 上內邊距 右內邊距 下內邊距 左內邊距 ; |
練一練:
請寫出如下內邊距:
問題
會撐大原來的盒子
解決:
通過給設定了寬高的盒子,減去相應的內邊距的值,維持盒子原有的大小
練一練
130
100 + 20 + 10
p { width: 200px; height: 200px; border: 1px solid #000000; border-top: 5px solid blue; padding: 50px; padding-left: 100px; }
w 200 + 150 + 2 = 352
h 200 + 100 + 6 = 306
如果沒有給一個盒子指定寬度, 此時,如果給這個盒子指定padding, 則不會撐開盒子。
margin屬性用於設定外邊距。 margin就是控制盒子和盒子之間的距離
屬性 | 作用 |
---|---|
margin-left | 左外邊距 |
margin-right | 右外邊距 |
margin-top | 上外邊距 |
margin-bottom | 下外邊距 |
margin值的簡寫 (複合寫法)代表意思 跟 padding 完全相同。
實際工作中常用這種方式進行網頁佈局,範例程式碼如下:
.header{ width:960px; margin:0 auto;}
常見的寫法,以下下三種都可以。
盒子內的文字水平居中是 text-align: center, 而且還可以讓 行內元素和行內塊居中對齊
塊級盒子水平居中 左右margin 改為 auto
text-align: center; /* 文字 行內元素 行內塊元素水平居中 */margin: 10px auto; /* 塊級盒子水平居中 左右margin 改為 auto 就闊以了 上下margin都可以 */
插入圖片 我們用的最多 比如產品展示類 移動位置只能靠盒模型 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 */ }
為了更靈活方便地控制網頁中的元素,製作網頁時,我們需要將元素的預設內外邊距清除
程式碼:
* { padding:0; /* 清除內邊距 */ margin:0; /* 清除外邊距 */}
注意:
使用margin定義塊元素的垂直外邊距時,可能會出現外邊距的合併。
解決方案:儘量給只給一個盒子新增margin值。
解決方案:
還有其他方法,比如浮動、固定、絕對定位的盒子不會有問題,後面咱們再總結。。。
學習完盒子模型,內邊距和外邊距,什麼情況下用內邊距,什麼情況下用外邊距?
我們根據穩定性來分,建議如下:
按照 優先使用 寬度 (width) 其次 使用內邊距(padding) 再次 外邊距(margin)。
width > padding > margin
無序和有序列表前面預設的列表樣式,在不同瀏覽器顯示效果不一樣,而且也比較難看,所以,我們一般上來就直接去掉這些列表樣式就行了。 程式碼如下
li { list-style: none; }
以下我們講的CSS3部分新屬性, 但是我們遵循的原則是,以下內容,不會影響我們頁面佈局, 只是樣式更好看了而已。
border-radius:length;
其中每一個值可以為 數值或百分比的形式。
技巧: 讓一個正方形 變成圓圈
border-radius: 50%;
box-shadow:水平陰影 垂直陰影 模糊距離(虛實) 陰影尺寸(影子大小) 陰影顏色 內/外陰影;
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); }
開始就形成良好的書寫規範,是你專業的開始。
【強制】 選擇器 與 { 之間必須包含空格。
範例:
.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}
(學習視訊分享:、html視訊教學)
以上就是一起聊聊CSS盒子大小與內外邊距及邊框的關係的詳細內容,更多請關注TW511.COM其它相關文章!