国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

margin相關基本知識

godiscoder / 1206人閱讀

摘要:也能用于內聯元素這是規范所允許的的和屬性對非替換內聯元素無效例如和。解決方法把左側塊級元素更改為內聯元素,比如把更換為。

什么是 margin ?

CSS 邊距屬性定義元素周圍的空間。通過使用多帶帶的屬性,可以對上、右、下、左的外邊距進行設置。也可以使用簡寫的外邊距屬性同時改變所有的外邊距。——W3School
邊界,元素周圍生成額外的空白區。“空白區”通常是指其他元素不能出現且父元素背景可見的區域。——CSS權威指南

概述

margin屬性為給定元素設置所有四個(上下左右)方向的外邊距屬性。這是四個外邊距屬性設置的簡寫。四個外邊距屬性設置分別是: margin-top, margin-right, margin-bottom 和 margin-left 。指定的外邊距允許為負數。

語法

margin : [  |  | auto ]{1,4}
    

取值

margin 可取1~4個值,值類型如下

length

指定一個固定的寬度。可以為負數

percentage

百分比相對于該元素的包含塊的寬度(相對于該塊的百分比)。該值可以為負數。

auto

瀏覽器會自動選擇一個合適的margin來應用。它可以用于將一個塊居中。

  • 只有一個 值時,這個值會被指定給全部的 四個邊.
  • 兩個 值時,第一個值被匹配給 上和下, 第二個值被匹配給 左和右.
  • 三個 值時,第一個值被匹配給 上, 第二個值被匹配給 左和右, 第三個值被匹配給 下.
  • 四個 值時,會依次按 上、右、下、左 的順序匹配 (即順時針順序).

特性

margin始終是透明的(父元素設置背景, margin區域可見的)

參考線

在margin屬性中一共有兩類參考線,top和left的參考線屬于一類,right和bottom的參考線屬于另一類。top和left是以外元素為參考,right和bottom是以元素本身為參考。margin的位移方向是指margin數值為正值時候的情形,如果是負值則位移方向相反。


總結:

1: margin-top和 margin-left 值得偏移相對于相鄰元素margin或border; 如果沒有相鄰元素則包含容器的content邊為及基準

2: margin-bottom和 margin-right 相對于自身進行偏移

常見的問題

垂直外邊距合并

外邊距合并指的是,當兩個垂直外邊距相遇時,它們將形成一個外邊距。合并后的外邊距的高度等于兩個發生合并的外邊距的高度中的較大者。

合并幾種情況 W3Shool CSS外邊距合并

  • 相鄰元素間的合并
  • 包含元素間的合并(假設沒有內邊距或邊框把外邊距分隔開)
  • 元素自身的合并(空元素,它有外邊距,但是沒有邊框或填充padding)

margin在塊元素、內聯元素中的區別

margin 在塊級元素下, 他的特性可以完全體現, 上下左右任你設定。

margin也能用于內聯元素,這是規范所允許的 margin的top和bottom屬性對非替換內聯元素無效, 例如

常見的瀏覽器下margin出現的bug

IE6中雙邊距Bug:

發生場合:當給父元素內第一個浮動元素設置margin-left(元素float:left)或margin-right(元素float:right)時margin加倍。

解決方法:是給浮動元素加上display:inline;CSS屬性;或者用padding-left代替margin-left。

原理分析:塊級對象默認的display屬性值是block,當設置了浮動的同時,還設置了它的外邊距就會出現這種情況。也許你會問:“為什么之后的對象和第一個對象之間就不存在雙倍邊距的Bug”?因為浮動都有其相對應的對象,只有相對于其父對象的浮動對象才會出現這樣的問題。第一個對象是相對父對象的,而之后對象是相對第一個對象的,所以之后對象在設置后不會出現問題。為什么display:inline可以解決這個雙邊距bug,首先是inline元素或inline-block元素是不存在雙邊距問題的。然后,float:left等浮動屬性可以讓inline元素haslayout,會讓inline元素表現得跟inline-block元素的特性一樣,支持高寬,垂直margin和padding等,所以div class的所有樣式可以用在這個display inline的元素上。

IE6中浮動元素3px間隔Bug:

發生場合:發生在一個元素浮動,然后一個不浮動的元素自然上浮與之靠近會出現的3px的bug。

解決方法:右邊元素也一起浮動。

原理分析:IE6瀏覽器缺陷Bug。

IE6/7負margin隱藏Bug:

發生場合:當給一個有hasLayout的父元素內的非hasLayout元素設置負margin時,超出父元素部分不可見。

解決方法:去掉父元素的hasLayout;或者賦hasLayout給子元素,并添加position:relative;

原理分析:IE6/7獨有的hasLayout產生問題。

