国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > CSS > 正文

請(qǐng)不要告訴我你懂css margin

2024-07-11 08:47:39
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
你真的了解margin嗎?你知道m(xù)argin有什么特性嗎?你知道什么是垂直外邊距合并?margin在塊元素、內(nèi)聯(lián)元素中的區(qū)別?什么時(shí)候該用 padding而不是margin?你知道負(fù)margin嗎?你知道負(fù)margin在實(shí)際工作中的用途嗎?常見(jiàn)的瀏覽器下margin出現(xiàn)的bug有哪些?……

寫(xiě)css,你少不了與margin打交道,而對(duì)于這個(gè)平時(shí)我們最常用的css屬性我們并非十分了解。介于此我打算寫(xiě)下這篇文章,一來(lái)是自己工作中的總結(jié),也是對(duì)自己知識(shí)的一次梳理。

Margin是什么

CSS 邊距屬性定義元素周圍的空間。通過(guò)使用單獨(dú)的屬性,可以對(duì)上、右、下、左的外邊距進(jìn)行設(shè)置。也可以使用簡(jiǎn)寫(xiě)的外邊距屬性同時(shí)改變所有的外邊距。——W3School

邊界,元素周圍生成額外的空白區(qū)。“空白區(qū)”通常是指其他元素不能出現(xiàn)且父元素背景可見(jiàn)的區(qū)域。——CSS權(quán)威指南

我比較喜歡使用“外邊距”這個(gè)詞來(lái)解釋margin(同理padding可以稱之為“內(nèi)邊距”,但是我又恰恰喜歡稱呼padding為“補(bǔ)白”或者“留白”),我們可以很清楚的了解到margin的最基本用途就是控制元素周圍空間的間隔,從視覺(jué)角度上達(dá)到相互隔開(kāi)的目的。

Margin的特性

margin始終是透明的。

margin通過(guò)使用單獨(dú)的屬性,可以對(duì)上、右、下、左的外邊距進(jìn)行設(shè)置。即:margin-top、margin-right、margin-bottom、margin-left。

外邊距的 margin-width 的值類型有:auto | length | percentage

也可以使用簡(jiǎn)寫(xiě)的外邊距屬性同時(shí)改變所有的外邊距:margin: top right bottom left;(eg: margin:10px 20px 30px 40px) 記憶方式是元素周圍正上方順時(shí)針“上右下左”記憶。

并且規(guī)范還提供了省略的數(shù)值寫(xiě)法,基本如下:

1、如果margin只有一個(gè)值,表示上右下左的margin同為這個(gè)值。例如:margin:10px; 就等于 margin:10px 10px 10px 10px;

2、如果 margin 只有兩個(gè)值,第一個(gè)值表示上下margin值,第二個(gè)值為左右margin的值。例如:margin:10px 20px; 就等于 margin:10px 20px 10px 20px;

3、如果margin有三個(gè)值,第一個(gè)值表示上margin值,第二個(gè)值表示左右margin的值,第三個(gè)值表示下margin的值。例如:margin:10px 20px 30px; 就等于 margin:10px 20px 30px 20px;

4、如果margin有四個(gè)值,那這四個(gè)值分別對(duì)應(yīng)上右下左這四個(gè)margin值。例如:margin:10px 20px 30px 40px;

在實(shí)際應(yīng)用中,個(gè)人不推薦使用三個(gè)值的margin,一是容易記錯(cuò),二是不容易日后修改,一開(kāi)始如果寫(xiě)成margin:10px 20px 30px;日后需求改動(dòng)為上10px,右30px,下30px,左20px,你不得不還是得把這個(gè)margin拆開(kāi)為margin:10px 30px 30px 20px;費(fèi)力且不討好,不如一開(kāi)始就老老實(shí)實(shí)的寫(xiě)成margin:10px 20px 30px 20px;來(lái)的實(shí)在,不要為了現(xiàn)在節(jié)省倆個(gè)字節(jié)而讓日后再次開(kāi)發(fā)的成本上升。

垂直外邊距合并問(wèn)題

別被上面這個(gè)名詞給嚇倒了,簡(jiǎn)單地說(shuō),外邊距合并指的是,當(dāng)兩個(gè)垂直外邊距相遇時(shí),它們將形成一個(gè)外邊距。合并后的外邊距的高度等于兩個(gè)發(fā)生合并的外邊距的高度中的較大者。你可以查看W3Shool CSS外邊距合并了解這個(gè)基本知識(shí)。

實(shí)際工作中,垂直外邊距合并問(wèn)題常見(jiàn)于第一個(gè)子元素的margin-top會(huì)頂開(kāi)父元素與父元素相鄰元素的間距,而且只在標(biāo)準(zhǔn)瀏覽器下 (FirfFox、Chrome、Opera、Sarfi)產(chǎn)生問(wèn)題,IE下反而表現(xiàn)良好。例子可以查看下面代碼(IE下表現(xiàn)“正常”,標(biāo)準(zhǔn)瀏覽器下查看出現(xiàn)“bug”):


復(fù)制代碼
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 新安县| 定南县| 松阳县| 偃师市| 如皋市| 淮阳县| 稷山县| 衡南县| 嵩明县| 自贡市| 凌海市| 大同市| 普兰县| 卫辉市| 沾益县| 屏东县| 岐山县| 金阳县| 扎兰屯市| 孟连| 句容市| 吉水县| 秭归县| 应用必备| 东山县| 资溪县| 东明县| 夏津县| 云和县| 鄂尔多斯市| 河东区| 获嘉县| 化德县| 丰宁| 吉木乃县| 新平| 得荣县| 三原县| 三原县| 阜康市| 昌图县|