a3父元素和子元素宽高不固定,如何实现水平垂直居中

文章介绍了在CSS中实现子元素在父元素不确定高度的情况下垂直居中的三种方法:1)使用弹性布局,通过`display:flex`和相关属性;2)父元素相对定位,子元素绝对定位并设置边距;3)子元素绝对定位结合位移`transform`。这三种方法都能确保子元素在任何尺寸的父元素中保持垂直居中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发中,我们有时候会遇到父元素与子元素高度并不确定的情况,那么在这种不确定的情况下如何实现子元素垂直居中与父元素呢?

方法一:用弹性布局

给父元素开启弹性布局,利用弹性属性让子元素居中

<div class="v2">
            <div class="v1"></div>
        </div>
        <style>
            .v1{
                width: 100px;
                height: 100px;
                background-color: green;
            }
             .v2{
                width: 300px;
                height: 300px;
                background-color: red;
                display: flex;
                justify-content:center;
                align-items:center;
            }
        </style>

无论红色盒子和绿色盒子宽高如何变化,绿色盒子永远在红色盒子水平中央,垂直中央。

方法二:用定位

给父元素添加相对定位,子元素添加绝对定位,并将子元素定在离父元素上下左右位置相同的地方

  <div class="v2">
            <div class="v1"></div>
        </div>
        <style>
            .v1{
                width: 100px;
                height: 100px;
                background-color: green;
                position: absolute;
                top: 0;
                bottom: 0;
                left: 0;
                right: 0;
                margin: auto;
            }
             .v2{
                width: 300px;
                height: 300px;
                background-color: red;
                position: relative;
            }
        </style>

无论红色盒子和绿色盒子宽高如何变化,绿色盒子永远在红色盒子水平中央,垂直中央。

方法三:用定位+位移

  <div class="v2">
            <div class="v1"></div>
        </div>
        <style>
            .v1{
                width: 100px;
                height: 100px;
                background-color: green;
                position: absolute;
                top: 50%;
                left: 50%;
                transform:translate(-50%,-50%) ;
            }
             .v2{
                width: 300px;
                height: 300px;
                background-color: red;
                position: relative;
            }
        </style>

无论红色盒子和绿色盒子宽高如何变化,绿色盒子永远在红色盒子水平中央,垂直中央。

你可以使用 CSS实现这个要求。首先需要给图片文字所在的 div 元素添加一个共同的父元素,然后使用 flex 布局来控制它们的位置排列方式。下面是一个可能的实现: ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> .product-qianduan { display: flex; align-items: center; gap: 20px; } .product-img1 img { width: 100%; } .a3 { flex: 1; } </style> </head> <body> <div class="product-qianduan"> <div class="product-img1"> <img src="./淘宝图片/QQ截图20230417104920.jpg" alt=""> </div> <div> <div class="a1">Web前端开发工程师</div> <div class="a2">技术要求:</div> <div class="a3" style="text-indent:2em;">对常用的一些JS框架了解,如jQuery,YUI等。掌握最基本的JavaScript计算方法编写。对目前互联网流行的网页制作方法(Web2.0)HTML+CSS,以及各大浏览器兼容性有很大的了解。对前沿技术(HTML5+CSSS3)的基本掌握。<span style="color:rgb(11, 245, 245)"><u>Web前端技术</u></span>你究竟掌握了多少...</div> <div class="a4">更新时间:2015年05月19日20点(已有323人点赞)</div> </div> </div> <hr> <div class="a5">相关技术文章8篇</div> </body> </html> ``` 在这个示例中,我们使用了 `display: flex` 属性将父元素 `.product-qianduan` 设置为 flex 布局,并使用 `align-items: center` 将子元素垂直居中。`.a3` 元素使用了 `flex: 1` 属性将它的度设置为剩余空间的全部。这样就可以让图片文字整成一个盒子,并且图片移动到下面一整段文字的左边。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值