IE6/7下ul/ol標記消失bug:

發生場合:當ul/ol觸發了haslayout并且是在ul/ol上寫margin-left,前面默認的ul/ol標記會消失。

解決方法:給li設置margin-left,而不是給ul/ol設置margin-left。

原理分析:IE6/7瀏覽器Bug

IE6/7下margin與absolute元素重疊bug:

發生場合:雙欄自適應布局中,左側元素absolute絕對定位,右側的margin撐開距離定位。在IE6/7下左側應用了absolute屬性的塊級元素與右邊的自適應的文字內容重疊。

解決方法:把左側塊級元素更改為內聯元素,比如把div更換為span。

原理分析:這是由于IE6/IE7瀏覽器將inline水平標簽元素和block水平的標簽元素沒有加以區分一視同仁渲染了。屬于IE6/7瀏覽器渲染Bug。

IE6/7/8下auto margin居中bug:

發生場合:給block元素設置margin auto無法居中

解決方法:出現這種bug的原因通常是沒有Doctype,然后觸發了ie的quirks mode,加上Doctype聲明就可以了。在《打敗IE的葵花寶典》里給出的方法是給block元素添加一個width能夠解決,但根據本人親測,加with此種方法是無效的,如果沒有Doctype即使給元素添加width也無法讓block元素居中。

原理分析:缺少Doctype聲明。

IE8下input[button | submit] 設置margin:auto無法居中

發生場合:ie8下,如果給像button這樣的標簽(如button input[type="button"] input[type="submit"])設置{ display: block; margin:0 auto; }如果不設置寬度的話無法居中。

解決方法:可以給為input加上寬度

原理分析:IE8瀏覽器Bug。

IE8百分比padding垂直margin bug:

發生場合:當父元素設置了百分比的padding,子元素有垂直的margin的時候,就好像父元素被設置了margin一樣。

解決方法:給父元素加一個overflow:hidden/auto。

原理分析:IE8瀏覽器Bug。

參考

海玉 W3C

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/1635.html

相關文章

  • CSS布局相關基本概念

    摘要:當一個元素從正常文檔流中抽出后,仍然在文檔流中的其他元素將忽略該元素并填補他原先的空間基于文檔流,理解定位模式相對定位,即相對于元素在文檔流中位置進行偏移。絕對定位,即完全脫離文檔流,相對于屬性非值的最近父級元素進行偏移。 主要參考文檔:http://www.zhangxinxu.com/wor...https://www.cnblogs.com/dojo-... 測試例子:https...

    wangxinarhat 評論0 收藏0
  • 深入css布局 (3)完結 — margin問題與格式化上下文

    ? 深入css布局(3) — margin問題與格式化上下文 ? ???? 在css知識體系中,除了css選擇器,樣式屬性等基礎知識外,css布局相關的知識才是css比較核心和重要的點。今天我們來深入學習一下css布局相關的知識。 ? css布局篇已經講個2篇了,前面我們深入講解了 盒模型與box-sizing, 元素分類,行框,定位與浮動等知識點。今天呢,我們把css布局篇做一個結尾,最后...

    blankyao 評論0 收藏0
  • CSS相關面試題——三欄等高布局

    摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應。代碼如下效果如下所示乍一看實現了三列布局,但是題目要求等高,這個可就麻煩了。 題目 最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應。要求三欄的高度隨最高的一欄展示 解題 step1 常規拿到這個面試題,首先想到的是三個盒子左浮動右浮動...

    Taste 評論0 收藏0
  • CSS相關面試題——三欄等高布局

    摘要:題目最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度,中間欄寬度自適應。代碼如下效果如下所示乍一看實現了三列布局,但是題目要求等高,這個可就麻煩了。 題目 最近在面試中遇到過這樣一道面試題,讓寫出左中右,三欄布局,左欄右欄固定寬度200px,中間欄寬度自適應。要求三欄的高度隨最高的一欄展示 解題 step1 常規拿到這個面試題,首先想到的是三個盒子左浮動右浮動...

    fsmStudy 評論0 收藏0
  • 垂直居中相關知識總結

    摘要:垂直居中相關知識總結前言工作中用到了很多關于垂直居中相關的知識之前,在上提問了個問題關于垂直居中,大家有沒有什么比較好的建議。 垂直居中相關知識總結 前言 工作中用到了很多關于垂直居中相關的知識之前,在SF上提問了個問題CSS關于垂直居中,大家有沒有什么比較好的建議。非常感謝各位前輩對我的幫助,前輩們給的答案都非常多也各式各樣,我覺得有必要把大家的回答總結一下。 方法總結 一、絕對定...

    Labradors 評論0 收藏0

發表評論

0條評論

godiscoder

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<