【技巧】負margin是什么玩意(使用一)

以下內容均為個人整理的觀點,一個個字碼出來的嘉汰,不喜勿噴
負margin的理論上一篇大概說了一下,那么到底該怎么使用呢钞诡?
根據日常開發(fā)和網上整理郑现,大概整理了以下幾個常用案例


1.水平垂直居中

水平垂直居中

思路:

  • 外層父級為outer,內部元素為box
  • 因為不知道父級元素的寬高荧降,所以我們需要考慮怎么控制box塊
  • 首先讓box相對于outer定位接箫,當然left和top都是50%。(效果如圖)


    絕對定位后的位置
  • 然后就要考慮讓元素向左移動自身的一半(box寬100高100)朵诫,向上移動自身的一半辛友。此時再使用定位屬性的left和top明顯是不現實的。
  • 所以怎樣讓box向左移動和向上移動呢剪返?還記得上一篇說負margin的圖嗎废累?


    各方向的負margin情況
  • 所以此時直接設置box,margin-top和margin-left都為-50px脱盲,就可以解決問題(當然css3的transform也可以邑滨,這里直說負margin)
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       .outer{
          width: 400px;height: 300px;background-color: >#ccc;position: relative;
       }
     .outer .box{
           width: 100px;height: 100px;background-color: coral;
           position: absolute;left:50%;top: 50%;
           margin-left: -50px;margin-top:-50px;
      }
   </style>
</head>
<body>
   <div class="outer">
       <div class="box"></div>
   </div>
</body>
</html>

2.去除列表的右邊距

如圖,這樣的布局钱反,我們對圖片列表每一個元素都設置右邊的margin掖看,這樣就不用單獨給最右邊元素單獨設置類名(當然,這樣很明顯很麻煩)面哥。但是最右邊一列的元素的右margin是多余的哎壳。


看最后一列多余的右margin
  • 假設列表每一個元素寬200px,間隙20px尚卫,但是外層水平居中的包裹元素只有640px的寬怎么辦归榕?硬要是塞進去,那么肯定一行放不下3個(每一元素占用寬度200+20吱涉,三個就是660px)刹泄。就會出現以下結果:


    被擠下去了
  • 所以我們在多嵌套一層結構,結構如下:
<div class="outer">
   <ul class="box">
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
       <li><img src="./01.jpg" alt=""></li>
   </ul>
</div>

outer父級已經設置好了640px的寬度怎爵,但是如果想要達到一排放3個列表元素循签,那么box必須660px,這時候怎么辦呢?(這里只講授負margin的方法)

  • box不設置寬度疙咸,是不是和outer一樣寬县匠,都是640px,當我們給box設置margin-right:-20px,這個時候box依然會和outer一樣寬乞旦,那么box真實內容區(qū)域是不是已經到了660px呢贼穆?這樣是不是就放下3列了嗎?
  • 但是outer仍然是640px兰粉,所以outer設置margin:0 auto后故痊,仍然能保持真正的居中。css代碼如下:
      *{margin:0;padding:0;list-style: none;}
       .outer{
           width:640px;
           margin: 0 auto;
       }
       .box{
           overflow: hidden;/*清浮動*/
           margin-right: -20px;
       }
       .box li{
           float: left;width: 200px; margin-right: 20px;
       }

3.去除多余的邊框線

  • 看下圖有沒有別扭的地方


    image.png

    很明顯為了方便書寫玖姑,每一個列表都設置了下邊框(紅色)愕秫,但是最后一個下邊框多余了。
    你有想到怎么寫嗎?思考一下我們margin各個方向負值得那個圖焰络?


    嚕啦啦
  • 我們如果給里邊的列表元素寫一個margin-bottom:-1px戴甩,那么列表元素的下邊框是不是就被后邊的元素覆蓋住了?
  • 但是除了最后一個列表元素闪彼,其他元素雖然有1像素的覆蓋甜孤,但是不影響顯示,而最后一個列表元素會被父級的下邊框覆蓋(要給父元素設置overflow:hidden 超出隱藏)
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Title</title>
   <style>
       *{margin:0;padding: 0;list-style: none;}
       .box{
           border: 1px solid #000000;width: 300px;text-align: center;overflow: hidden;
       }
       .box li{
           border-bottom: 1px solid red;margin-bottom: -1px;
       }
   </style>
