CSS中的居中:水平居中外潜, 垂直居中

1. 水平居中

(1)是不是行內元素(inlin-*)精续?

主要使用text-align: center; 來實現(xiàn),例如:

header, nav {
  text-align: center;
  background: white;
  margin: 20px 0;
  padding: 10px;
}

<!-- HTML -->
<header>
  This text is centered.
</header>

(2)是不是塊元素(block)婚脱?

塊元素(block-level element)今魔,要將它的margin-left , margin-right設置為auto, 另外需要將它設置一個width:200px勺像,否則它的寬度會占滿最大寬度 ,而這樣就沒有水平居中的必要了错森。
不管該塊元素或者其父元素寬度設置為多少吟宦,它都會生效。
.center-me { margin: 0 auto; }

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <style>
    body {
      background: #f06d06;
    }

    main {
      background: white;
      margin: 20px 0;
      padding: 10px;
    }

    .center {
      margin: 0 auto;
      width: 200px;
      background: black;
      padding: 20px;
      color: white;
    }
  </style>

</head>

<body translate="no">
  <main>
    <div class="center">
      I'm a block level element and am centered.
    </div>
  </main>

</body>

</html>

特別注意:不能通過float一個元素來居中涩维⊙晷眨看這里 https://css-tricks.com/float-center/

(3)是不是多個塊元素?

如果你有兩個或多個塊級元素需要在一行中水平居中瓦阐,最好讓它們成為不同的display類型辰狡。這是一個使它們成為inline-block的例子和一個flexbox的例子:

<main class="inline-block-center">
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row.
  </div>
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row. I have more content in me than my siblings do.
  </div>
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row.
  </div>
</main>

<main class="flex-center">
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row.
  </div>
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row. I have more content in me than my siblings do.
  </div>
  <div>
    I'm an element that is block-like with my siblings and we're centered in a row.
  </div>
</main>
body {
  background: #f06d06;
  font-size: 80%;
}

main {
  background: white;
  margin: 20px 0;
  padding: 10px;
}

main div {
  background: black;
  color: white;
  padding: 15px;
  max-width: 125px;
  margin: 5px;
}

.inline-block-center {
  text-align: center;
}
.inline-block-center div {
  display: inline-block;
  text-align: left;
}

.flex-center {
  display: flex;
  justify-content: center;
}

如果多個塊元素需要分多行居中顯示,這個時候使用前面的margin: 0 auto是生效的垄分。

2. 垂直居中

垂直居中在CSS中是比較棘手的宛篇。

(1) 是不是行內元素? inline or inline-* elements (like text or links)

A. 是不是單行薄湿?

上下有相等的padding值叫倍,會讓它居中。

.link {
  padding-top: 30px;
  padding-bottom: 30px;
}

如果由于某種原因填充不是一個選項豺瘤,并且你試圖將一些你知道不會換行的文本居中吆倦,那么就有一個技巧是:使得line-height等于height

B. 是不是多行坐求?

padding-top和padding-bottom的相等也可以為多行文本提供居中效果蚕泽。如果這不起作用,可能是因為文本元素在一個table cell桥嗤,或者表面上通過CSS表現(xiàn)得像是一個table cell须妻。
在這種情況下,vertical-align屬性處理這個問題泛领,與處理行上對齊元素的對齊方式不同荒吏。

TODO......

(2) 是不是塊元素(block-level)?

A.知道元素的height 渊鞋?

B.不知道元素的height 绰更?

C.能用flex布局嗎 ?

這個就非常簡單了锡宋,直接使用列式布局方向:

.parent {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

https://css-tricks.com/centering-css-complete-guide/

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末儡湾,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子执俩,更是在濱河造成了極大的恐慌徐钠,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奠滑,死亡現(xiàn)場離奇詭異丹皱,居然都是意外死亡妒穴,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門摊崭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來讼油,“玉大人,你說我怎么就攤上這事呢簸“ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵根时,是天一觀的道長瘦赫。 經(jīng)常有香客問我,道長蛤迎,這世上最難降的妖魔是什么确虱? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮替裆,結果婚禮上校辩,老公的妹妹穿的比我還像新娘。我一直安慰自己辆童,他們只是感情好宜咒,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著把鉴,像睡著了一般故黑。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上庭砍,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天场晶,我揣著相機與錄音,去河邊找鬼逗威。 笑死峰搪,一個胖子當著我的面吹牛岔冀,可吹牛的內容都是我干的凯旭。 我是一名探鬼主播,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼使套,長吁一口氣:“原來是場噩夢啊……” “哼罐呼!你這毒婦竟也來了?” 一聲冷哼從身側響起侦高,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤嫉柴,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后奉呛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體计螺,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡夯尽,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了登馒。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片匙握。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖陈轿,靈堂內的尸體忽然破棺而出圈纺,到底是詐尸還是另有隱情,我是刑警寧澤麦射,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布蛾娶,位于F島的核電站,受9級特大地震影響潜秋,放射性物質發(fā)生泄漏蛔琅。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一峻呛、第九天 我趴在偏房一處隱蔽的房頂上張望揍愁。 院中可真熱鬧,春花似錦杀饵、人聲如沸莽囤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朽缎。三九已至,卻和暖如春谜悟,著一層夾襖步出監(jiān)牢的瞬間话肖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工葡幸, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留最筒,地道東北人。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓蔚叨,卻偏偏與公主長得像床蜘,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蔑水,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案邢锯? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,754評論 1 92
  • 1. 前言 前端圈有個“梗”:在面試時搀别,問個css的position屬性能刷掉一半人丹擎,其中不乏工作四五年的同學。在...
    YjWorld閱讀 4,453評論 5 15
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML標準蒂培。 注意:講述HT...
    kismetajun閱讀 27,489評論 1 45
  • 1.絕對定位居中技術 我們一直用margin:auto實現(xiàn)水平居中再愈,而一直認為margin:auto不能實現(xiàn)垂直居...
    DecadeHeart閱讀 1,606評論 0 3
  • 今天我們學的課文是《彩虹》,我還沒有見過彩虹呢护戳,我只在書上還有手機鎖手機上見過彩虹践磅,我問媽媽,彩虹是怎樣形成的呢灸异?...
    段智耀閱讀 50評論 0 0