html css 单元格 居中,html + css 居中方法大全

css居中

水平居中:

说到水平居中,最简单的方法就是margin:0 auto;

也就是将margin-left 和 margin-right属性设置为auto;

源码和效果如下图所示:

53aa0cce178e2c7ab912b4a293a58dd5.png

141e9202bf48f5b8106b143e30550074.png

ps:不要想当然的以为简单地将margin值设置为auto,就可以将元素水平、垂直居中(不过在css3弹性布局中确实可以这样子做,这里暂不做过多讨论);

文本的居中对齐方式:

d0780ed548a8b6790bd00d8546c9c944.png

4a39e9f5e2a685101a43ca630251b0fe.png

ps:文本垂直对齐一般上设置line-height和height 相等的值就可以!

padding填充

利用padding和background-clip配合实现div的水平垂直居中:

通过backgroun-clip设置为content-box,将背景裁剪到内容区外沿,再利用padding设为外div减去内div的差的一半,来实现:

7da40a8f39e46b7cf593e398d95f7ec8.png

d2e6ff12f278e26f858ee6322f6ccae7.png

盒子模型

50d11068bb2bc96d7e2aece306e34862.png

绝对定位居中

ff8c8e37a8cb7707a9f25f2e4f4593c4.png

dc8e74b1f9969a4fef66783e49ca58b7.png

盒模型

b6d5eaff87da3c3bad7506e1f397e2e5.png

e9c145e5ea2ac82dc8012b35fe7565db.png

2b9f5c652b19d75740cc033a9a6c2281.png

盒模型

6ab391cd5fc5ddbbc446aa598eb171ab.png

调整尺寸

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

0c640761b29492e107baba57c20918ce.png

b21ba3f8930e52068a38a986fbdb96f8.png

盒模型

3e168811868254af8aa01d02124fabb0.png

margin填充(主要给父元素设置overflow来触发父元素的BFC)

02f8debd438d93a3f8c4b02e10c1e7f6.png

0dcee56caa529276364f891fd3106ff3.png

对应的盒模型

列表内容

df92093bbc8308643811690b77938d80.png

absolute定位+margin填充

13ca0e910a7357e0d4f5bd0b646da315.png

88146e5c37352a61381642fb99fa70ec.png

对应的盒模型

cc91a782f513898640802853e9a19048.png

总结:*此方法就是利用定位,将子元素设置top和left 均为 50%,然后margin-top 和

margin-left设为负的本身盒子的高和宽的一半,即可实现水平垂直居中!*

transform居中

上面讲到的div居中的例子中,div的宽度都是固定的,然而实际项目中,有可能遇到不定宽的div,特别是响应式或者移动端的设计中,更加常见。

Document

float:left;

width:100%;

height:200px;

background-color:red;

}

.children{

float:left;

position:relative;

top:50%;

left:50%;

}

.children-inline{

position:relative;

left:-50%;

-webkit-transform:translate(0,-50%,0);

transform:translate(0,-50%,0);

background-color:#ccc;

color:#fff;

}

我是水平垂直居中噢!

d83bc981063ec00ab351a94062ce881e.png

*首先我们利用float,将需要居中的div的父div也就是children的宽度收缩,然后left:50%,将children的左边与水平中线对齐。这个时候,还没有真正居中,我们需要将children-inner左移动-50%,这样就水平居中了。

再来说说垂直方向,先将children的top设为50%,然后其上边和垂直中线对齐了,同样,我们需要将children-inner上移动-50%。但是这个50%是计算不出来的,所以我们用到了transform

translate3d(0, -50%, 0); 这个方法非常好用噢。*

flex居中

Document

width:100%;

height:200px;

}

.parent{

display:flex;

align-items:center;//垂直居中

justify-content:center;

width:100%;

height:100%;

background-color:red;

}

.children{

background-color:blue;

}

flex水平垂直居中的

5330d2bd11bf216343863a824e98b51a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值