自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

揭露CSS中margins折疊現(xiàn)象內(nèi)幕

開發(fā) 前端
你對CSS中Margin屬性的用法是否了解,這里向大家描述一下margins折疊現(xiàn)象產(chǎn)生的原因及解決方案,希望對你的學(xué)習(xí)有所幫助。

本文和大家重點(diǎn)討論一下CSS中margins折疊現(xiàn)象,margins折疊現(xiàn)象只存在于臨近或有從屬關(guān)系的元素,垂直方向的margin中。

Margin簡介

包括margin-top,margin-right,margin-bottom,margin-left,控制塊級元素之間的距離,它們是透明不可見的。

Collapsingmargins:

margins折疊現(xiàn)象只存在于臨近或有從屬關(guān)系的元素,垂直方向的margin中.文字說明可能讓人費(fèi)解,下面用一個例子說明margin-collapsing現(xiàn)象.

例:在html文件的之間寫入如下代碼: 

  1. <dividdivid=”ID1″> 
  2. <h1idh1id=”ID2″>MarginsofID1andID2collapsevertically.<br/> 
  3. 元素ID1與ID2的margins在垂直方向折疊.h1> 
  4. div> 
  5.  

在與其外聯(lián)的css文件中寫入: 

  1. *{  
  2. padding:0;  
  3. margin:0;  
  4. }  
  5. #ID1{  
  6. background-color:#333;  
  7. color:#FFF;  
  8. margin-top:10px;  
  9. margin-bottom:10px;  
  10. }  
  11. #ID2{  
  12. font:normal14px/1.5Verdana,sans-serif;  
  13. margin-top:30px;  
  14. margin-bottom:30px;  
  15. border:1pxsolid#F00;  
  16. }  
  17.  

代碼解釋:

1.在html寫入的代碼表示,在html中插入id分別為ID1和ID2的兩個塊級元素div,h1;
2.*{padding:0;margin:0;}:使瀏覽器默認(rèn)的元素padding和margin值均歸零;
3.#ID1{…}:使id為ID1的元素div的背景顏色為#333,字體顏色為#FFF,margin-top/bottom為10px;
4.#ID2{…}:使id為ID2的元素h1的字體大小為14px,verdana字體,行高為字體高的150%,正常粗細(xì).margin-top/bottom為30px,邊框?yàn)?px寬,紅色實(shí)線.

依據(jù)以上解釋,我們應(yīng)該得到如下效果(Fig.3):

即ID1的margin-top/bottom=ab=ef=10px;
ID2的margin-top/bottom=bc=de=30px;
但用瀏覽器打開html文件,卻得到Example4的效果,如下圖(Fig.4):

即ab=cd=30px,ID1的margin-top/bottom=10px被折疊了,而且ID1應(yīng)有的margin黑色背景也一同被折疊消失了。#p#

為什么會折疊:

造成以上現(xiàn)象的原因是,我們在css中并沒有聲明id為ID1的元素div的height(高),因此它的高便被設(shè)為auto(自動)了.一旦其值被設(shè)為auto,那么瀏覽器就會認(rèn)為它的高為子元素ID2的border-top到border-bottom之間的距離,即Fig.4中bc的長度,所以子元素ID2的margin-top/bottom(30px)就伸出到了父元素ID1之外,出現(xiàn)了Fig.4中ab與cd之間的空白區(qū)域.因此父元素ID1的margin-top/bottom因子元素的”紅杏出墻”而被折疊消失了.

如何解決折疊問題:

可能大家最初想到的辦法就是根據(jù)折疊發(fā)生的原因—auto,來解決問題.但是,在實(shí)際操作中,某些元素如div,h1,p等,我們是不可能預(yù)先知道它的高是多少的,因此在css文件中是不能常規(guī)通過聲明元素的高來解決折疊問題.

我們需要在css文件中加入如下代碼(紅色部分): 

  1. #ID1{  
  2. background-color:#333;  
  3. color:#FFF;  
  4. margin-top:10px;  
  5. margin-bottom:10px;  
  6. padding-top:1px;  
  7. padding-bottom:1px;  
  8. }  
  9. 或是:  
  10. #ID1{  
  11. background-color:#333;  
  12. color:#FFF;  
  13. margin-top:10px;  
  14. margin-bottom:10px;  
  15. border-top:1pxsolid#333;  
  16. border-bottom:1pxsolid#333;  
  17. }  
  18.  

通過增加以上代碼,便可使瀏覽器重新計(jì)算ID1的高,使其為子元素ID2的margin-top/bottom外緣(outertop/bottom)之間的距離,即Fig.3中be的距離.

本文來源于php愛好者h(yuǎn)ttp://www.phplover.cn/,原文地址:http://www.phplover.cn/post/padding-margin.html

【編輯推薦】

  1. DIV+CSS中padding和margin屬性用法
  2. 實(shí)例解析CSS padding 屬性用法
  3. 探究IE和Firefox下的2款HTTP調(diào)試工具用法
  4. DIV+CSS開發(fā)Xhtml網(wǎng)頁對SEO優(yōu)化的影響
  5. DIV CSS網(wǎng)頁布局中對段落進(jìn)行排版的方法


 

責(zé)任編輯:佚名 來源: phplover.cn
相關(guān)推薦

2010-08-06 13:59:00

Flex和Html交互

2010-07-30 09:42:37

Flex播放器

2010-08-16 13:21:34

外邊距折疊

2010-05-14 14:53:24

MyEclipse S

2010-09-27 11:12:46

MyEclipseJVM內(nèi)存

2010-08-30 14:47:47

CSS選擇器

2024-04-30 08:32:18

CSS元素網(wǎng)格

2023-12-06 08:46:20

CSSFlex內(nèi)幕

2009-04-30 09:45:03

Oracle索引限制

2011-02-28 10:27:41

Visual Stud

2023-02-20 09:48:00

CSS浮動布局

2013-12-16 15:04:51

多核編程

2010-05-27 10:02:14

周鴻祎王欣

2011-04-07 15:37:48

MySQL忽略用戶

2022-08-29 14:30:55

學(xué)術(shù)Nature

2012-12-04 10:52:03

CSS3Web

2016-12-14 14:29:30

Java動態(tài)綁定機(jī)制

2012-09-21 10:12:24

SaaS廠商SLA評估SaaS應(yīng)用

2013-03-26 11:12:37

金融行業(yè)木馬攻擊賽門鐵克

2021-06-06 06:05:11

APP手機(jī)詐騙軟件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號