text-align:center

在父容器里水平居中 inline 文字,或 inline 元素

vertical-align:middle

垂直居中 inline 文字,inline 元素,配合 display:tabledisplay:table-cell,有奇效。

line-height

与 height 联手,垂直居中文字

margin:auto

示例:

|

<``style``>

#ex2_container { width:200px; background-color:yellow; }

#ex2_content { margin:0px auto; background-color:gray; color:white; display:table; }

</``style``>

<``div id="ex2_container"><``div id="ex2_content">Hello World</``div``></``div``>

hacks, hacks(小技巧)

有许多 hacks,负 margin,影子元素 ::before 等。如果你的内容不是固定大小的话,它们大部分是很脆弱的。

translate(-50%,-50%)

用 position 加 translate translate(-50%,-50%) 比较奇特,百分比计算不是以父元素为基准,而是以自己为基准。

示例:

<``style``>

#ex3_container { width:200px; height:200px; background-color:yellow; position:relative; }

#ex3_content { left:50%; top:50%; transform:translate(-50%,-50%); -webkit-transform:translate(-50%,-50%); background-color:gray; color:white; position:absolute; }

</``style``>

<``div id="ex3_container"><``div id="ex3_content">Hello World</``div``></``div``>

这个技巧相当嚣张,同样适用于没固定大小的内容,min-widthmax-heightoverflow:scroll 等。

对web前端这门技术感兴趣的小伙伴可以加入到我们的学习圈来,正因为我不是211,985,只是个普通的本科生,英语不是特别好,数学不是特别好。所以我选择了前端。工作第六个年头了,我庆幸自己选择了这条路。767-273-102 秋裙。在鹅厂做过,跟着创业头子混过。想把自己的技术分享给大家,如果你还在迷茫,也希望能进我一些绵薄之力,帮助到你。都是一群有梦想的人,我们可能在不同的城市,但我们会一起结伴同行前端前端前端

绝对定位居中

父容器元素:position: relative

.Absolute-Center {

width``: 50%``;

height``: 50%``;

overflow``: auto``;

margin``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

注意:高度必须定义,建议加 overflow: auto,防止内容溢出。

视口居中

内容元素:position: fixedz-index: 999,记住父容器元素 position: relative

.Absolute-Center.is-Fixed {

width``: 50%``;

height``: 50%``;

overflow``: auto``;

margin``: auto``;

position``: fixed``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

z-index``: 999``;

}

响应式

百分比宽高,最大、最小宽度均可以,加 padding 也可以

.Absolute-Center.is-Responsive {

width``: 60%``;

height``: 60%``;

min-width``: 400px``;

max-width``: 500px``;

padding``: 40px``;

overflow``: auto``;

margin``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

偏移

只要 margin: auto; 在,内容块将垂直居中,top, left, bottom, right 可以设置偏移。

.Absolute-Center.is-Right {

width``: 50%``;

height``: 50%``;

margin``: auto``;

overflow``: auto``;

position``: absolute``;

top``: 0``; left``: auto``; bottom``: 0``; right``: 20px``;

text-align``: right``;

}

溢出

居中内容比父容器高时,防止溢出,加 overflow: auto (没有任何 padding 时,也可以加 max-height: 100%;)。

.Absolute-Center.is-Overflow {

width``: 50%``;

height``: 300px``;

max-height``: 100%``;

margin``: auto``;

overflow``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

调整尺寸

resize 属性可以让尺寸可调。 设置 min- /max- 限制尺寸,确定加了 overflow: auto

.Absolute-Center.is-Resizable {

min-width``: 20%``;

max-width``: 80%``;

min-height``: 20%``;

max-height``: 80%``;

resize: both``;

overflow``: auto``;

margin``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

图像

图像同样适用,设置 height: auto;

.Absolute-Center.is-Image {

width``: 50%``;

height``: auto``;

margin``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

可变高度

高度必须定义,但可以是百分比或 max-height。不想定义高度的话,用 display: table (需要考虑 Table-Cell 兼容性)。

.Absolute-Center.is-Variable {

display``: table;

width``: 50%``;

overflow``: auto``;

margin``: auto``;

position``: absolute``;

top``: 0``; left``: 0``; bottom``: 0``; right``: 0``;

}

负 margin

确切知道宽高,负 margin 是宽和高的一半。

.is-Negative {

width``: 300px``;

height``: 200px``;

padding``: 20px``;

position``: absolute``;

top``: 50%``; left``: 50%``;

margin-left``: -170px``; /* (width + padding)/2 */

margin-top``: -120px``; /* (height + padding)/2 */

}

Table-Cell

结构:

<``div class="Pos-Container is-Table">

<``div class="Table-Cell">

<``div class="Center-Block">

<!-- CONTENT -->

</``div``>

</``div``>

</``div``>

样式:

.Pos-Container.is-Table { display``: table; }

.is-Table .Table-Cell {

display``: table-cell``;

vertical-align``: middle``;

}

.is-Table .Center-Block {

width``: 50%``;

margin``: 0 auto``;

}

FlexBox

.Pos-Container.is-Flexbox {

display``: -webkit-box;

display``: -moz-box;

display``: -ms-flexbox;

display``: -webkit-flex;

display``: flex;

-webkit-box-align: center``;

-moz-box-align: center``;

-ms-flex-align: center``;

-webkit-align-items: center``;

align-items: center``;

-webkit-box-pack: center``;

-moz-box-pack: center``;

-ms-flex-pack: center``;

-webkit-justify-``content``: center``;

justify-``content``: center``;

}