0
点赞
收藏
分享

微信扫一扫

【element】中el-row如何使内容垂直居中

狐沐说 2022-03-11 阅读 124

解决方案

解决方案放在最前面??,原谅我套娃行为。

这是我找到这位老哥的博客
在这里插入图片描述

本来问题到这里就应该结束了,可是我也看官方文档了啊,为社么没有效果呢,看了下评论真的时给我逗乐了hhhh。
在这里插入图片描述
其实,我心里的那句话和这位不知名的老哥时一样的。试了各种姿势了还是没有效果,不过也只是因为困扰太久没有解决问题憋在心里的火气吧。??那到底时因为什么没有效果了呢?

一、分析

首先看下我没有实现前的效果
这是没实现前的效果
这里先用红蓝两个色块代替我想放置到垂直居中的元素,我理想的位置应该时黄x的位置啊。

<body>
    <el-container class="outer" id="app">
        <el-main>
            <el-row type="flex" justify="center" align="middle">
                <div style="background-color: blue;width: 100px;height: 100px;color: #fff;">A</div>
                <div style="background-color: red;width: 100px;height: 100px;color: #fff">B</div>
            </el-row>
        </el-main>
    </el-container>
</body>
<style>
    body, html{
        margin: 0px;
        padding: 0px;
        height: 100%;
        width: 100%;
    }
    .el-main {
        height: 100%;
    }
    .outer {
        background-color: #DCDFE6;
        height: 100%;
        width: 100%;
    }
</style>

这里已经设置了,align属性可是效果却没有实现。前端惯例先F12
这是外层的el-main:
在这里插入图片描述
这是el-row:
在这里插入图片描述
我的意识里,align这个属性就应当让让row位于main的中央。那回事属性冲突导致样式没有生效吗?
在这里插入图片描述
查看样式发现,样式已生效并没有冲突。但是这两条属性却有些陌生,他们具体实现的效果是什么样的呢,要想了解这两条属性,就要先了解什么是:

弹性布局 display:flex;

  • 这才是本文的重点----好墨迹。
* 详细讲解

菜鸟教程-Flex 布局语法教程

搞懂这个一切就很明了啦,说的也很详细易懂,赞??。

问题原因

在我上面的代码中,el-row元素才是真正flex布局的容器,而我el-row高度没有设置默认为auto被色块撑起来的,已经没有多余的上下空间,自然也就没有效果。所以要做的就是给el-row高度100%

二、解决方案

代码:

<body>
    <el-container class="outer" id="app">
        <el-main>
            <el-row type="flex" justify="center" align="middle">
                <div style="background-color: blue;width: 100px;height: 100px;color: #fff;">A</div>
                <div style="background-color: red;width: 100px;height: 100px;color: #fff">B</div>
            </el-row>
        </el-main>
    </el-container>
</body>
<style>
    body, html{
        margin: 0px;
        padding: 0px;
        height: 100%;
        width: 100%;
    }
    .el-main {
        height: 100%;
    }
    .el-row {
        height: 100%; # 这里
    }
    .outer {
        background-color: #DCDFE6;
        height: 100%;
        width: 100%;
    }
</style>

效果:
在这里插入图片描述
???

举报

相关推荐

0 条评论