永恒V之星 2023-09-19 16:15 采纳率: 33.3%
浏览 3
已结题

css的grid布局div怎样垂直居中

grid网格布局中的div文本设置垂直居中不起作用

<div id="div-station">
                <div id="station1">工位1</div>
                <div id="station2">工位2</div>
</div>

<div id="div-weld">
                <div id="s1" class="工位1">
                    <div class="weld" id="s1-weld1" onclick="weldClick(this)">焊枪1</div>
                    <div class="weld" id="s1-weld2" onclick="weldClick(this)">焊枪2</div>
                    <div class="weld" id="s1-weld3" onclick="weldClick(this)">焊枪3</div>
                    <div class="weld" id="s1-weld4" onclick="weldClick(this)">焊枪4</div>
                    <div class="weld" id="s1-weld5" onclick="weldClick(this)">焊枪5</div>
                    <div class="weld" id="s1-weld6" onclick="weldClick(this)">焊枪6</div>
                    <div class="weld" id="s1-weld7" onclick="weldClick(this)">焊枪7</div>
                    <div class="weld" id="s1-weld8" onclick="weldClick(this)">焊枪8</div>
                </div>
                <div id="s2" class="工位2">
                    <div class="weld" id="s2-weld1" onclick="weldClick(this)">焊枪1</div>
                    <div class="weld" id="s2-weld2" onclick="weldClick(this)">焊枪2</div>
                    <div class="weld" id="s2-weld3" onclick="weldClick(this)">焊枪3</div>
                    <div class="weld" id="s2-weld4" onclick="weldClick(this)">焊枪4</div>
                    <div class="weld" id="s2-weld5" onclick="weldClick(this)">焊枪5</div>
                    <div class="weld" id="s2-weld6" onclick="weldClick(this)">焊枪6</div>
                    <div class="weld" id="s2-weld7" onclick="weldClick(this)">焊枪7</div>
                    <div class="weld" id="s2-weld8" onclick="weldClick(this)">焊枪8</div>
                </div>
            </div>


#div-weld {
    display: grid;
    grid-template-rows: 100%;
    grid-template-columns: 50% 50%;
}

#s1 {
    display: grid;
    grid-template-rows: 25% 25% 25% 25%;
    grid-template-columns: 50% 50%;
    
}

#s2 {
    
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: repeat(4, 1fr);
    
}

.weld {
    align-items: center;
    text-align: center;
    font-size: 35px;
    border: 2px solid darkseagreen;
    color: white;
      // line-hight:160px 写死可以垂直居中,但浏览器缩小时不能自适应。
}

显示结果是 焊枪1-8文本只能水平居中,不能垂直居中。这部分高宽都是自适应的,不能设置固定值

img

然后参考了一下博文:https://www.jianshu.com/p/1140cb9cf7cf 也不成功。

请问这个css要怎样写才能达到效果。

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-09-19 19:14
    关注

    【以下回答由 GPT 生成】

    问题: 请问如何在CSS的Grid布局中实现div的垂直居中?我尝试使用如下的代码来实现,但未能成功:

    <div id="div-station">
        <div id="station1">工位1</div>
        <div id="station2">工位2</div>
    </div>
    
    <div id="div-weld">
        <div id="s1" class="工位1">
            <div class="weld" id="s1-weld1" onclick="weldClick(this)">焊枪1</div>
            <div class="weld" id="s1-weld2" onclick="weldClick(this)">焊枪2</div>
            <div class="weld" id="s1-weld3" onclick="weldClick(this)">焊枪3</div>
            <div class="weld" id="s1-weld4" onclick="weldClick(this)">焊枪4</div>
            <div class="weld" id="s1-weld5" onclick="weldClick(this)">焊枪5</div>
            <div class="weld" id="s1-weld6" onclick="weldClick(this)">焊枪6</div>
            <div class="weld" id="s1-weld7" onclick="weldClick(this)">焊枪7</div>
            <div class="weld" id="s1-weld8" onclick="weldClick(this)">焊枪8</div>
        </div>
    </div>
    

    解答: 在Grid布局中,要实现div的垂直居中,您可以使用自动的Grid属性,并设置div的父容器为Grid布局。以下是具体的解决方案:

    首先,将需要垂直居中的div放置在一个父容器中,并将该父容器设置为display: grid

    #div-station, #div-weld {
        display: grid;
    }
    

    接下来,您可以使用Grid布局的align-items属性将div垂直居中,将其设置为center

    #div-station, #div-weld {
        display: grid;
        align-items: center;
    }
    

    最后,将您的代码放入上述的HTML结构中。

    <div id="div-station">
        <div id="station1">工位1</div>
        <div id="station2">工位2</div>
    </div>
    
    <div id="div-weld">
        <div id="s1" class="工位1">
            <div class="weld" id="s1-weld1" onclick="weldClick(this)">焊枪1</div>
            <div class="weld" id="s1-weld2" onclick="weldClick(this)">焊枪2</div>
            <div class="weld" id="s1-weld3" onclick="weldClick(this)">焊枪3</div>
            <div class="weld" id="s1-weld4" onclick="weldClick(this)">焊枪4</div>
            <div class="weld" id="s1-weld5" onclick="weldClick(this)">焊枪5</div>
            <div class="weld" id="s1-weld6" onclick="weldClick(this)">焊枪6</div>
            <div class="weld" id="s1-weld7" onclick="weldClick(this)">焊枪7</div>
            <div class="weld" id="s1-weld8" onclick="weldClick(this)">焊枪8</div>
        </div>
    </div>
    

    这样,您的div应该会在Grid布局中垂直居中显示。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 11月24日
  • 修改了问题 9月19日
  • 创建了问题 9月19日

悬赏问题

  • ¥20 关于php中URL传递GET全局变量的问题
  • ¥15 怎么改成循环输入删除(语言-c语言)
  • ¥15 安卓C读取/dev/fastpipe屏幕像素数据
  • ¥15 pyqt5tools安装失败
  • ¥15 mmdetection
  • ¥15 nginx代理报502的错误
  • ¥100 当AWR1843发送完设置的固定帧后,如何使其再发送第一次的帧
  • ¥15 图示五个参数的模型校正是用什么方法做出来的。如何建立其他模型
  • ¥100 描述一下元器件的基本功能,pcba板的基本原理
  • ¥15 STM32无法向设备写入固件