hc17(15-1~15-9)

水平居中設(shè)置-行內(nèi)元素

我們?cè)趯?shí)際工作中常會(huì)遇到需要設(shè)置水平居中的場(chǎng)景庭惜,比如為了美觀,文章的標(biāo)題一般都是水平居中顯示的渠驼。

這里我們又得分兩種情況:行內(nèi)元素?還是?塊狀元素蜈块,塊狀元素里面又分為定寬塊狀元素,以及不定寬塊狀元素迷扇。今天我們先來(lái)了解一下行內(nèi)元素怎么進(jìn)行水平居中百揭?

如果被設(shè)置元素為文本、圖片等行內(nèi)元素時(shí)蜓席,水平居中是通過(guò)給父元素設(shè)置text-align:center來(lái)實(shí)現(xiàn)的器一。(父元素和子元素:如下面的html代碼中,div是“我想要在父容器中水平居中顯示”這個(gè)文本的父元素厨内。反之這個(gè)文本是div的子元素?)如下代碼:

html代碼:

<body>

? <div class="txtCenter">我想要在父容器中水平居中顯示祈秕。</div>

</body>

css代碼:

<style>

? .txtCenter{

? ? text-align:center;

? }

</style>

水平居中設(shè)置-定寬塊狀元素

當(dāng)被設(shè)置元素為?塊狀元素?時(shí)用 text-align:center 就不起作用了渺贤,這時(shí)也分兩種情況:定寬塊狀元素和不定寬塊狀元素。

這一小節(jié)我們先來(lái)講一講定寬塊狀元素请毛。(定寬塊狀元素:塊狀元素的寬度width為固定值志鞍。)

滿(mǎn)足定寬和塊狀兩個(gè)條件的元素是可以通過(guò)設(shè)置“左右margin”值為“auto”來(lái)實(shí)現(xiàn)居中的。我們來(lái)看個(gè)例子就是設(shè)置?div?這個(gè)塊狀元素水平居中:

html代碼:

<body>

? <div>我是定寬塊狀元素方仿,哈哈固棚,我要水平居中顯示。</div>

</body>

css代碼:

div{? ? border:1px solid red;/*為了顯示居中效果明顯為 div 設(shè)置了邊框*/? ? ? ? width:200px;/*定寬*/margin:20px auto;/* margin-left 與 margin-right 設(shè)置為 auto */}

也可以寫(xiě)成:

margin-left:auto;

margin-right:auto;

注意:元素的“上下 margin” 是可以隨意設(shè)置的仙蚜。

水平居中設(shè)置-定寬塊狀元素

當(dāng)被設(shè)置元素為?塊狀元素?時(shí)用 text-align:center 就不起作用了此洲,這時(shí)也分兩種情況:定寬塊狀元素和不定寬塊狀元素。

這一小節(jié)我們先來(lái)講一講定寬塊狀元素委粉。(定寬塊狀元素:塊狀元素的寬度width為固定值呜师。)

滿(mǎn)足定寬和塊狀兩個(gè)條件的元素是可以通過(guò)設(shè)置“左右margin”值為“auto”來(lái)實(shí)現(xiàn)居中的。我們來(lái)看個(gè)例子就是設(shè)置?div?這個(gè)塊狀元素水平居中:


水平居中總結(jié)-不定寬塊狀元素方法(一)

在實(shí)際工作中我們會(huì)遇到需要為“不定寬度的塊狀元素”設(shè)置居中贾节,比如網(wǎng)頁(yè)上的分頁(yè)導(dǎo)航汁汗,因?yàn)榉猪?yè)的數(shù)量是不確定的,所以我們不能通過(guò)設(shè)置寬度來(lái)限制它的彈性氮双。(不定寬塊狀元素:塊狀元素的寬度width不固定碰酝。)

不定寬度的塊狀元素有三種方法居中(這三種方法目前使用的都很多):

加入?table?標(biāo)簽

設(shè)置display: inline方法:與第一種類(lèi)似霎匈,顯示類(lèi)型設(shè)為?行內(nèi)元素戴差,進(jìn)行不定寬元素的屬性設(shè)置

設(shè)置?position:relative和 left:50%:利用相對(duì)定位?的方式,將元素向左偏移50%?铛嘱,即達(dá)到居中的目的

這一小節(jié)我們來(lái)講一下第一種方法:

為什么選擇方法一加入table標(biāo)簽? 是利用table標(biāo)簽的長(zhǎng)度自適應(yīng)性---即不定義其長(zhǎng)度也不默認(rèn)父元素body的長(zhǎng)度(table其長(zhǎng)度根據(jù)其內(nèi)文本長(zhǎng)度決定)暖释,因此可以看做一個(gè)定寬度塊元素,然后再利用定寬度塊狀居中的margin的方法墨吓,使其水平居中球匕。

