html如何让子div居中,如何在一个div中使其子div居中的5种方式详解

fff6c98081bf8904098fb5e1bd59ff4b.gif

第一种

基于绝对定位,要求有固定的宽高

main{

position: absolute;

top: 50%;

left: 50%;

margin-top: -5em;

margin-left: -9em;

width: 18em;

height: 10em;

}

使用calc方法对第一种进行简化

main{

position: absolute;

top: calc(50% - 5em);

left: calc(50% - 9em);

width: 18em;

height: 10em;

}

第二种

在translate变形函数中使用百分比, 不依赖固定宽高

缺点:

1. 有时候不能使用绝对定位

2. 如果需哟啊居中的元素已经在高度上超过了视口, 那么他的顶部会被视口裁剪掉

3. 在某些浏览器中,这个方法肯会导致元素的显示有一些模糊,因为元素可能被放置在半个 像素上。

main{

position: absolute;

top: 50%;

left: 50%;

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

padding: 1em;

}

第三种

基于视口单位vh

main{

margin: 50vh auto;

transform: translateY(-50%);

width: 18em;

}

为什么不能以下代码来做那?

margin: 50% auto 0 ;

transform: translateY(-50%);

因为margin的百分比值是以父元素的宽高来做解析基准的

第四种

基于Flexbox解决方案-最佳解决方案,只需要考虑flex

main{

margin: auto;

}

body{

display: flex;

min-height: 100vh;

}

第五种

在有宽高的父级下居中

html{

height: 100%;

}

body{

display: flex;

align-items: center;

justify-content: center;

width: 100%;

height: 100%;

}

main{

...

}

7f5fa27586e25f6ef7db7419c6699cb5.png

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 好的,以下是html语言div图片垂直居中和图片水平垂直居中的五方法: 1. 使用Flex布局 可以通过将图片所在的父元素设置为Flex布局,然后使用align-items和justify-content属性来使图片垂直居中和水平居中。 ```html <div class="container"> <img src="image.jpg" alt="image"> </div> <style> .container { display: flex; align-items: center; justify-content: center; height: 100vh; } img { max-width: 100%; max-height: 100%; } </style> ``` 2. 使用绝对定位和负margin值 可以通过设置图片所在的父元素相对定位,然后使用绝对定位和负margin值来使图片垂直居中和水平居中。 ```html <div class="container"> <img src="image.jpg" alt="image"> </div> <style> .container { position: relative; height: 100vh; } img { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); max-width: 100%; max-height: 100%; } </style> ``` 3. 使用表格布局 可以将图片所在的父元素设置为表格布局,然后使用vertical-align和text-align属性来使图片垂直居中和水平居中。 ```html <div class="container"> <table> <tr> <td> <img src="image.jpg" alt="image"> </td> </tr> </table> </div> <style> .container { height: 100vh; display: table; width: 100%; } table { height: 100%; width: 100%; } td { text-align: center; vertical-align: middle; } img { max-width: 100%; max-height: 100%; } </style> ``` 4. 使用line-height属性 可以将图片所在的父元素设置为单行高度,然后使用line-height属性来使图片垂直居中。 ```html <div class="container"> <span></span> <img src="image.jpg" alt="image"> </div> <style> .container { height: 100vh; text-align: center; font-size: 0; } span { display: inline-block; vertical-align: middle; height: 100%; width: 0; line-height: 0; } img { max-width: 100%; max-height: 100%; vertical-align: middle; display: inline-block; } </style> ``` 5. 使用CSS3的transform属性 可以使用CSS3的transform属性来使图片水平垂直居中。 ```html <div class="container"> <img src="image.jpg" alt="image"> </div> <style> .container { height: 100vh; text-align: center; } img { max-width: 100%; max-height: 100%; position: relative; top: 50%; left: 50%; transform: translate(-50%, -50%); } </style> ``` 以上就是div图片垂直居中和图片水平垂直居中的五方法,希望能对你有所帮助。 ### 回答2: 在HTML中,想要将div中的图片垂直居中可以使用以下方法: 方法一:使用flex布局 在div的样式中,添加display:flex;和 align-items:center;属性,这样可以使图片在垂直方向上居中。 方法二:使用table-cell属性 将div设置为display: table-cell;和vertical-align:middle;,这样可以使图片在垂直方向上居中。 方法三:使用绝对定位 将div设置为相对定位的父元素,然后通过将图片设置为绝对定位,并将top和left属性值设置为50%以及translate属性值为(-50%,-50%),这样可以实现图片在垂直和水平方向上居中。 方法四:使用line-height属性 将div中的文字设置为和div一样的line-height值,并将vertical-align属性设置为middle,这样可以使图片在垂直方向上居中。 方法五:使用transform属性 将div设置为相对定位的父元素,然后通过将图片设置为绝对定位,并将top、left、bottom和right属性值设置为0,再将margin属性值设置为auto,这样可以使图片在垂直和水平方向上居中。 这些方法可以根据不同的需求选择使用,都能够实现div中的图片垂直居中的效果。 ### 回答3: html语言div图片垂直居中可以通过以下五方法来实现图文详解图片的水平垂直居中。 方法一:使用flex布局 在div的样式中设置display:flex;align-items: center;justify-content: center;即可实现图片的垂直居中。 方法二:使用table布局 将div的display属性设置为table,然后在内部创建一个table-cell元素,设置vertical-align: middle;text-align: center;即可实现图片的垂直居中。 方法三:使用绝对定位 将div的定位设置为相对定位,然后在内部创建一个绝对定位的img元素,设置top: 50%;left: 50%;transform: translate(-50%, -50%);即可实现图片的居中对齐。 方法四:使用line-height属性 将div的高度与line-height属性保持一致,并设置line-height的值等于高度即可实现图片的垂直居中。 方法五:使用display:inline-block和vertical-align属性 将div的display属性设置为inline-block,然后为div和img元素都设置vertical-align: middle;即可实现图片的垂直居中。 以上五方法都可以实现div图片的垂直居中,选择其中一根据实际情况来使用即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值