CSS 水平垂直居中的方式

这篇具有很好参考价值的文章主要介绍了CSS 水平垂直居中的方式。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

在不知道子元素宽高的情况下,水平垂直居中的六种方式:

1、弹性盒子布局方式来实现(flex)。

 2、绝对定位 + transform

3、table标签

4、display:table-cell

5、display: grid

6、writing-mode 属性


在不知道子元素宽高的情况下,水平垂直居中的六种方式:

在实际使用最好测试下最低版本是否支持对应的实现方式,尽量选各个浏览器支持比较好的,或者最常见的实现方式。

1、弹性盒子布局方式来实现(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>水平垂直居中</title>
</head>
<style>
    html,
    body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
    }

    .box {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 100%;
        height: 100%;
        background: #00affc;
    }

    .box1 {
        background: pink;

    }
</style>

<body>
    <div class="box">
        <div class="box1">
            中间盒子水平垂直居中了
        </div>
    </div>
</body>

</html>

CSS 水平垂直居中的方式

浏览器兼容性:

CSS 水平垂直居中的方式

 2、绝对定位 + transform

<!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>水平垂直居中</title>
</head>
<style>
    html,
    body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
    }

    .box {
        width: 100%;
        height: 100%;
        background: #00affc;
    }

    .box1 {
        background: pink;
        transform: translate(-50%, -50%);
        position: absolute;
        top: 50%;
        left: 50%;

    }
</style>

<body>
    <div class="box">
        <div class="box1">
            中间盒子水平垂直居中了
        </div>
    </div>
</body>

</html>

浏览器兼容性:

CSS 水平垂直居中的方式 

3、table标签

<!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>水平垂直居中</title>
</head>
<style>
    html,
    body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
    }
    table {
        width: 100%;
        height: 100%;
    }

    .box {
        background: #00affc;
    }

    .box1 {
        text-align: center;
    }
</style>

<body>
    <table>
        <tbody>
            <tr>
                <td class="box">
                    <div class="box1">中间盒子水平垂直居中了</div>
                </td>
            </tr>
        </tbody>
    </table>
</body>

</html>

兼容性:基本都支持,只是书写起来比较繁琐,多层嵌套。

4、display:table-cell

<!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>水平垂直居中</title>
</head>
<style>
    html,
    body {
        width: 100%;
        height: 100%;
        padding: 0;
        margin: 0;
    }

    .box {
        width: 300px;
        height: 300px;
        background: red;
        display: table-cell;
        text-align: center;
        vertical-align: middle;
    }

    .box1 {
        display: inline-block;
    }
</style>

<body>
    <div class="box">
        <div class="box1">中间盒子水平垂直居中了</div>
    </div>
</body>

</html>

浏览器兼容性:主流浏览器基本上都支持的。

5、display: grid

<!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>水平垂直居中</title>
</head>
<style>
    html,
    body,
    .box {
        width: 100%;
        height: 100%;
    }

    .box {
        display: grid;
    }

    .box1 {
        align-self: center;
        justify-self: center;
    }
</style>

<body>
    <div class="box">
        <div class="box1">123123</div>
    </div>

</body>

</html>

浏览器兼容性:最新主流浏览器基本上兼容,对于老版本浏览器可能会有兼容性问题。

6、writing-mode 属性

<!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>水平垂直居中</title>
</head>
<style>
    html,
    body,
    .content {
        width: 100%;
        height: 100%;
    }

    .content {
        writing-mode: vertical-lr;
        text-align: center;
    }

    .box {
        writing-mode: horizontal-tb;
        display: inline-block;
        text-align: center;
        width: 100%;
    }

    .box1 {
        display: inline-block;
        margin: auto;
        text-align: left;
    }
</style>

<body>
    <div class="content">
        <div class="box">
            <div class="box1">123123</div>
        </div>
    </div>

</body>

</html>

浏览器兼容性问题:

CSS 水平垂直居中的方式

 文章来源地址https://www.toymoban.com/news/detail-477127.html

