偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

CSS的margin邊界疊加深度剖析

邊界疊加簡介

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

  當(dāng)一個元素出現(xiàn)在另一個元素上面時,第一個元素的底邊界與第二個元素的頂邊界發(fā)生疊加,見圖:


  ◆元素的頂邊界與前面元素的底邊界發(fā)生疊加

  當(dāng)一個元素包含在另一個元素中時(假設(shè)沒有填充或邊框?qū)⑦吔绶指糸_),它們的頂和/或底邊界也發(fā)生疊加,見圖:  


  ◆元素的頂邊界與父元素的頂邊界發(fā)生疊加

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

  ◆元素的頂邊界與底邊界發(fā)生疊加

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

  ◆空元素中已經(jīng)疊加的邊界與另一個空元素的邊界發(fā)生疊加

  這就是一系列空的段落元素占用的空間非常小的原因,因?yàn)樗鼈兊乃羞吔缍集B加到一起,形成一個小的邊界。

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

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

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

邊界疊加的問題

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

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

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

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

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

  圖1-1

  但是,產(chǎn)生的樣式實(shí)際上像圖1-2。

  圖1-2

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

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

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

  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界疊加的大多數(shù)問題可以通過添加透明邊框或1px的補(bǔ)白來修復(fù)。

補(bǔ)充解決方案:

  1.外層padding

  2.透明邊框border:1pxsolidtransparent;

  3.絕對定位postion:absolute:

  4.外層DIVoverflow:hidden;

  5.內(nèi)層DIV 加float:left;display:inline;

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

【編輯推薦】

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

 

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

2010-09-02 15:54:54

CSS邊界疊加

2010-08-31 10:17:52

CSSmargin邊界疊加

2010-08-26 12:59:29

marginCSS

2010-09-02 15:18:42

CSSASP.NET

2010-12-21 17:39:59

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

2010-09-01 14:51:12

CSSIEFirefox

2015-05-12 16:31:22

Elasticsear開源分布式搜索引擎

2019-10-08 16:05:19

Redis數(shù)據(jù)庫系統(tǒng)

2010-09-13 17:15:59

margin-top

2022-04-07 07:31:30

CSSCSS Reset前端

2009-08-03 18:06:28

JS性能問題

2010-06-12 12:46:04

Grub Rescue

2010-08-26 13:24:15

CSSmargin

2016-09-27 21:14:53

JavaURL
點(diǎn)贊
收藏

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