第一步:為需要設(shè)置的居中的元素外面加入一個(gè) table 標(biāo)簽 ( 包括 <tbody>、<tr>帖烘、<td>?)亮曹。

第二步:為這個(gè) table 設(shè)置“左右 margin 居中”(這個(gè)和定寬塊狀元素的方法一樣)。

舉例如下:


水平居中總結(jié)-不定寬塊狀元素方法(二)

除了上一節(jié)講到的插入table標(biāo)簽秘症,可以使不定寬塊狀元素水平居中之外照卦,本節(jié)介紹第2種實(shí)現(xiàn)這種效果的方法,改變?cè)氐膁isplay類(lèi)型為行內(nèi)元素乡摹,利用其屬性直接設(shè)置役耕。

第二種方法:改變塊級(jí)元素的 display 為 inline 類(lèi)型(設(shè)置為?行內(nèi)元素?顯示),然后使用?text-align:center?來(lái)實(shí)現(xiàn)居中效果聪廉。如下例子:



水平居中總結(jié)-不定寬塊狀元素方法(三)

除了前兩節(jié)講到的插入table標(biāo)簽瞬痘,以及改變?cè)氐膁isplay類(lèi)型故慈,可以使不定寬塊狀元素水平居中之外,本節(jié)介紹第3種實(shí)現(xiàn)這種效果的方法框全,設(shè)置浮動(dòng)和相對(duì)定位來(lái)實(shí)現(xiàn)察绷。

方法三:通過(guò)給父元素設(shè)置?float,然后給父元素設(shè)置?position:relative?和?left:50%津辩,子元素設(shè)置?position:relative?和?left:-50%?來(lái)實(shí)現(xiàn)水平居中克婶。

我們可以這樣理解:假想ul層的父層(即下面例子中的div層)中間有條平分線(xiàn)將ul層的父層(div層)平均分為兩份,ul層的css代碼是將ul層的最左端與ul層的父層(div層)的平分線(xiàn)對(duì)齊丹泉;而li層的css代碼則是將li層的平分線(xiàn)與ul層的最左端(也是div層的平分線(xiàn))對(duì)齊情萤,從而實(shí)現(xiàn)li層的居中。



垂直居中-父元素高度確定的單行文本

我們?cè)趯?shí)際工作中也會(huì)遇到需要設(shè)置垂直居中的場(chǎng)景摹恨,比如好多報(bào)紙的文章標(biāo)題在左右一側(cè)時(shí)筋岛,常常會(huì)設(shè)置為垂直居中,為了用戶(hù)體驗(yàn)性好晒哄。

這里我們又得分兩種情況:父元素高度確定的單行文本睁宰,以及父元素高度確定的多行文本。

本節(jié)我們先來(lái)看第一種父元素高度確定的單行文本, 怎么設(shè)置它為垂直居中呢寝凌?

父元素高度確定的單行文本的豎直居中的方法是通過(guò)設(shè)置父元素的height和line-height?高度一致來(lái)實(shí)現(xiàn)的柒傻。(height: 該元素的高度,line-height: 顧名思義较木,行高(行間距)红符,指在文本中,行與行之間的基線(xiàn)間的距離?)伐债。

line-height?與?font-size?的計(jì)算值之差预侯,在?CSS?中成為“行間距”。分為兩半峰锁,分別加到一個(gè)文本行內(nèi)容的頂部和底部萎馅。

這種文字行高與塊高一致帶來(lái)了一個(gè)弊端:當(dāng)文字內(nèi)容的長(zhǎng)度大于塊的寬時(shí),就有內(nèi)容脫離了塊虹蒋。


垂直居中-父元素高度確定的多行文本(方法一)

父元素高度確定的多行文本糜芳、圖片等的豎直居中的方法有兩種:

方法一:使用插入?table??(包括tbody、tr魄衅、td)標(biāo)簽峭竣,同時(shí)設(shè)置?vertical-align:middle。

css?中有一個(gè)用于豎直居中的屬性?vertical-align徐绑,在父元素設(shè)置此樣式時(shí)邪驮,會(huì)對(duì)inline-block類(lèi)型的子元素都有用。下面看一下例子:


垂直居中-父元素高度確定的多行文本(方法二)

除了上一節(jié)講到的插入table標(biāo)簽傲茄,可以使父元素高度確定的多行文本垂直居中之外毅访,本節(jié)介紹另外一種實(shí)現(xiàn)這種效果的方法沮榜。但這種方法兼容性比較差,只是提供大家學(xué)習(xí)參考喻粹。

在?chrome蟆融、firefox?及?IE8?以上的瀏覽器下可以設(shè)置塊級(jí)元素的?display?為?table-cell(設(shè)置為表格單元顯示),激活?vertical-align?屬性守呜,但注意?IE6型酥、7?并不支持這個(gè)樣式,?兼容性比較差。


