居中那些事儿
這幾個(gè)月一直忙著面試,作為前端小菜鳥,平時(shí)寫的一些總結(jié)都是word的,一大堆不好找,寫博客方便自己查找閱讀,也是激勵(lì)自己要堅(jiān)持!
文章主要摘自大搜車前端的《解讀CSS布局之-水平垂直居中》。原文鏈接?http://www.w3ctech.com/topic/1433
文章講的面面俱到,自己動(dòng)手研究了一下,做一下總結(jié)吧。
| 那些 | 情況 | 備注 |
| 盒子內(nèi)部的布局 | 文本的布局 | text-align:center+line-height |
| 盒模型本身的布局 | Padding填充和margin填充 | |
| 盒子之間的布局(脫離正常流的盒子的布局) | absolute布局上下文下的布局 | 1.利用left:50%將盒子的左邊先置于父容器的中點(diǎn),然后再將盒子往左偏移盒子自身寬度的50%(50% + -50%) 2.text-align:center + absolute(text-aign:center本來是不能直接作用于absolute元素的,但是沒有給其left等值的行級(jí)absolute元素是會(huì)受文本的影響的) 3.absolute + margin : auto (利用上下左右都是0,將自身寬度等同于父親的大小,指定自身寬高,利用margin:0 auto即可,) |
| float布局上下文下的布局 | 1.float + -50% 2.margin-bottom : -50% | |
| 盒子之間的布局(正常流下的盒子的布局) | BFC布局上下文下的布局 | ? |
| IFC布局上下文下的布局 (display為inline性質(zhì)的行級(jí)元素的布局) | 1.text-align:center + vertical-align:middle 2.text-align:center + line-height 3.text-align:center + font-size | |
| FFC布局上下文下的布局 | ? | |
| table布局上下文下的布局 | .ele{?? text-align:center;?? vertical-align: middle;?? display:table-cell; } | |
| css grid布局上下文下的布局 | ? |
一些詳細(xì)的描述:
發(fā)現(xiàn)面試了很多次,而面對(duì)一個(gè)簡(jiǎn)單的問題,可能自己要把所有的方案羅列出來,卻不知最適合此場(chǎng)景的是什么?上次面試的收獲,一個(gè)img的居中。div { line-height: 200px; text-align:center;} img { vertical-align: middle; },使用text-align:center使之達(dá)到水平居中,使用dispaly: inline-block和vertical-align:Middle達(dá)到垂直居中,也可以配合line-height使用。
盒模型本身的布局(padding填充和margin填充)的具體描述(以上兩種方法均適用于寬高度已知的box):Padding填充四面八方設(shè)置一個(gè)相同的值;Margin填充:左右auto,上下設(shè)置成你需要居中的高度
?? ? ? ? ? ??
利用left:50%將盒子的左邊先置于父容器的中點(diǎn),然后再將盒子往左偏移盒子自身寬度的50%(50% + -50%)
margin方法和relative方法都需要知道元素的寬高才行(relative方法只知道高也行),適用于固定式布局,而transform方法則可以不知道元素寬高
第一種常用
第二種換了一種方法,也可以理解
第三種:外包了一個(gè)殼子,核心在于設(shè)置空殼子的透明度,將本質(zhì)要居中的寬高設(shè)置于殼子的寬高。
?
?
margin-bottom : -50%
placeholder占據(jù)50%高度,然后給一個(gè)居中元素高度一半的負(fù)的margin-bottom,然后下面的元素只要跟著擺放就能垂直居中了。
水平方向就是利用translate做偏移,這種方法就是各種固定死,首先最外層的父容器需要一個(gè)固定高度,以讓.placeholder的height:50%有效,然后,margin-bottom也需要固定死,而且得需要知道居中元素高度。單純就水平方向來說,這個(gè)方法比較適合需要兼容低版本IE的固定式布局的項(xiàng)目,因?yàn)榧嫒菪院谩?/p>
?
IFC居中核心
轉(zhuǎn)載于:https://www.cnblogs.com/gxlfc/p/4760005.html
總結(jié)
- 上一篇: OpenRTSP的使用
- 下一篇: uedit富文本编辑器