亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

CSS屬性探秘系列(六):margin

  發(fā)布時(shí)間:2014-10-22 09:52:10   作者:佚名   我要評(píng)論
margin 簡(jiǎn)寫(xiě)屬性在一個(gè)聲明中設(shè)置所有外邊距屬性。該屬性可以有 1 到 4 個(gè)值。這個(gè)簡(jiǎn)寫(xiě)屬性設(shè)置一個(gè)元素所有外邊距的寬度,或者設(shè)置各邊上外邊距的寬度。塊級(jí)元素的垂直相鄰?fù)膺吘鄷?huì)合并,而行內(nèi)元素實(shí)際上不占上下外邊距。行內(nèi)元素的的左右外邊距不會(huì)合并。

一、屬性介紹

margin 屬性接受任何長(zhǎng)度單位,可以是像素、英寸、毫米或 em。
可取值:
auto 瀏覽器計(jì)算外邊距。
length 規(guī)定以具體單位計(jì)的外邊距值,比如像素、厘米等。默認(rèn)值是 0px。
% 規(guī)定基于父元素的寬度的百分比計(jì)算的外邊距。
inherit 規(guī)定應(yīng)該從父元素繼承外邊距。

二、常見(jiàn)問(wèn)題

1.IE6下浮動(dòng)元素雙倍邊距問(wèn)題
解決方法:
IE6中設(shè)置block元素display:inline;
.l{margin-left:20px;float:left;display:inline;}
原因:首先,inline元素和inline-block元素是沒(méi)有雙倍邊距的。對(duì)inline元素設(shè)置float后,會(huì)有個(gè)haslayout,使inline元素具有inline-block元素的特性,進(jìn)而可以設(shè)置垂直margin、padding、width、height。

2.margin外邊距合并問(wèn)題
外邊距的合并發(fā)生在以下三種情形:
情形一:空塊元素
a)如果一個(gè)塊級(jí)元素沒(méi)有border、padding、inline content、height、min-height來(lái)分隔,設(shè)置margin-top和margin-bottom屬性后會(huì)合并,

b)實(shí)例:


復(fù)制代碼
代碼如下:

