1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          margin屬性總結,你想知道的這里都有

          來源:互聯網轉載 時間:2024-01-29 08:21:06

          一、前言

          在學習CSS時,遇到的很多問題都是和margin有關,這個小怪獸總是出其不意的讓我的界面排版變的混亂,還讓人摸不著頭腦,原因還是在于我對他的一些屬性沒有進行一個深入的了解,導致我在設計之初就忽略了一些潛在的bug。所以本文就margin屬性以及常見的問題做一個總結歸納。

          二、什么是margin

          CSS 邊距屬性定義元素周圍的空間。通過使用單獨的屬性,可以對上、右、下、左的外邊距進行設置。也可以使用簡寫的外邊距屬性同時改變所有的外邊距?!猈3School

          邊界,元素周圍生成額外的空白區?!翱瞻讌^”通常是指其他元素不能出現且父元素背景可見的區域?!狢SS權威指南

          是不是看到以上的權威解釋還是不明所以?別急,我畫個圖你就明白了。

          還不明白?那好,我給你舉個栗子,假設你住在一個別墅區,每棟別墅都是一個元素, 既然是別墅了那怎么著也得有個圍墻吧(當然也可以沒有,純粹取決于業主喜不喜歡)。圍墻就相當于上圖的border邊界(灰色區域),圍墻與房子(上圖的child即元素內容)之間的空間就是padding內邊距(黃色區域),而圍墻之外的空間就是外邊距margin了(紫色區域),你可以當做是別墅與別墅之間的空間距離。margin存在的目的就是控制元素之間的間隔使頁面排版更加的美觀整齊,但它不屬于元素的私有財產,在計算元素大小的時候可不要把margin算在內哦,畢竟你總不能把你家門口空氣算作你自己的吧,那太霸道啦!看到這里你是不是對margin的作用范圍有了大致的了解了,如果還不清楚,請繼續往下看呀~

          三、margin的特性

          1、margin始終透明。這個特性其實可以這么理解,margin存在的目的就是為了隔開不同的元素使布局更加的美觀,如果margin不是透明的就無法讓不同的元素產生間隙達到隔開的目的還會影響其他布局,所以margin必須是透明的。

          2、簡寫特性。margin屬性可以設置4個值,分別是margin:top right bottom left;(可以按照順時針的方式記憶,即:上右下左。順序不能亂),這四個值也可以單獨設置,即:margin-top、margin-bottom、margin-right、margin-left。除了可以單獨設置之外,margin還可以進行簡寫(如非必要,不建議使用第三種簡寫),基本如下:

          • margin只有一個值,表示top、right、bottom、left都是同一個值。例如:margin:10px等價于margin:10px 10px 10px 10px;
          • margin只有兩個值,第一值表示top、bottom的值,第二個值表示right、left的值。例如:margin:10px 20px等價于margin:10px 20px 10px 20px;
          • margin只有三個值,第一個值表示top的值,第二個值表示right、left的值,第三個值表示bottom的值。例如:margin:10px 20px 30px等價于margin:10px 20px 30px 20px;

          3、垂直方向外邊距合并。塊級元素的上外邊距(margin-top)與下外邊距(margin-bottom)有時會合并為一個外邊距,這樣的現象稱為“margin合并”。只發生在與當前文檔流方向相垂直的方向上,并且只能是塊級元素。

          四、margin合并的三種場景(縱向重疊)

          1、相鄰兄弟元素margin合并。這是margin合并中最常見、最基本的。例如:

           p {        margin: 1em 0;        background-color: pink;    }<p>第一行</p><p>第二行</p>

          效果圖:

          第一行和第二行的間距還是1em,因為第一行的margin-bottom和第二行的margin-top合并在了一起,并非上下相加。

          2、父級和第一個/最后一個子元素合并。

           1 <style> 2     .grandfather { 3         border: 2px solid red; 4         width: 300px; 5         height: 300px; 6     } 7  8     .father { 9         width: 200px;10         height: 200px;11         background-color: yellow;12     }13 14     .son {15         margin: 2em 0;16         background-color: pink;17     }18 </style>19 20 <body>21     <p >22         <p >23             <p >this is son</p>24         </p>25     </p>
          View Code

          效果圖:

          當給子元素添加外邊距之后,父元素和子元素的上外邊距(margin-top)發生了合并,導致父元素上外邊距等同于變成了子元素的上外邊距(合并的外邊距值若都為正,則外邊距取兩者的最大值)造成了視覺上的父元素塌陷但實際父元素的上外邊距的值并未改變。如何阻止這里margin合并的發生呢?

          對于margin-top合并,可以進行如下操作(滿足一個條件即可):

          • 父級元素設置為塊狀格式化上下文元素(設置BFC),比如:給父級元素添加overflow:hidden;(推薦)
          • 父元素設置border-top值;
          • 父元素設置padding-top的值;
          • 父元素和第一個子元素之間添加內聯元素進行分隔

          對于margin-bottom合并,可以進行如下操作(滿足一個條件即可):

          • 父級元素設置為塊狀格式化上下文元素
          • 父級元素設置border-bottom值
          • 父級元素設置padding-bottom值
          • 父級元素和最后一個子元素之間添加內聯元素進行分隔
          • 父級設計height、min-height或max-height

          上面例子中在.father中添加overflow:hidden效果如下:

          3、空塊級元素的margin合并。例如:

           .father {        overflow: hidden;    }.son {        margin: 1em 0;    } <p >        <p ></p> </p>

          效果圖:

          此時,.father所在的這個父級<p>元素高度僅僅是1em,因為.son這個空<p>元素的margin-top和margin-bottom合并在了一起。

          四、margin負值問題

          1. margin-top和margin-left負值,元素向上、向左移動
          2. margin-right負值,右側元素左移,自身不受影響
          3. margin-bottom負值,下方元素上移,自身不受影響

          案列展示:

          (1)margin-top為負值

          (2)margin-left為負值

          (3)margin-right為負值

          (4)margin-bottom為負值

          五、margin無效的問題

          1、display:inline的非替換元素的垂直margin無效,對于內聯替換元素垂直margin有效,并且沒有margin合并的問題,所以圖片永遠不會發生margin合并。

          2、表格中的<tr>和<td>元素或者設置display計算值是table-cell或table-row的元素的margin都是無效的。但是如果計算值是table-caption、table或者inline-table則沒有此問題,可以通過margin控制外間距,甚至::first-letter偽元素也可以解析margin。

          3、margin合并的時候,更改margin值可能是沒有效果的。以父子margin重疊為例,假設父元素設置有margin-top:50px,則此時子元素設置margin-top:30px就沒有任何效果表現,除非大小比50px大,或者是負值。

          4、絕對定位元素非定位方向的margin值“無效”。因為絕對定位元素的渲染是獨立的,普通元素和兄弟元素是互相關聯的,但是絕對定位元素由于獨立渲染無法和兄弟元素產生聯系,因此margin無法影響兄弟元素定位,所以看上去就是無效的。

          5、定高容器的子元素的margin-bottom或者寬度定死的子元素的margin-right的定位“失效”。這個現象的本質和和上面絕對定位元素非對立方margin值“無效”類似。原因在于,若想使用margin屬性改變自身的位置,必須是和當前元素定位方向一樣的margin屬性才可以,否則,margin只能影響后面的元素或者父元素。

          好了,總結了這么多,我想你應該對margin屬性不陌生了吧,如果對你有幫助,就點個贊吧~

          參考文檔

          https://www.cnblogs.com/zhangmingze/articles/4664074.html

          https://blog.csdn.net/weixin_39855431/article/details/79929135

          http://www.nowamagic.net/librarys/veda/detail/1608

          https://blog.csdn.net/xun__xing/article/details/107334925

          https://www.cnblogs.com/jjucap/p/5339725.html

          標簽:margin屬性-

          網絡推廣與網站優化公司(網絡優化與推廣專家)作為數字營銷領域的核心服務提供方,其價值在于通過技術手段與策略規劃幫助企業提升線上曝光度、用戶轉化率及品牌影響力。這...

          在當今數字化時代,公司網站已成為企業展示形象、傳遞信息和開展業務的重要平臺。然而,對于許多公司來說,網站建設的價格是一個關鍵考量因素。本文將圍繞“公司網站建設價...

          在當今的數字化時代,企業網站已成為企業展示形象、吸引客戶和開展業務的重要平臺。然而,對于許多中小企業來說,高昂的網站建設費用可能會成為其發展的瓶頸。幸運的是,隨...

          唐山三女河機場航班時刻表?來自環渤海新聞網的消息唐山機場自27日起開始運行夏秋航班。上海和廣州的航班時刻表沒有變化。唐山-石家莊-昆明航班時刻比冬春晚10分鐘。唐山-Xi安航班時刻暫停,唐山-宜昌-三亞航班時刻調整。新的時間比以前更方便市民出行。具體為08: 00從三亞起飛,10: 05到達宜昌,10: 45從宜昌起飛,12: 30到達唐山、唐山。實施日期為2012年3月27日至2012年9月30...

          11對戰平臺警告!檢測到不匹配是怎么回事?不運行某些程序的時候,經常會會直接出現出現了,接著該程序就關了。就像再次出現這個現象有方面的,一是硬件,即內存方面有問題,二是軟件,這就有多方面的問題了。故障分析硬件方面:一般來說,內存又出現問題的可能性并不大,比較多方面是:內存條主板壞、內存質量有問題,有應該是2個差別牌子不同容量的內存混插,也也很很容易再次出現不不兼容的情況,同樣的也要注意一點散熱問題...

          100萬日元在日本人眼里算多嗎?很多人認為100萬日元兌換成大約是6萬元,應該不是很多錢。這只是一個完全錯誤的想法。我也是這么想的,因為日本收入高,物價低。但是,當你接觸到年輕一代的日本人,和日劇的情節進行交叉對比,你會發現,實際的100萬日元真的不是一筆小數目。首先,日本人不 他們沒有像人那樣存錢買房的習慣,所以每個月花在租房上的錢占了他們收入的很大一部分。其次,日本服務的價格都很高,每個月想省...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>