HTML中行內(nèi)元素的豎直方向的padding和margin是否真的無效

轉載聲明:此文章為轉載(略改動)切端,點擊查看原文缴渊。
如有侵權24小時內(nèi)刪除姨拥。聯(lián)系QQ:1522025433
參考資料:Inline elements and padding
今天寫一個導航欄時遇到了一個問題:行內(nèi)元素的padding-top,padding-bottom和margin-top,margin-bottom是不是真的是無效的足陨?
接下來就這個問題將具體分析:
1.行內(nèi)元素擁有盒子模型么?
答案是是的娇未。沒錯墨缘,行內(nèi)元素跟塊級元素一樣,同樣擁有盒子模型零抬。
2.行內(nèi)元素的padding-top镊讼,padding-bottom和margin-top,margin-bottom是否無效?
答案同樣是是的平夜。盒子模型的width蝶棋,height和padding-top,padding-bottom和margin-top,margin-bottom設置都是無效的忽妒。但是...
3.實戰(zhàn)探討行內(nèi)元素的padding-top玩裙,padding-bottom和margin-top,margin-bottom
先來看兩個實例:
example1:
源碼:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>example1 padding-top padding-bottom  有效果(應該沒有)</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
  text-decoration:none;
  list-style:none;
}
#main{
  min-width:1280px;
  background-color:pink;
  margin:50px auto;
  height:800px;
}
nav{
  height:50px;
  background-color:yellow;
}
nav ul li{
  height:50px;
  float:left;
  margin-left:20px;
  background-color:red;
}
a{
  line-height:50px;
  padding:30px;
  margin:30px;
  background-color:green;
  font-size:14px;
  color:rgb(231,79,77);
}
</style>
</head>
<body>
<div id="main">
<header>
    <nav>
        <ul>
            <li><a class="hnav" href="#">首頁</a></li>
            <li><a class="hnav" href="#">最新活動</a></li>
            <li><a class="hnav" href="#">項目介紹</a></li>
            <li><a class="hnav" href="#">愛心社區(qū)</a></li>
            <li><a class="hnav" href="#">關于我們</a></li>
        </ul>
    </nav>
</header>
</div>
</body>
</html>

效果(不會做點鏈接彈出demo的效果,會的大神求教):


example1.png

看效果圖:鏈接元素a的父元素li以及nav元素的高度都是50px段直,且都為白色背景吃溅,但是設置a的css樣式為padding:30px之后,發(fā)現(xiàn)高度超過了白色區(qū)域(即50px)鸯檬,按照行內(nèi)元素的盒子模型理論决侈,應該是padding-top和padding-bottom都是無效的,然而這里卻有效了么喧务?先來看另外一個例子:
example2:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>example2  行內(nèi)元素 對margin-top margin-bottom無效果 而padding-top padding-bottom有效果但只是表象 對其它元素無影響</title>
<style type="text/css">
*{
  margin:0px;
  padding:0px;
}
span{
  color:black;
  padding:50px;
  margin:50px;
  border:3px solid black;
}
.pone{
  color:blue;
}
.ptwo{
  color:tomato;
}
</style>
</head>
<body>
    <p class="pone">
    test 1<span>test span</span>test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 test 1 
    </p>
    <p class="ptwo">test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2 test 2</p>
</body>
</html>

效果:



又是個奇怪的現(xiàn)象赖歌,我在截取另一張圖,其它都一樣蹂楣,只是 test 1 部分的數(shù)量大量增加:


是的效果如上圖俏站,我們可以看到span設置的margin確實符合行內(nèi)元素的盒子模型,水平方向外邊距有效痊土,豎直方向外邊距無效肄扎,但是對于padding似乎是水平和垂直方向都有效,但我們仔細看上述example1和example2的兩張圖:example1中,我們設置的padding-top和padding-bottom是相等的犯祠,然而也表現(xiàn)了出來旭等,因此也說明行內(nèi)元素的padding-top、padding-bottom確實是有效果衡载,但在example2中搔耕,可以看到豎直方向的padding屬性并不對其他元素有影響,因此行內(nèi)元素豎直方向內(nèi)邊距確實是無效的痰娱;垂直方向上margin屬性更是一點沒有效果弃榨,只有水平方向外邊距有效。

查w3c的官方文檔并沒有找到這個奇葩現(xiàn)象解釋(可能我英語比較爛梨睁,沒找到)鲸睛,后來在一篇老外的文章里找到了答案:

