說出至少五種使元素水平垂直居中的方式

記錄第一次面試——廣州凡科(二)

第2題:調(diào)動記憶的css題
(當(dāng)時真是把什么表格元素、文本元素這些都湊五個寫上去了,而且卷面還寫的很亂。)
其實這些上網(wǎng)搜搜一大堆,只不過之前沒有注意總結(jié)。以下貼個靠譜的方案。已經(jīng)經(jīng)過了本人的測試。

CSS水平居中+垂直居中+水平/垂直居中的方法總結(jié) - 半夏半暖半傾城的博客 - CSDN博客

這個博主總結(jié)得相當(dāng)全面!但是我還是要自己一點點打出來,加深一下記憶。

首先科普一下:

行內(nèi)元素

常見的有比如有: <span></span>、<i></i>、<b></b>、<a></a>、<img />、<input type="" />
(1)設(shè)置寬高無效
(2)對margin僅設(shè)置左右方向有效,上下無效;padding設(shè)置上下左右都有效,即會撐大空間
(3)不會自動進行換行

塊級元素

<body></body>、<div></div>、<ul></ul>、<ol></ol>、<h1></h1>等標(biāo)題
(1)能夠識別寬高
(2)margin和padding的上下左右均對其有效
(3)可以自動換行
(4)多個塊狀元素標(biāo)簽寫在一起,默認(rèn)排列方式為從上至下

行內(nèi)塊級元素

通過display:inline-block;進行轉(zhuǎn)換
(1)不自動換行
(2)能夠識別寬高
(3)默認(rèn)排列方式為從左到右

行內(nèi)元素里面不能嵌套塊級元素
行內(nèi)塊級元素里面可以嵌套塊級元素

針對題目,使元素垂直居中的方式:

- 行內(nèi)元素:

1.使他的父級元素變成塊級元素display:block
2.水平居中:父級元素:text-align:center
3.垂直居中:
單行的行內(nèi)元素:使元素高=父級元素的高
多行的行內(nèi)元素:給父級元素設(shè)置display:table-cell;vertical-align: middle;

- 塊級元素:

已知寬高

1.設(shè)置父元素相對定位、子元素絕對定位,
水平居中:right: 0; left: 0; margin: 0 auto;
垂直居中:top: 0; bottom: 0; margin: auto 0;
(可以合寫為)top: 0; bottom: 0; right: 0; left: 0; margin:auto;

2.設(shè)置父元素相對定位、子元素絕對定位,
水平居中:left: 50%;margin-left: -(元素寬度的一半)px;
垂直居中:top: 50%; margin-top: -(元素高度的一半)px;
(可以合寫為)left: 50%; top: 50%; margin-left: -(元素寬度的一半)px; margin-top: -(元素高度的一半)px;

未知寬高:

1.設(shè)置父元素為相對定位,給子元素設(shè)置絕對定位,
水平居中:left: 50%;translateX(-50%)
垂直居中:top: 50%; translateY(-50%);
(可以合寫為)left: 50%; top: 50%; transform: translateX(-50%) translateY(-50%);

2.把元素轉(zhuǎn)換為行內(nèi)元素display: inline;display: inline-block;
水平居中:父元素設(shè)置text-align:center;
垂直居中:
單行的行內(nèi)元素:使元素高=父級元素的高
多行的行內(nèi)元素:給父級元素設(shè)置display:table-cell;vertical-align: middle;

寬高定不定均可:

1.flex布局:設(shè)置父元素為flex定位display:flex;
水平居中:justify-content: center;
垂直居中:align-items: center;

七種了……
后面還會有 記錄第一次面試——廣州凡科(三、四……),敬請期待

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補...
    _Yfling閱讀 14,093評論 1 92
  • 前面學(xué)習(xí)了使用HTML為網(wǎng)頁添加內(nèi)容,要對所添加的內(nèi)容進行布局,就需要使用到CSS,JS等,這里就記錄一下自己關(guān)于...
    wxyzcctn閱讀 623評論 0 3
  • 一 外部式css樣式 (也可稱為外聯(lián)式)就是把css代碼寫一個單獨的外部文件中,這個css樣式文件以“.css...
    KunMitnic閱讀 1,112評論 0 1
  • 本文主要是起筆記的作用,內(nèi)容來自慕課網(wǎng). 認(rèn)識CSS樣式 CSS全稱為“層疊樣式表 (Cascading Styl...
    0o凍僵的企鵝o0閱讀 2,748評論 0 30
  • 每日國學(xué)感悟: 話題: 正文: 一. 馬可·奧勒留:如果你對周圍的任何事物感到不舒服,那是你的感受所造成的,并非事...
    松鴉學(xué)長山大碩博閱讀 590評論 1 1

友情鏈接更多精彩內(nèi)容