继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

css中关于元素的水平居中和竖直居中

Just90
关注TA
已关注
手记 7
粉丝 9
获赞 271

在web前端实际项目中,我们通常需要让元素居中:1. 一段文本的水平居中,2. 一张图片的水平居中,3. 一个块级元素的水平居中;4. 单行文本的竖直居中,5. 不确定高度的一段文本竖直居中,6. 确定高度的块级元素竖直居中,7. 居中其他方法。

  1. 单行文本的水平居中,使用 text-align: center; (edge,firefix,chrome,opera,ie测试通过)
<!DOCTYPE html>
<html>
<head>
    <title>文字水平居中</title>   
    <meta charset="utf-8">
    <style>
    .text-center {
        width: 200px;
        height: 100px;
        text-align: center;
        background-color: #f54;
    }
    </style>
</head>
<body>
    <div class="text-center">水平居中</div>
</body>
</html>

文字水平居中

2 . 让图片水平居中,让父元素使用 text-align: center; (edge,firefix,chrome,opera,ie测试通过):

<!DOCTYPE html>
<html>
<head>
    <title>图片水平居中</title>   
    <meta charset="utf-8">
    <style>
    .text-center {
        width: 300px;
        height: 150px;
        text-align: center;
        background-color: #f54;
    }
    </style>
</head>
<body>
    <div class="text-center">
        <img src="baidu.jpg" alt="baidu">
    </div>
</body>
</html>

图片水平居中

  1. 块级元素水平居中,使用 margin-left: auto; margin-right: auto;(edge,firefix,chrome,opera,ie测试通过):
<!DOCTYPE html>
<html>
<head>
    <title>块级元素居中</title>   
    <meta charset="utf-8">
    <style>
    .parent-box {
        width: 250px;
        height: 150px;
        background-color: #f98;
    }
    .child-box {
        width: 200px;
        height: 100px;
        background-color: #f00;
        margin-left: auto;
        margin-right: auto;
    }
    </style>
</head>
<body>
    <div class="parent-box">
        <div class="child-box">块级元素水平居中</div>
    </div>
</body>
</html>

图片描述

  1. 单行文本的竖直居中,使用 line-height: ...; (edge,firefix,chrome,opera,ie测试通过):
<!DOCTYPE html>
<html>
<head>
    <title>单行文本竖直居中</title> 
    <meta charset="utf-8">
    <style>
    .line-height {
        width: 250px;
        height: 100px;
        line-height: 100px;
        background-color: #f00;
    }
    </style>
</head>
    <div class="line-height">单行文本竖直居中</div>
</body>
</html>

单行文本竖直居中

  1. 不确定高度的一段文本竖直居中,这里不适用高度,使用 padding-top: ...; padding-bottom: ...;padding-top和padding-bottom值相同(edge,firefix,chrome,opera,ie测试通过):
<!DOCTYPE html>
<html>
<head>
    <title>不确定高度的一段文本竖直居中</title>   
    <meta charset="utf-8">
    <style>
    .padding {
        width: 150px;
        background-color: #f00;
        padding-top: 30px;
        padding-bottom: 30px;
    }
    </style>
</head>
    <div class="padding">不确定高度的一段文本竖直居中</div>
</body>
</html>

不确定高度的一段文本竖直居中

  1. 确定高度的块级元素竖直居中,使用 position: absolute; top: 50%; margin-top: ...;(margin-top的值为自身高度的值的一半的负值);(edge,firefix,chrome,opera,ie测试通过):
<!DOCTYPE html>
<html>
<head>
    <title>确定高度的块级元素竖直居中</title>    
    <meta charset="utf-8">
    <style>
    .parent-box {
        position: relative;
        width: 250px;
        height: 150px;
        background-color: #f00;
    }
    .child-box {
        position: absolute;
        top: 50%;
        width: 200px;
        height: 100px;
        margin-top: -50px;
        background-color: #f54;
    }
    </style>
</head>
    <div class="parent-box">
      <div class="child-box">确定高度的块级元素竖直居中</div>
    </div>
</body>
</html>

确定高度的块级元素竖直居中

  1. 竖直居中的其他办法:通过使用 transform: translateY(-50%); 添加厂商前缀(edge,firefix,chrome,opera,ie测试通过)
<!DOCTYPE html>
<html>
    <head>
        <title>verticalmiddle</title>
        <meta charset="utf-8">
        <style>
            .parent-box{
                width: 200px;
                height: 200px;
                background-color: #f00;
            }
            .child-box{
                position: relative;
                top: 50%;
                width: 100px;
                height: 100px;
                background-color: #0f0;
                -webkit-transform: translateY(-50%); 
                     -o-transform: translateY(-50%); 
                        transform: translateY(-50%);
            }
        </style>
    </head>
    <body>
        <div class="parent-box">
            <div class="child-box"></div>
        </div>
    </body>
</html>

竖直居中其他办法

  1. 居中其他方法,使用 position: absolute; top: 0; right: 0; bottom: 0; left: 0; margin: auto;(edge,firefix,chrome,opera,ie测试通过):
<!DOCTYPE html>
<html>
<head>
    <title>居中其他方法</title>   
    <meta charset="utf-8">
    <style>
    .parent-box {
        position: relative;
        width: 250px;
        height: 150px;
        background-color: #f00;
    }
    .child-box {
        position: absolute;
        top: 0;
        right: 0;
        bottom: 0;
        left: 0;
        width: 200px;
        height: 100px;
        margin: auto;
        background-color: #f54;
    }
    </style>
</head>
    <div class="parent-box">
      <div class="child-box">居中其他方法</div>
    </div>
</body>
</html>

居中其他办法

打开App,阅读手记
18人推荐
发表评论
随时随地看视频慕课网APP

热门评论

我现在实现的话是用媒体查询写很多个屏幕设置它的top和left值,感觉好麻烦

有没有不知道固定高宽是用b/s的栅格系统确定宽度。然后让两行文字一直在图片中间显示的例子

查看全部评论