While padding can be applied to all sides of an inline element, only left and right padding will have an effect on surrounding content. In the example below, 50px of padding has been applied to all sides of theelement. As you can see, it has an affect on the content on each side, but not on content above or below

這段話基本解釋了上述現(xiàn)象,當我們使用內(nèi)邊距時坡贺,只有左右方向有效官辈;當我們設置四個方向的內(nèi)邊距時,對于該行內(nèi)元素遍坟,確實顯示出效果拳亿,但是豎直方向的內(nèi)邊距只有效果,對其他元素無任何影響愿伴。
因此肺魁,行內(nèi)元素的padding-top,padding-bottom和margin-top,margin-bottom是真的是無效公般;不過要注意一點万搔,對于豎直方向的內(nèi)邊距該行內(nèi)元素的內(nèi)容范圍是增大了,不過只是表象官帘,對周圍元素無任何影響瞬雹。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市刽虹,隨后出現(xiàn)的幾起案子酗捌,更是在濱河造成了極大的恐慌,老刑警劉巖涌哲,帶你破解...
    沈念sama閱讀 206,723評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件胖缤,死亡現(xiàn)場離奇詭異,居然都是意外死亡阀圾,警方通過查閱死者的電腦和手機哪廓,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,485評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來初烘,“玉大人涡真,你說我怎么就攤上這事分俯。” “怎么了哆料?”我有些...
    開封第一講書人閱讀 152,998評論 0 344
  • 文/不壞的土叔 我叫張陵缸剪,是天一觀的道長。 經(jīng)常有香客問我东亦,道長杏节,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,323評論 1 279
  • 正文 為了忘掉前任典阵,我火速辦了婚禮奋渔,結果婚禮上,老公的妹妹穿的比我還像新娘萄喳。我一直安慰自己卒稳,他們只是感情好,可當我...
    茶點故事閱讀 64,355評論 5 374
  • 文/花漫 我一把揭開白布他巨。 她就那樣靜靜地躺著,像睡著了一般减江。 火紅的嫁衣襯著肌膚如雪染突。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,079評論 1 285
  • 那天辈灼,我揣著相機與錄音份企,去河邊找鬼。 笑死巡莹,一個胖子當著我的面吹牛司志,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播降宅,決...
    沈念sama閱讀 38,389評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼骂远,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了腰根?” 一聲冷哼從身側響起激才,我...
    開封第一講書人閱讀 37,019評論 0 259
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎额嘿,沒想到半個月后瘸恼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 43,519評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡册养,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,971評論 2 325
  • 正文 我和宋清朗相戀三年东帅,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片球拦。...
    茶點故事閱讀 38,100評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡靠闭,死狀恐怖帐我,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情阎毅,我是刑警寧澤焚刚,帶...
    沈念sama閱讀 33,738評論 4 324
  • 正文 年R本政府宣布,位于F島的核電站扇调,受9級特大地震影響矿咕,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜狼钮,卻給世界環(huán)境...
    茶點故事閱讀 39,293評論 3 307
  • 文/蒙蒙 一碳柱、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧熬芜,春花似錦莲镣、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,289評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至鼓拧,卻和暖如春半火,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背季俩。 一陣腳步聲響...
    開封第一講書人閱讀 31,517評論 1 262
  • 我被黑心中介騙來泰國打工钮糖, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人酌住。 一個月前我還...
    沈念sama閱讀 45,547評論 2 354
  • 正文 我出身青樓店归,卻偏偏與公主長得像,于是被迫代替她去往敵國和親酪我。 傳聞我的和親對象是個殘疾皇子消痛,可洞房花燭夜當晚...
    茶點故事閱讀 42,834評論 2 345

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,728評論 1 92
  • ?前端面試題匯總 一祭示、HTML和CSS 21 你做的頁面在哪些流覽器測試過肄满?這些瀏覽器的內(nèi)核分別是什么? ...
    Simon_s閱讀 2,219評論 0 8
  • 本課來自http://www.imooc.com/learn/9請不要用作商業(yè)用途。 HTML5 HTML介紹 H...
    PYLON閱讀 3,200評論 0 5
  • 作者:[zhengkonghong](https://coding.net/u/zhengkenghong) 本文...
    CODING_博客閱讀 781評論 1 6
  • 001:將軍质涛,扒了他 驚蟄剛過稠歉,京都的天氣還有些微寒。 是夜汇陆。 京城第一青樓春蘭園怒炸,一道修長的身影快速的閃入了春蘭...
    嗶嗶啥閱讀 467評論 1 4