首页 > 其他分享 >CSS如何实现垂直居中?

CSS如何实现垂直居中?

时间:2022-09-21 20:11:51浏览次数:53  
标签:居中 color 元素 height 垂直 width background display CSS

通过vertical-align: middle

注意:vertical-align: middle生效的元素必须是 display: inline-block;且必须有一个兄弟元素做参照(其原理是寻找兄弟元素中最高的元素做参照让自身的中点高度和参照的中点高度对齐)

<style>
        .box1 {
            width: 600px;
            height: 300px;
            background-color: aqua;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: black;
            display: inline-block;
            vertical-align: middle;
        }

        .box3 {
            background-color: brown;
            width: 0px;
            height: 100%;
            display: inline-block;
            vertical-align: middle;
        }
    </style>
View Code
<body>
    <div class="box1">
        <div class="box2"></div>
        <div class="box3"></div>
    </div>
</body>

通过display: flex

注意:给父元素display: flex;给目标元素align-self: center

 <style>
        .box1 {
            width: 600px;
            height: 300px;
            background-color: aqua;
            display: flex
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: black;
            align-self: center;
        }

    </style>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>

通过line-height

注意:此方法以只父元素height,然后让目标元素的line-height等于父元素height;适用于目标元素为文本的时候

    <style>
        .box1 {
            width: 600px;
            height: 300px;
            background-color: aqua;
            display: flex
        }

        .box2 {
            line-height: 300px;
            width: 50%;
            height: 50%;

        }

    </style>
<body>
    <div class="box1">
        <p class="box2">123456</p>
    </div>
</body>

通过transform和绝对定位

注意:此时未知父元素高度;那么就需要先将元素定位到容器的中心位置,然后使用 transform 的 translate 属性,将元素的中心和父容器的中心重合,从而实现垂直居中:

    <style>
        .box1 {
            width: 600px;
            height: 300px;
            background-color: aqua;
            position: relative;
        }

        .box2 {
            width: 100px;
            height: 100px;
            background-color: beige;
            position: absolute;
            top: 50%;
            transform: translate(0, -50%);

        }

    </style>
<body>
    <div class="box1">
        <div class="box2"></div>
    </div>
</body>

 

标签:居中,color,元素,height,垂直,width,background,display,CSS
From: https://www.cnblogs.com/qianduan-Wu/p/16716988.html

相关文章

  • CSS3转换
    简介CSStransform属性允许你旋转,缩放,倾斜或平移给定元素。这是通过修改CSS视觉格式化模型的坐标空间来实现的。转换(transform)你可以简单理解为变形。只能转换由......
  • CSS 网格布局:Metro 设计块
    CSS网格布局:Metro设计块来自CompetaIT档案;Raymon于2017年10月12日首次发表。是时候我们不必再摆弄浮点数和表格了!Flexbox已经是前端开发者行业中的一个......
  • 在 CSS 中使 div 居中的 5 种方法
    在CSS中使div居中的5种方法5waystocenteradivinCSS你觉得很难在CSS中将div居中吗?你并不孤单,我的兄弟,许多开发人员有时会在将div居中时感到困惑,包括......
  • CSS3过渡
    简介transitionCSS属性是transition-property,transition-duration,transition-timing-function和transition-delay的一个简写属性。transition:[transition-proper......
  • 2022 年 5 个用于 Web 开发的最佳 HTML 和 CSS 课程
    2022年5个用于Web开发的最佳HTML和CSS课程互联网已成为我们日常生活的重要组成部分,不断发展以连接全球越来越多的人。但是要了解现代网络的运作方式,您不仅需......
  • Neon 切换按钮 — CSS — 分步指南
    Neon切换按钮—CSS—分步指南HTML对于HTML,我们需要两个元素。切换类和切换内部的圆圈。<divclass="toggle"><divclass="circle"></div></div>CSS......
  • CSS 面试问题的答案——第三部分 (21–34/34)
    CSS面试问题的答案——第三部分(21–34/34)本文是我最后发表的“CSS面试题答案”系列。以下是所有文章的列表:CSS面试问题的答案——第一部分(1-10)CSS面试问题......
  • CSS改table边框
    <styletype="text/css">table{width:200px;height:200px;/*border-collapse:collapse;separate属性值为默认......
  • CSS 网格 Gird 布局
    CSS网格Gird布局创建网格Gird通过将属性display的值设为grid,HTML元素就可以变为网格容器。注意:在CSS网格中,父元素称为容器(container),它的子元素称为项(items)。......
  • css-flexbox
    在缩放整个页面的时候,里面的元素可以随着页面缩放而变化设置display属性为flex就可以了display:flex;  决定容器中的主轴方向用flex-directionex:flex-direction......