</head>
<body>
<ul class="box">
   <li>今天的北京天氣真好畏腕,就是不暖和</li>
   <li>今天的北京天氣真好缴川,就是不暖和</li>
   <li>今天的北京天氣真好,就是不暖和</li>
   <li>今天的北京天氣真好描馅,就是不暖和</li>
   <li>今天的北京天氣真好把夸,就是不暖和</li>
   <li>今天的北京天氣真好,就是不暖和</li>
   <li>今天的北京天氣真好铭污,就是不暖和</li>
</ul>
</body>
</html>

小伙伴自己動手練習一下噻


內容結束知識不結束
負margin的作用其實有很多恋日,比如還有

  • 3D文字特效


    image.png
  • 微調元素位置

  • 利用負margin制作自適應左右布局


    image.png
  • 制作元素重疊


    image.png
  • 在Tab選項卡中的應用(如圖)


    tab布局

寫在后邊--結束語
負margin因為可以自身不添加額外標記就能定位元素的能力,并且兼容性強大而顯得特別重要况凉。我們會越來越發(fā)現布局中負margin的方便。

image.png
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末各拷,一起剝皮案震驚了整個濱河市刁绒,隨后出現的幾起案子,更是在濱河造成了極大的恐慌烤黍,老刑警劉巖知市,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異速蕊,居然都是意外死亡嫂丙,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門规哲,熙熙樓的掌柜王于貴愁眉苦臉地迎上來跟啤,“玉大人,你說我怎么就攤上這事∮绶剩” “怎么了竿奏?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長腥放。 經常有香客問我泛啸,道長,這世上最難降的妖魔是什么秃症? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任候址,我火速辦了婚禮,結果婚禮上种柑,老公的妹妹穿的比我還像新娘岗仑。我一直安慰自己,他們只是感情好莹规,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布赔蒲。 她就那樣靜靜地躺著,像睡著了一般良漱。 火紅的嫁衣襯著肌膚如雪舞虱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天母市,我揣著相機與錄音矾兜,去河邊找鬼。 笑死患久,一個胖子當著我的面吹牛椅寺,可吹牛的內容都是我干的。 我是一名探鬼主播蒋失,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼返帕,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了篙挽?” 一聲冷哼從身側響起荆萤,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎铣卡,沒想到半個月后链韭,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡煮落,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年敞峭,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝉仇。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡旋讹,死狀恐怖殖蚕,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情骗村,我是刑警寧澤嫌褪,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站胚股,受9級特大地震影響笼痛,放射性物質發(fā)生泄漏。R本人自食惡果不足惜琅拌,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一缨伊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧进宝,春花似錦刻坊、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至未玻,卻和暖如春灾而,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背扳剿。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工旁趟, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人庇绽。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓锡搜,卻偏偏與公主長得像,于是被迫代替她去往敵國和親瞧掺。 傳聞我的和親對象是個殘疾皇子耕餐,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • 以下內容均為個人整理的觀點辟狈,一個個字碼出來的肠缔,不喜勿噴 1. 前言 前言我也不知道寫什么,是不是寫了就感覺自己像一...
    李李李李李曉華閱讀 2,696評論 8 15
  • 一上陕、CSS入門 1桩砰、css選擇器 選擇器的作用是“用于確定(選定)要進行樣式設定的標簽(元素)”拓春。 有若干種形式的...
    寵辱不驚丶歲月靜好閱讀 1,598評論 0 6
  • 人是個很奇怪的動物释簿,不知什么時候就會從心底萌出什么奇怪的詭異的想法。我就是這樣的一個人硼莽,你呢庶溶? 201...
    Ma瑞敏閱讀 304評論 0 2
  • 天階小雨潤如酥煮纵,草色遙看近卻無。 我的腦子好像出現了這樣一番景象偏螺,每當我看書行疏,總有些斷斷續(xù)續(xù)的話涌出來,翻過一頁又...
    愛幻想的薄荷糖閱讀 150評論 0 0