隱性改變display類(lèi)型

有一個(gè)有趣的現(xiàn)象就是當(dāng)為元素(不論之前是什么類(lèi)型元素查乒,display:none?除外)設(shè)置以下?2?個(gè)句之一:

1.position : absolute?

2.?float : left 或?float:right

簡(jiǎn)單來(lái)說(shuō)弥喉,只要html代碼中出現(xiàn)以上兩句之一,元素的display顯示類(lèi)型就會(huì)自動(dòng)變?yōu)橐?display:inline-block(塊狀元素)的方式顯示玛迄,當(dāng)然就可以設(shè)置元素的?width?和?height?了由境,且默認(rèn)寬度不占滿(mǎn)父元素。

如下面的代碼蓖议,小伙伴們都知道?a?標(biāo)簽是?行內(nèi)元素?虏杰,所以設(shè)置它的?width?是 沒(méi)有效果的,但是設(shè)置為?position:absolute?以后勒虾,就可以了纺阔。


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市修然,隨后出現(xiàn)的幾起案子笛钝,更是在濱河造成了極大的恐慌,老刑警劉巖低零,帶你破解...
    沈念sama閱讀 221,273評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件婆翔,死亡現(xiàn)場(chǎng)離奇詭異拯杠,居然都是意外死亡掏婶,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,349評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)潭陪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)雄妥,“玉大人,你說(shuō)我怎么就攤上這事依溯±涎幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,709評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵黎炉,是天一觀的道長(zhǎng)枝秤。 經(jīng)常有香客問(wèn)我,道長(zhǎng)慷嗜,這世上最難降的妖魔是什么淀弹? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,520評(píng)論 1 296
  • 正文 為了忘掉前任丹壕,我火速辦了婚禮,結(jié)果婚禮上薇溃,老公的妹妹穿的比我還像新娘菌赖。我一直安慰自己,他們只是感情好沐序,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,515評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布琉用。 她就那樣靜靜地躺著,像睡著了一般策幼。 火紅的嫁衣襯著肌膚如雪邑时。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,158評(píng)論 1 308
  • 那天特姐,我揣著相機(jī)與錄音刁愿,去河邊找鬼。 笑死到逊,一個(gè)胖子當(dāng)著我的面吹牛铣口,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播觉壶,決...
    沈念sama閱讀 40,755評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼脑题,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了铜靶?” 一聲冷哼從身側(cè)響起叔遂,我...
    開(kāi)封第一講書(shū)人閱讀 39,660評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎争剿,沒(méi)想到半個(gè)月后已艰,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,203評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蚕苇,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,287評(píng)論 3 340
  • 正文 我和宋清朗相戀三年哩掺,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片涩笤。...
    茶點(diǎn)故事閱讀 40,427評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡嚼吞,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蹬碧,到底是詐尸還是另有隱情舱禽,我是刑警寧澤,帶...
    沈念sama閱讀 36,122評(píng)論 5 349
  • 正文 年R本政府宣布恩沽,位于F島的核電站誊稚,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜里伯,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,801評(píng)論 3 333
  • 文/蒙蒙 一绽昏、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧俏脊,春花似錦全谤、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,272評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至漫萄,卻和暖如春卷员,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背腾务。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,393評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工毕骡, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人岩瘦。 一個(gè)月前我還...
    沈念sama閱讀 48,808評(píng)論 3 376
  • 正文 我出身青樓未巫,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親启昧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子叙凡,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,440評(píng)論 2 359

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

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 13,756評(píng)論 1 92
  • 一 外部式css樣式 (也可稱(chēng)為外聯(lián)式)就是把css代碼寫(xiě)一個(gè)單獨(dú)的外部文件中密末,這個(gè)css樣式文件以“.css...
    KunMitnic閱讀 943評(píng)論 0 1
  • 本文主要是起筆記的作用握爷,內(nèi)容來(lái)自慕課網(wǎng). 認(rèn)識(shí)CSS樣式 CSS全稱(chēng)為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,651評(píng)論 0 30
  • 什么是選擇器 每一條css樣式聲明(定義)由兩部分組成,形式如下: 在{}之前的部分就是“選擇器”严里,“選擇器”指明...
    小撓許閱讀 338評(píng)論 0 1
  • 直到有一天刹碾,小姑姑來(lái)到家燥撞。那時(shí)你正在廚房做菜,忽然聽(tīng)見(jiàn)媽媽在說(shuō)這件事教硫,你馬上拿著菜刀沖了出來(lái)說(shuō)了許多難聽(tīng)的話(huà)叨吮,例如...
    藍(lán)綠小巨人閱讀 369評(píng)論 16 17