dmz社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 866|回复: 0

[Html/Css] 移动端常见问题(水平居中和垂直居中)

[复制链接]
  • TA的每日心情

    2024-2-20 11:15
  • 签到天数: 11 天

    [LV.3]偶尔看看II

    878

    主题

    4343

    帖子

    3987

    积分

    终身会员[A]

    Rank: 7Rank: 7Rank: 7

    积分
    3987

    发表于 2020-3-17 18:40:19 | 显示全部楼层 |阅读模式

    本站资源全部免费,回复即可查看下载地址!

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    先准备个测试模板



    [HTML] 纯文本查看 复制代码
    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <style>
            .bg{
                width:100%;
                height:100%;
                position: fixed;
                top:0;
                right:0;
                bottom:0;
                left:0;
                background-color: lightblue;
            }
            .text{
                background:#fff;
                border-radius: 5px;
            }
        </style>
    </head>
    <body>
        <div class="bg">
            <span class="text">单行文字水平垂直居中</span>
        </div>
    </body>
    </html>




    1.png


    内联元素,没有设置宽高
    1、自身水平垂直居中
    设置padding (左右方向有效,上下方向无效)

    2.png

    2、在容器内水平垂直居中
    方法一:


    [HTML] 纯文本查看 复制代码
     position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);



    3.png


    方法二:flex布局(适合移动端


    [HTML] 纯文本查看 复制代码
                display: flex;
                justify-content: center;
                align-items: center;



    内联块元素,没有设置宽高
    1、自身水平垂直居中
    设置padding

    [HTML] 纯文本查看 复制代码
    display:inline-block;
                padding:30px 20px;

    4.png

    2、在容器内水平垂直居中
    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);

    块元素,没有设置宽高
    1、自身水平垂直居中
    [HTML] 纯文本查看 复制代码
                display:block;
                padding:20px 0;
                text-align: center;


    2、在容器内水平垂直居中

    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);

    6.png

    设置position为absolute,相当于把元素变为了inline-block,因此宽度没有占据整行
    如果需要的话,可以手动添加width

    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);
                width:100%;

    指定容器宽高,内联块
    [HTML] 纯文本查看 复制代码
                display:inline-block;
                width:200px;
                height:100px;

    1、自身水平垂直居中
    单行文字可以使用line-height

    [HTML] 纯文本查看 复制代码
                text-align:center;
                line-height:100px;



    多行文字
    [HTML] 纯文本查看 复制代码
    display: flex;
                justify-content: center;
                align-items: center;

    这种是将多行文字看做一个整体水平垂直居中,因此不是每一行文字都是水平居中效果
    7.png

    2、在容器内水平垂直居中

    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);

    或者
    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                margin-left:-100px;
                margin-top:-50px;

    指定容器宽高,块元素
    1、自身水平垂直居中
    单行文字

    [HTML] 纯文本查看 复制代码
                display:block;
                width:200px;
                height:100px;
    
                text-align:center;
                line-height:100px;

    多行文字

    [HTML] 纯文本查看 复制代码
                display: flex;[/font][/color][/align]            justify-content: center;
                align-items: center;

    2、在容器内水平垂直居中

    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                margin-left:-100px;
                margin-top:-50px;
    

    或者

    [HTML] 纯文本查看 复制代码
                position: absolute;
                top:50%;
                left:50%;
                transform:translate(-50%,-50%);

    如果单纯水平居中,可以控制margin

    [HTML] 纯文本查看 复制代码
                margin:0 auto;

    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|小黑屋|本站代理|dmz社区

    GMT+8, 2024-12-26 11:13 , Processed in 0.194232 second(s), 34 queries .

    Powered by Discuz! X3.4 Licensed

    Copyright © 2001-2021, Tencent Cloud.

    快速回复 返回顶部 返回列表