<style type="text/css">
body{margin:0;}
.out{width:400px;border:1px solid #f00;margin:0 auto;background-color:#ccc;}
.inner{margin-top:40px;margin-bottom:40px;}
</style>
<div class="out">
<div class="inner"></div>
</div>

從上例可以看出,最后.out computed height為40px;
>=IE8、Firefox、Chrome測(cè)試效果相同。但是有個(gè)疑問(wèn),去掉out的邊框后,其高度計(jì)算為0,不知道什么原因?

情形二:父元素與第一個(gè)或最后一個(gè)子元素
如果塊元素的 margin-top 與它的第一個(gè)子元素之間沒(méi)有border, padding, inline content, 或 clearance 分隔,或者塊元素的 margin-bottom 與它的最后一個(gè)子元素之間沒(méi)有padding, inline content, height, min-height, or max-height 分隔,那么外邊距會(huì)合并。


復(fù)制代碼
代碼如下:

<style type="text/css">
body{margin:0;}
.parent{border:1px dotted #ccc;width:400px;}
.outer{height:50px;background-color:#f00;margin-top:40px;margin-bottom:40px;}
.inner01{margin-top:20px;background:#00f;}
.inner02{margin-bottom:60px;background:#f0f;}
</style>
<div class="parent">
<div class="outer">
<div class="inner01">inner01</div>
<div class="inner02">inner02</div>
</div>
</div>

>=IE6,FF,Chrome效果效果相同,此時(shí)inner01的margin-top:并沒(méi)有起作用,這就是為什么很多人在網(wǎng)上問(wèn),我設(shè)置margin-top,margin-bottom不起作用的原因了!如下圖:

情形三:毗鄰的元素


復(fù)制代碼
代碼如下:

<style type="text/css">
.ulist{margin:0;padding-left:0;list-style:none;width:200px;margin:0 auto;border:1px solid #f00;}
.ulist li{padding-left:0;margin:10px;border:1px dotted #f00;}
</style>
<ul class="ulist">
<li>列表一</li>
<li>列表二</li>
<li>列表三</li>
</ul>

>=IE6,FF,Chrome效果效果相同,重疊部分的取值為margin-top,margin-bottom中的最大值。如下圖:

此時(shí)我們看到重疊也有重疊的好處

注:只有普通文檔流中塊框的垂直外邊距才會(huì)發(fā)生外邊距合并。行內(nèi)框、浮動(dòng)框或絕對(duì)定位之間的外邊距不會(huì)合并。

3.margin不起作用的情況?
行內(nèi)(inline)元素設(shè)置垂直margin不起作用,塊級(jí)元素的margin不好用時(shí),建議使用padding來(lái)代替。

三、常見(jiàn)margin負(fù)值應(yīng)用

1.IE6背景半透明效果按鈕的制作
其就是使用margin負(fù)值定位實(shí)現(xiàn)按鈕下半部分的顏色

2.新聞列表(帶日期的)
這個(gè)是從新浪博客首頁(yè)看到的實(shí)現(xiàn)新聞列表


復(fù)制代碼
代碼如下:

<ul>
<li>new01<span class="date">2014-03-02</span></li>
<li>new02<span class="date">2014-03-02</span></li>
<li>new03<span class="date">2014-03-02</span></li>
<li>new04<span class="date">2014-03-02</span></li>
</ul>

ul li{height:24px;line-height:24px;}
設(shè)置.date{text-align:right;display:block;margin-top:-24px;},這時(shí)就不需要使用浮動(dòng)來(lái)布局了

3.在選項(xiàng)卡等邊框線的處理
當(dāng)前選中的選項(xiàng)卡下邊框顏色要設(shè)置選中色同時(shí),內(nèi)容的div上邊框要設(shè)置margin-top:-1px;

4.圖片與文字對(duì)齊問(wèn)題
方法一:
vertical-align:text-bottom
方法二:
.img{margin:0 5px -2px 0;}
測(cè)試代碼:


復(fù)制代碼
代碼如下:

<style type="text/css">
body{margin:0;font-size:12px;font-family:arial;}
.out{width:400px;border:2px dotted #f00;margin:20px auto;
}
.img{margin:0 5px -2px 0;}
</style>
<div class="out">
<img src="20.png" width="20" height="20" class="img">Benjamin=前端開(kāi)發(fā)
</div>

四、新聞列表邊框

當(dāng)我們使用ul>li寫(xiě)新聞列表需要給li設(shè)置下邊框時(shí),是不是經(jīng)常困惑于最后一條會(huì)多出一個(gè)邊框。如果給最后一條單獨(dú)加個(gè)類(lèi).last{border-bottom:none;}
也能實(shí)現(xiàn)效果。但是這中寫(xiě)法會(huì)有兩個(gè)弊端,弊端一:?jiǎn)为?dú)定義一個(gè)css類(lèi);弊端二,當(dāng)我們使用服務(wù)器端語(yǔ)言輸出數(shù)據(jù)時(shí),還需要單獨(dú)判斷最后一項(xiàng),添加calss類(lèi)。有沒(méi)有好的解決方法呢?當(dāng)然有,那就是margin負(fù)值!
看看下面實(shí)現(xiàn)實(shí)例:


復(fù)制代碼
代碼如下:

<style type="text/css">
.con{width:200px;border:1px solid #f00;}
.con ul{overflow:hidden;margin:0;padding-left:0;margin-bottom:-1px;}
.con ul li{line-height:24px;border-bottom:1px solid #f00;padding-left:10px;}
</style>
</head>
<body>
<div class="con">
<ul>
<li>fdasfd</li>
<li>fdasfd</li>
<li>fdasfd</li>
<li>fdasfd</li>
<li>fdasfd</li>
</ul>
</div>

如圖:

五、參考鏈接

http://www.w3school.com.cn/css/css_margin_collapsing.asp

相關(guān)文章

  • 淺談css margin重疊

    下面小編就為大家?guī)?lái)一篇淺談css margin重疊。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-19
  • CSS 之margin知識(shí)點(diǎn)(必看)

    下面小編就為大家?guī)?lái)一篇CSS 之margin知識(shí)點(diǎn)(必看)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2016-07-10
  • css布局之負(fù)margin妙用及其他實(shí)現(xiàn)

    這篇文章主要為大家詳細(xì)介紹了css布局之負(fù)margin妙用及其他實(shí)現(xiàn)的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • CSS的margin屬性在頁(yè)面布局中的使用攻略

    margin屬性可以決定很多HTML元素的寬高度,因而在布局方面也能夠有很重要的作用,接下來(lái)我們就來(lái)看一下CSS的margin屬性在頁(yè)面布局中的使用攻略
    2016-05-26
  • 細(xì)說(shuō)CSS中margin屬性的使用

    這篇文章和大家詳細(xì)說(shuō)一說(shuō)CSS中margin屬性的使用,重點(diǎn)描述了關(guān)于margin,我們?nèi)粘2惶菀装l(fā)現(xiàn)的“坑,感興趣的小伙伴們可以參考一下
    2016-02-25
  • 深入解析CSS中margin屬性的使用

    這篇文章主要介紹了CSS中的margin屬性的使用,margin是元素盒模型(box model)的基礎(chǔ)屬性,常被用來(lái)設(shè)置外邊距,實(shí)際用途非常廣泛,需要的朋友可以參考下
    2016-02-02
  • CSS中使用負(fù)margin值來(lái)調(diào)整居中位置

    這篇文章主要介紹了CSS中使用負(fù)margin值來(lái)調(diào)整居中位置的方法,文中同時(shí)提到了這種常用方法的一些值得注意的地方,需要的朋友可以參考下
    2015-07-15
  • 解決margin 外邊距合并問(wèn)題

    這篇文章主要介紹了解決margin 外邊距合并問(wèn)題 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-03

最新評(píng)論