css各種居中方法總結(jié)

CSS中的居中可分為水平居中和垂直居中。水平居中分為行內(nèi)元素居中和塊狀元素居中兩種情況等缀,而塊狀元素又分為定寬塊狀元素居中和不定寬塊狀元素居中缨恒。下面詳細介紹這幾種情況。

1.行內(nèi)元素居中

顧名思義栅表,行內(nèi)元素居中是只針對行內(nèi)元素的,比如文本(text)师枣、圖片(img)谨读、按鈕等行內(nèi)元素,可通過給父元素設(shè)置 text-align:center 來實現(xiàn)坛吁。另外劳殖,如果塊狀元素屬性display 被設(shè)置為inline時,也是可以使用這種方法拨脉。但有個首要條件是子元素必須沒有被float影響哆姻,否則一切都是無用功。

2玫膀、塊狀元素居中

(1)矛缨、定寬塊狀元素居中

滿足定寬(塊狀元素的寬度width為固定值)和塊狀兩個條件的元素可以通過設(shè)置“左右margin”值為“auto”來實現(xiàn)居中。

.div1{
     width:200px;
     border:1px solid red;
margin:0 auto;
}
<div class="div1">Hello world</div>

(2)帖旨、不定寬塊狀元素居中

在實際工作中我們會遇到需要為“不定寬度的塊狀元素”設(shè)置居中箕昭,比如網(wǎng)頁上的分頁導航,因為分頁的數(shù)量是不確定的解阅,所以我們不能通過設(shè)置寬度來限制它的彈性落竹。(不定寬塊狀元素:塊狀元素的寬度width不固定。)

有三種方法可以對不定寬塊狀元素進行居中:

方法1:

將要顯示的元素加入到 table 標簽當中货抄,然后為 table 標簽設(shè)置“左右margin”值為“auto”來實現(xiàn)居中述召; 或使用 display : table;然后設(shè)該元素“左右margin”值為“auto”來實現(xiàn)居中蟹地。后面的display:table; 方法會更簡潔积暖。

為什么加入table標簽? 是利用table標簽的長度自適應性---即不定義其長度也不默認父元素body的長度(table其長度根據(jù)其內(nèi)文本長度決定),因此可以看做一個定寬度塊元素怪与,然后再利用定寬度塊狀居中的margin的方法夺刑,使其水平居中。

方法2:

改變塊級元素的 display 為 inline 類型(設(shè)置為 行內(nèi)元素 顯示)分别,然后使用 text-align:center 來實現(xiàn)居中效果遍愿。

這種方法相比第一種方法的優(yōu)勢是不用增加無語義標簽,但也存在著一些問題:它將塊狀元素的 display 類型改為 inline茎杂,變成了行內(nèi)元素错览,所以少了一些功能,比如設(shè)定長度值(變成inline-block就可以設(shè)置寬高)煌往。

方法3:

通過給父元素設(shè)置 float倾哺,然后給父元素設(shè)置 position:relative 和 left:50%轧邪,子元素設(shè)置 position:relative 和 left: -50% 來實現(xiàn)水平居中。

先設(shè)置父元素wrap清除浮動羞海,然后左浮動忌愚。定位讓wrap向右偏移50%。然后定義子元素相對于父元素向左偏移50%却邓。脫離父元素硕糊。加個邊框就可以明白一些了。另外用絕對定位也是可以的腊徙。

二简十、垂直居中

垂直居中可分為父元素高度確定的單行文本,以及父元素高度確定的多行文本撬腾。

1螟蝙、父元素高度確定的單行文本的豎直居中的方法是通過設(shè)置父元素的 height 和 line-height 高度一致來實現(xiàn)的。(height: 該元素的高度民傻,line-height: 顧名思義胰默,行高,指在文本中漓踢,行與行之間的 基線間的距離 )牵署。

2、父元素高度確定的多行文本
有兩種方法:
方法1:

使用插入 table (包括tbody喧半、tr奴迅、td)標簽,同時設(shè)置 vertical-align:middle薯酝。

方法2:

設(shè)置塊級元素的 display 為 table-cell(設(shè)置為表格單元顯示)半沽,激活 vertical-align 屬性。但這種方法兼容性比較差吴菠, IE6、7 并不支持這個樣式浩村。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末做葵,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子心墅,更是在濱河造成了極大的恐慌酿矢,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件怎燥,死亡現(xiàn)場離奇詭異瘫筐,居然都是意外死亡,警方通過查閱死者的電腦和手機铐姚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門策肝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來肛捍,“玉大人,你說我怎么就攤上這事之众∽竞粒” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵棺禾,是天一觀的道長缀蹄。 經(jīng)常有香客問我,道長膘婶,這世上最難降的妖魔是什么缺前? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮悬襟,結(jié)果婚禮上衅码,老公的妹妹穿的比我還像新娘。我一直安慰自己古胆,他們只是感情好肆良,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著逸绎,像睡著了一般惹恃。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上棺牧,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天巫糙,我揣著相機與錄音,去河邊找鬼颊乘。 笑死参淹,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的乏悄。 我是一名探鬼主播浙值,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼檩小!你這毒婦竟也來了开呐?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤规求,失蹤者是張志新(化名)和其女友劉穎筐付,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阻肿,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡瓦戚,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了丛塌。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片较解。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡畜疾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出哨坪,到底是詐尸還是另有隱情庸疾,我是刑警寧澤,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布当编,位于F島的核電站届慈,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏忿偷。R本人自食惡果不足惜金顿,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望鲤桥。 院中可真熱鬧揍拆,春花似錦、人聲如沸茶凳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贮喧。三九已至筒狠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間箱沦,已是汗流浹背辩恼。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留谓形,地道東北人灶伊。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像寒跳,于是被迫代替她去往敵國和親聘萨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案童太? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,743評論 1 92
  • 一 外部式css樣式 (也可稱為外聯(lián)式)就是把css代碼寫一個單獨的外部文件中匈挖,這個css樣式文件以“.css...
    KunMitnic閱讀 933評論 0 1
  • 本文主要是起筆記的作用,內(nèi)容來自慕課網(wǎng). 認識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,630評論 0 30
  • CSS格式化排版 1康愤、字體 我們可以使用css樣式為網(wǎng)頁中的文字設(shè)置字體、字號舶吗、顏色等樣式屬性征冷。下面我們來看一個例...
    張文靖同學閱讀 1,282評論 0 3
  • 水平居中設(shè)置-行內(nèi)元素 我們在實際工作中常會遇到需要設(shè)置水平居中的場景,比如為了美觀誓琼,文章的標題一般都是水平居中顯...
    CAICL閱讀 467評論 0 3