成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

CSS中margin邊界疊加問題及解決方案

開發 前端
本文向大家描述一下CSS的margin邊界疊加問題,邊界疊加是一個相當簡單的概念。但是,在實踐中對網頁進行布局時,它會造成許多混淆。

你對CSS的margin邊界疊加的概念是否了解,這里和大家分享一下,當一個元素出現在另一個元素上面時,第一個元素的底與第二個元素的頂發生疊加。

CSS的margin邊界疊加深度剖析

邊界疊加簡介

邊界疊加是一個相當簡單的概念。但是,在實踐中對網頁進行布局時,它會造成許多混淆。簡單地說,當兩個垂直邊界相遇時,它們將形成一個邊界。這個邊界的高度等于兩個發生疊加的邊界的高度中的較大者。

  當一個元素出現在另一個元素上面時,第一個元素的底邊界與第二個元素的頂邊界發生疊加,見圖:


  ◆元素的頂邊界與前面元素的底邊界發生疊加

  當一個元素包含在另一個元素中時(假設沒有填充或邊框將邊界分隔開),它們的頂和/或底邊界也發生疊加,見圖:  


  ◆元素的頂邊界與父元素的頂邊界發生疊加

  盡管初看上去有點兒奇怪,但是邊界甚至可以與本身發生疊加。假設有一個空元素,它有邊界,但是沒有邊框或填充。在這種情況下,頂邊界與底邊界就碰到了一起,它們會發生疊加,見圖:
  

  ◆元素的頂邊界與底邊界發生疊加

  如果這個邊界碰到另一個元素的邊界,它還會發生疊加,見圖:  

  ◆空元素中已經疊加的邊界與另一個空元素的邊界發生疊加

  這就是一系列空的段落元素占用的空間非常小的原因,因為它們的所有邊界都疊加到一起,形成一個小的邊界。

  邊界疊加初看上去可能有點兒奇怪,但是它實際上是有意義的。以由幾個段落組成的典型文本頁面為例(見圖2-8)。第一個段落上面的空間等于段落的頂邊界。如果沒有邊界疊加,后續所有段落之間的邊界將是相鄰頂邊界和底邊界的和。這意味著段落之間的空間是頁面頂部的兩倍。如果發生邊界疊加,段落之間的頂邊界和底邊界就疊加在一起,這樣各處的距離就一致了。  

  ◆邊界疊加在元素之間維護了一致的距離

  只有普通文檔流中塊框的垂直邊界才會發生邊界疊加。行內框、浮動框或絕對定位框之間的邊界不會疊加。#p#

邊界疊加的問題

  邊辦疊加是一個如果誤解就會導致許多麻煩的CSS特性。請參考div元素內嵌套段落的簡單示例:

  1. <dividdivid="box"> 
  2. <p>Thisparagraphhasa20pxmargin.p> 
  3. div> 
  4.  

  div框設置了10像素邊界,段落設置了20像素的邊界:

  1. #box{  
  2. margin:10px;  
  3. background-color:#d5d5d5;  
  4. }  
  5. p{  
  6. margin:20px;  
  7. background-color:#6699ff;  
  8. }  
  9.  

  你會自然地認為產生的樣式會像圖1-1那樣,在段落和div之間有20像素的距離,在div外邊圍繞著10像素的邊界。

  圖1-1

  但是,產生的樣式實際上像圖1-2。

  圖1-2

  這里發生了兩個情況。首先,段落的20像素上邊界和上邊界與div的10像素邊界疊加,形成一個單一的20像素垂直邊界。其次,這些邊界不是被DIV包圍,而是突出到DIV的頂部和底部的外邊。出現這種情況是由于具有塊級子元素的元素計算其高度方式造成的。

  如果元素沒有垂直邊框和填充,那么它的高度就是它包含的子元素的頂部和底部邊框邊緣之間的距離。因此,包含的子元素的頂部和底部空白邊就突出到容器元素的外邊。但是,有一個簡單的解決方案。通過添加一個垂直邊框或填充,空白邊就不再疊了,而且元素的高度就是它包含的子元素的頂部和底部空白邊邊緣之間的距離。

  為了讓前面的示例看起來像圖1-1這樣,只需在div周圍添加補白或邊框:

  1. #box{  
  2. margin:10px;  
  3. padding:1px;/*或者border:1pxsolidcolor;*/  
  4. background-color:#d5d5d5;  
  5. }  
  6. p{  
  7. margin:20px;  
  8. background-color:#6699ff;  
  9. }  
  10.  

  邊l界疊加的大多數問題可以通過添加透明邊框或1px的補白來修復。

補充解決方案:

  1.外層padding

  2.透明邊框border:1pxsolidtransparent;

  3.絕對定位postion:absolute:

  4.外層DIVoverflow:hidden;

  5.內層DIV 加float:left;display:inline;

  6.外層DIV有時會用到zoom:1;

【編輯推薦】

  1. Firefox下margin-top失效解決技巧
  2. IE6.0對padding的解讀分析
  3. CSS樣式表高效使用八大秘訣
  4. CSS中margin參數省略原則
  5. IE6中常見CSS兼容性解決十大技巧

 

責任編輯:佚名 來源: 236web.com
相關推薦

2010-09-02 15:54:54

CSS邊界疊加

2010-08-31 10:17:52

CSSmargin邊界疊加

2010-08-26 12:59:29

marginCSS

2010-12-21 17:39:59

2010-09-02 15:18:42

CSSASP.NET

2010-08-31 16:09:04

DIV+CSS

2010-12-24 13:05:22

2010-09-07 13:24:18

CSS

2010-08-26 08:45:32

margin:0pxa

2010-09-07 09:08:03

DIV彈出層

2024-09-18 00:15:58

2019-10-08 16:05:19

Redis數據庫系統

2010-09-01 14:51:12

CSSIEFirefox

2015-05-12 16:31:22

Elasticsear開源分布式搜索引擎

2010-09-13 17:15:59

margin-top

2010-06-12 12:46:04

Grub Rescue

2022-04-07 07:31:30

CSSCSS Reset前端

2009-08-03 18:06:28

JS性能問題

2010-08-26 13:24:15

CSSmargin

2016-09-27 21:14:53

JavaURL
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 天天噜天天干 | 国产视频第一页 | 在线不卡 | 欧美精品黄 | 亚洲成人毛片 | 国产ts人妖另类 | 久久久久国产一区二区三区 | 欧美久久一区 | 欧美精品在线一区二区三区 | 精品综合 | 亚洲精品一区国语对白 | 久久综合久久久 | 日本天堂视频 | 91麻豆精品国产91久久久更新资源速度超快 | 国产成人精品一区二三区在线观看 | 91欧美精品成人综合在线观看 | 中文av字幕 | 欧美精品中文字幕久久二区 | 婷婷国产一区 | 欧美色综合一区二区三区 | 日韩成人在线免费观看 | 91九色porny首页最多播放 | 先锋资源网 | 欧美xxxⅹ性欧美大片 | 亚洲第一福利视频 | 欧美在线a| 男人av的天堂 | 黄色片网站在线观看 | 日韩成人免费视频 | 黄网站免费在线 | 免费久久视频 | 久久99精品久久久久蜜桃tv | 夜夜夜久久久 | 人人艹人人爽 | 国产麻豆乱码精品一区二区三区 | 久久国产精品亚洲 | 蜜桃传媒一区二区 | 欧美区在线 | 国产福利久久 | 日韩欧美国产一区二区三区 | 全免一级毛片 |