You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在CSS Grid中仅让顶部行高度大于其他行?

解决CSS Grid垂直表格顶部行高设置问题

要让垂直表格的顶部行高度为100px,其余行保持25px,你不需要给顶部单元格单独加行高样式,直接在Grid容器的grid-template-rows属性里单独定义第一行高度,再批量设置剩余行高度即可。

核心修改逻辑

你原来的grid-template-rows: repeat(4, 25px);会让所有4行统一为25px,改成以下写法就能实现需求:

grid-template-rows: 100px repeat(3, 25px);

这行代码的意思是:第一行(顶部表头行)高度设为100px,剩下3行数据行各25px,刚好匹配你的表格结构(1行表头+3行数据)。

另外你之前给.top类加grid-template-rows是无效的——.top是Grid容器的子项,grid-template-rows是Grid容器专属属性,只能作用于容器本身,不能直接给子元素设置。

修改后的完整代码

CSS

body {
  font-family: "Benton Sans", "Helvetica Neue", helvetica, arial, sans-serif;
  margin: 2em;
}

h1 {
  font-style: italic;
  color: #373fff;
}

.grid {
    display: grid;
    grid-auto-flow: column;
    grid-template-columns: repeat(auto-fill, minmax(min-content, 1fr));
    /* 关键修改:单独指定第一行高度,批量设置剩余行 */
    grid-template-rows: 100px repeat(3, 25px);
    border-top: 1px solid black;
    border-right: 1px solid black;
}

.grid > span {
    padding: 8px 4px;
    border-left: 1px solid black;
    border-bottom: 1px solid black;
}

/* 可保留.top类给表头单元格加额外样式,比如加粗、居中 */
.top {
    font-weight: bold;
    display: flex;
    align-items: center;
}

HTML

<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Hello!</title>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    
    <link rel="stylesheet" href="/style.css">
    <script src="/script.js" defer></script>
  </head>  
  <body>
<div class="grid">
        <span class="top"></span>
        <span class="top">name</span>
        <span class="top">city</span>
        <span class="top">dob</span>
    

        <span>Person 1</span>
        <span>Aaron Kris</span>
        <span>Philippines</span>
        <span>1991-05-23T14:19:51</span>
     
        <span>Person 2</span>
        <span>Simeon McLaughlin</span>
        <span>Singapore</span>
        <span>2012-03-07T00:08:36</span>
        
        <span>Person 3</span>
        <span>Kelsie Shanahan</span>
        <span>Brazil</span>
        <span>1985-03-10T20:13:04</span>
      
</div>
  </body>
</html>

补充说明

  • grid-auto-flow: column的设置是正确的,它让Grid按列排列,形成垂直表格的结构。
  • 如果后续数据行数变化,只需调整repeat()里的数字即可,比如新增2行数据,就改成grid-template-rows: 100px repeat(5, 25px);。

内容的提问来源于stack exchange,提问作者dman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 22:22:41