日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
揭露CSS中margins折疊現(xiàn)象內(nèi)幕

本文和大家重點(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)解,下面用一個(gè)例子說明margin-collapsing現(xiàn)象.

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

 
 
 
 
  1. MarginsofID1andID2collapsevertically.
  2. 元素ID1與ID2的margins在垂直方向折疊. h1>
  3. div>

在與其外聯(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. }

代碼解釋:

1.在html寫入的代碼表示,在html中插入id分別為ID1和ID2的兩個(gè)塊級元素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. }

通過增加以上代碼,便可使瀏覽器重新計(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


本文名稱:揭露CSS中margins折疊現(xiàn)象內(nèi)幕
轉(zhuǎn)載注明:http://m.5511xx.com/article/ccdojje.html