到了这里,关于CSS 水平垂直居中的方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS元素水平垂直居中的方法

    父级设置为 相对定位 ,子级 绝对定位 ,并且四个定位属性的值都设置了 0 ,那么这时候 如果子级没有设置宽高,则会被拉开到和父级一样宽高 这里子元素 设置了宽高 ,所以宽高会按照我们的设置来显示,但是实际上 子级的虚拟占位已经撑满了整个父级 ,这时候再给它一

    2023年04月09日
    浏览(38)
  • 面试:CSS让一个元素水平垂直居中

    水平居中 对于 行内元素 : text-align: center ; 对于确定宽度的块级元素: (1)width和margin实现。 margin: 0 auto ; (2)绝对定位和margin-left: (父width - 子width)/2, 前提是父元素position: relative 对于宽度未知的块级元素 (1) table标签配合margin左右auto实现水平居中 。使用table标签(或直

    2024年02月06日
    浏览(42)
  • CSS实现元素水平垂直居中的各种方法

    关于 CSS 如何将元素进行水平垂直居中的几种常用方法 前言         在设计网页页面的过程中,总会有将元素或者文字进行水平或者垂直居中的要求,各种CSS样式调整,搞的头都大了。这里将会介绍 CSS 中几种常用到的水平垂直居中的方法,希望能够对你有所帮助。 接下

    2024年02月08日
    浏览(46)
  • 元素水平垂直居中的5种方式

    1、利用弹性盒子 将父元素设置为display:flex; 通过:  justify-content: center;  align-items: center; 来设置元素的垂直水平居中 2、将元素转化为表格的形式 父元素设置:  display: table-cell;  vertical-align: middle;  text-align: center; 子元素需设置: display: inline-block;  vertical-align: middle;//消除行

    2024年01月16日
    浏览(45)
  • CSS图片水平垂直居中的三种方法

    我们知道img元素为行内快元素,所以首先设置图片元素的父元素里文字水平居中,行高与整体高度一致。 其次最重要的是设置图片元素的vertical-align属性为middle,该属性定义行内元素的基线相对于该元素所在行的基线的垂直对齐方式。 代码示例: 具体方式是先使用定位让图

    2024年02月13日
    浏览(47)
  • 【前端 | CSS系列】—— 第1篇:如何实现水平垂直居中对齐?

    单纯的元素 左右居中 对齐: 块级元素 可以使用 magrin: 0 auto ; 非块级元素 使用 text-align: center;

    2024年02月13日
    浏览(51)
  • css 实现 html 元素内文字水平垂直居中的N种方法

            上一篇博文写了div 中元素居中的N种常用方法,那么单个html元素:div(块级元素代表),span(行内元素代表)中的文字如何水平垂直都居中呢?实现方法如下:         本文例子使用的 html body结构下的模型如下:         例子居中效果都如下图: 注:当把div

    2024年02月13日
    浏览(54)
  • css-4:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

    1、背景 在开发中,经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素。 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类。 居中元素(子元素)的宽高已

    2024年02月14日
    浏览(37)
  • CSS水平垂直居中(最常见的三种方案flex、grid、absolute)

    本文简单介绍一下现代 CSS 中最常见的三种水平垂直居中方案。 html: css: 方案1:父元素设置 flex 布局,并设置主轴以及交叉轴的对齐方式: 方案2:父元素设置 flex 布局,子元素设置 margin: auto : 父元素设置 grid 布局,以及 place-items: center 。 place-items  是  align-items  和 

    2024年01月16日
    浏览(47)
  • css基础知识七:元素水平垂直居中的方法有哪些?如果元素不定宽高呢?

    一、背景 在开发中经常遇到这个问题,即让某个元素的内容在水平和垂直方向上都居中,内容不仅限于文字,可能是图片或其他元素 居中是一个非常基础但又是非常重要的应用场景,实现居中的方法存在很多,可以将这些方法分成两个大类: 居中元素(子元素)的宽高已知

    2024年02月11日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包