最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

  發(fā)布時間:2014-10-22 09:52:10   作者:佚名   我要評論
margin 簡寫屬性在一個聲明中設置所有外邊距屬性。該屬性可以有 1 到 4 個值。這個簡寫屬性設置一個元素所有外邊距的寬度,或者設置各邊上外邊距的寬度。塊級元素的垂直相鄰外邊距會合并,而行內元素實際上不占上下外邊距。行內元素的的左右外邊距不會合并。

一、屬性介紹

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

二、常見問題

1.IE6下浮動元素雙倍邊距問題
解決方法:
IE6中設置block元素display:inline;
.l{margin-left:20px;float:left;display:inline;}
原因:首先,inline元素和inline-block元素是沒有雙倍邊距的。對inline元素設置float后,會有個haslayout,使inline元素具有inline-block元素的特性,進而可以設置垂直margin、padding、width、height。

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

b)實例:


復制代碼
代碼如下:

<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測試效果相同。但是有個疑問,去掉out的邊框后,其高度計算為0,不知道什么原因?

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


復制代碼
代碼如下:

<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效果效果相同,此時inner01的margin-top:并沒有起作用,這就是為什么很多人在網(wǎng)上問,我設置margin-top,margin-bottom不起作用的原因了!如下圖:

情形三:毗鄰的元素


復制代碼
代碼如下:

<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中的最大值。如下圖:

此時我們看到重疊也有重疊的好處

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

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

三、常見margin負值應用

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

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


復制代碼
代碼如下:

<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;}
設置.date{text-align:right;display:block;margin-top:-24px;},這時就不需要使用浮動來布局了

3.在選項卡等邊框線的處理
當前選中的選項卡下邊框顏色要設置選中色同時,內容的div上邊框要設置margin-top:-1px;

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


復制代碼
代碼如下:

<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=前端開發(fā)
</div>

四、新聞列表邊框

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


復制代碼
代碼如下:

<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

相關文章

  • 淺談css margin重疊

    下面小編就為大家?guī)硪黄獪\談css margin重疊。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-19
  • CSS 之margin知識點(必看)

    下面小編就為大家?guī)硪黄狢SS 之margin知識點(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-07-10
  • css布局之負margin妙用及其他實現(xiàn)

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

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

    這篇文章和大家詳細說一說CSS中margin屬性的使用,重點描述了關于margin,我們日常不太容易發(fā)現(xiàn)的“坑,感興趣的小伙伴們可以參考一下
    2016-02-25
  • 深入解析CSS中margin屬性的使用

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

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

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

最新評論

揭东县| 新蔡县| 南投县| 泸溪县| 康乐县| 竹溪县| 肥乡县| 札达县| 吉安县| 澄城县| 邵东县| 乃东县| 大石桥市| 中江县| 永春县| 新乡县| 蒲城县| 达拉特旗| 万源市| 渝北区| 元谋县| 莱芜市| 巩留县| 南郑县| 鱼台县| 宁海县| 望江县| 新营市| 阳朔县| 丘北县| 诸城市| 西充县| 柞水县| 吉林省| 上林县| 革吉县| 天气| 镶黄旗| 焦作市| 杭州市| 荣成市|