无法使用CSS网格实现网格布局[重复]

2024-01-05

在尝试了解有关 CSS 网格的更多信息时,我尝试创建一些不同的网格布局。我试图创建的内容如下:

这是其中的一个步骤:

.wrapper {
    display: grid;
    grid-gap: 15px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: repeat(8, 1fr);
}

.wrapper .first_box {
    grid-column-start: 2;
    grid-column-end: 4;

    grid-row-start: 1;
    grid-row-end: 7;
}

.wrapper .second_box {
    grid-column-start: 1;
    grid-column-end: 2;

    grid-row-start: 1;
    grid-row-end: 4;

}

.wrapper .third_box {
    grid-column-start: 4;
    grid-column-end: 5;

    grid-row-start: 1;
    grid-row-end: 4;
}

.wrapper .fourth_box {
    grid-column-start: 1;
    grid-column-end: 2;
}

.wrapper .fifth_box {
    grid-column-start: 4;
    grid-column-end: 5;
}

.wrapper div {
    border: 2px solid rgb(233,171,88);
    border-radius: 5px;
    background-color: rgba(233,171,88,.5);
    padding: 1em;
    color: #d9480f;
}
<div class="wrapper">
  <div class="first_box">
  First Box
  </div>
  
   <div class="second_box">
  Second Box
  </div>
  
   <div class="third_box">
    Third Box
  </div>
  
   <div class="fourth_box">
  Fourth Box
  </div>
  
    <div class="fifth_box">
  Fifth Box
  </div>
  
</div>

此时,前两个框看起来是正确的。问题是当我尝试设置左下框和右下框的行时。对于这两个盒子,我有grid-row-start设置为左上角和右上角框结束的位置,我有grid-row-end设置到大盒子结束的地方。这会导致框恢复到默认大小:

.wrapper {
    display: grid;
    grid-gap: 15px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: repeat(8, 1fr);
}

.wrapper .first_box {
    grid-column-start: 2;
    grid-column-end: 4;

    grid-row-start: 1;
    grid-row-end: 7;
}

.wrapper .second_box {
    grid-column-start: 1;
    grid-column-end: 2;

    grid-row-start: 1;
    grid-row-end: 4;

}

.wrapper .third_box {
    grid-column-start: 4;
    grid-column-end: 5;

    grid-row-start: 1;
    grid-row-end: 4;
}

.wrapper .fourth_box {
    grid-column-start: 1;
    grid-column-end: 2;
    
    grid-row-start: 4;
    grid-row-end: 7;
}

.wrapper .fifth_box {
  
    grid-column-start: 4;
    grid-column-end: 5;
    
    grid-row-start: 4;
    grid-row-end: 7;
 
}

.wrapper div {
    border: 2px solid rgb(233,171,88);
    border-radius: 5px;
    background-color: rgba(233,171,88,.5);
    padding: 1em;
    color: #d9480f;
}
<div class="wrapper">
  <div class="first_box">
  First Box
  </div>
  
   <div class="second_box">
  Second Box
  </div>
  
   <div class="third_box">
    Third Box
  </div>
  
   <div class="fourth_box">
  Fourth Box
  </div>
  
    <div class="fifth_box">
  Fifth Box
  </div>

</div>

我不知道为什么会发生这种情况。如果有人能帮助我理解为什么会发生这种情况,我将不胜感激。


请注意您的用法grid-row-start and grid-column-end- 他们指的是网格线。这里有 8 列 - 所以网格线编号从 0 到 9。请参阅下面更正的演示:

.wrapper {
    display: grid;
    grid-gap: 15px;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    grid-template-rows: repeat(8, 1fr);
}

.wrapper .first_box {
    grid-column-start: 2;
    grid-column-end: 4;

    grid-row-start: 1;
    grid-row-end: 9; /* CHANGED */
}

.wrapper .second_box {
    grid-column-start: 1;
    grid-column-end: 2;

    grid-row-start: 1;
    grid-row-end: 5; /* CHANGED */

}

.wrapper .third_box {
    grid-column-start: 4;
    grid-column-end: 5;

    grid-row-start: 1;
    grid-row-end: 5; /* CHANGED */
}

.wrapper .fourth_box {
    grid-column-start: 1;
    grid-column-end: 2;
    
    grid-row-start: 5; /* CHANGED */
    grid-row-end: 9; /* CHANGED */
}

.wrapper .fifth_box {
  
    grid-column-start: 4;
    grid-column-end: 5;
    
    grid-row-start: 5; /* CHANGED */
    grid-row-end: 9; /* CHANGED */
 
}

.wrapper div {
    border: 2px solid rgb(233,171,88);
    border-radius: 5px;
    background-color: rgba(233,171,88,.5);
    padding: 1em;
    color: #d9480f;
}
<div class="wrapper">
  <div class="first_box">
  First Box
  </div>
  
   <div class="second_box">
  Second Box
  </div>
  
   <div class="third_box">
    Third Box
  </div>
  
   <div class="fourth_box">
  Fourth Box
  </div>
  
    <div class="fifth_box">
  Fifth Box
  </div>

</div>

来到差异当你span the first-column到不同的行,因为您只指定了1fr对于每一行,您没有设置高度网格容器,这将需要一个height认为网格布局算法认为合适。


But if you see closely you can see a pattern - the smallest box is occupying only as much space as its content. So we can talk ratios here.

剩余空间的分配发生在所有非柔性轨道之后 尺寸调整功能已达到最大值。此类的总大小 从可用空间中减去行或列,得到剩余空间,然后在弹性大小的行之间划分 列与其弹性系数成比例.

MDN https://www.w3.org/TR/css-grid-1/#fr-unit- 上面的强调是我的。

在第一种情况下,第一列和第三列的高度比为 3:1,而第二列延伸 6 行。 (这1 in the 3:1 比例盒子的高度与其内容一样多)

第二种情况也是如此,但是第一列和第三列的高度比为 3:3,而第二列延伸 6 行。第一列和第三列的比率可以简化为 1:1,第二列的比率可以简化为 2。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法使用CSS网格实现网格布局[重复] 的相关文章

  • 如何访问 javascript 文件中的查询字符串

    可能的重复 如何获取查询字符串值 https stackoverflow com questions 901115 how can i get query string values 可以说 我们有一个
  • 如何更改谷歌图表标题字体大小?

    如何更改谷歌图表中标题的字体大小 var options title My Daily Activities backgroundColor transparent is3D true 在这样的选项中使用 titleTextStyle va
  • 移动设备中的 CSS 响应式设计不适用于 uc 浏览器和 Opera Mini [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 UC 和 Opera Min 浏览器上的响应式网站无法正常工作 我们使用媒体查询进行响应式设计 我搜索了一下 发现了一些
  • 单击表格行可显示更多信息

    我正在尝试使用 jQuery 来实现以下目标 当单击一个表格行时 会显示表格行内的 info div 如果单击另一个表格行 则当前显示的任何其他 info 元素将被隐藏 并根据表格行显示新的 info div已被点击 这个问题是 代码无法正
  • 如何使用CSS缩进多级select optgroup?

    只是试图通过嵌套深度缩进 optgroup 块 我尝试了一般margin left规则 嵌套元素然后尝试应用相同的规则 尝试过padding left 这样的缩进可能吗 看起来很简单 P 在下面的示例中 标记为 client2 a 的 op
  • CSS3 变换:IE 中的缩放

    我想使用CSS3属性transform scale div transform scale 0 5 0 5 有没有办法在 Internet Explorer 8 及更低版本中模仿这个 可能与filter或者 JavaScript 解决方案
  • 如何在 Shiny 中动态渲染的 textInput 添加样式元素

    你好堆栈溢出 在我最近提出的问题中 我已经解决了一些与动态渲染 UI 元素相关的主要问题 并在一些了不起的人的帮助下动态创建了观察者 参见此处 动态渲染的 UI 如何在第二次运行时删除旧的反应变量 https stackoverflow c
  • 重新加载页面时删除哈希值?

    我使用哈希来切换我的图像滑块 当我重新加载页面并且哈希值设置为 e h 3 没有图片 当图库在几秒钟后自动滑动时 它显示下一个 所以几秒钟内什么也没有 有没有办法在加载页面时检查哈希并将其删除 我只想关心那些用散列为页面添加书签的人 问候
  • 固定 Div 与静态 div 的滚动条重叠

    我无法按照我想要的方式设计布局 我有一个内容区 content 您可以在示例图像中看到的灰色 里面有一个黄色元素 这个div是position static height 100 现在我有一个 left paneldiv 也 与positi
  • 如何在 CSS 中将 RadioButton 图标样式设置为无(在 Flex 3 中)?

    您可以通过在 CSS 中设置以下值来在 Flex 中设置 RadioButton 的外观 upSkin Embed overSkin Embed ownSkin Embed disabledSkin Embed selectedUpSkin
  • 为什么我的 CSS 属性被覆盖/忽略?

    我对 CSS 层次结构 有一些问题 不确定将其称为层次结构是否正确 我正在尝试设置以下 HTML 的样式 section section
  • 悬停时从下到上填充按钮背景,从下到上填充文本颜色

    我需要创建按钮 并且在悬停时它不仅必须从下到上填充背景颜色 而且还必须从下到上更改文本颜色 我对这里的方法很满意 CSS 悬停时背景从下到上填充 https stackoverflow com questions 51562340 css
  • 从选择 onChange 调用 javascript 函数 [重复]

    这个问题在这里已经有答案了 所以我有一个简单的 HTML 选择框和一个 javascript 警报功能 我希望选择框有一个 onchange 事件来调用 javascript 警报函数 这是我到目前为止所拥有的 HTML div Type
  • 使用 jQuery inputmask 插件范围 0-100

    如何创建 0 到 100 范围内的掩码 document ready function masked inputmask 您可以使用jquery inputmask regex extensions js为了那个原因 你可以找到带有所有扩展
  • 对其中一个具有相同 tabindex 的焦点的所有元素应用相同的效果

    在我的上一篇文章中 我问了如何通过 css 选择器使不可聚焦的元素变得可聚焦 答案是使用tabindex 现在我希望 当具有选择器的元素获得焦点 单击 时 选择器选择的另一个元素也能获得效果 这可能听起来很奇怪 但我很久以前就可以不小心这样
  • Angular SlickGrid 对齐标题文本

    我正在使用角度SlickGrid并希望将列标题中的文本居中或右对齐 并非所有列都以相同的方式 我发现 有一个headerCssClass列定义中的属性 但我一直尝试 这种样式似乎从未被应用 对于列定义 id sourceNumber nam
  • Bootstrap 4 移动导航栏消失

    我刚刚从 Bootstrap 3 转换为 Bootstrap 4 但我的移动导航栏出现问题 使用切换按钮展开导航栏时 导航消失 我不明白为什么会发生这种情况 导航栏下方有一个大屏幕 但整个移动导航向上移动 如下面的 gif 所示 以下是导航
  • 如何在html中定义条件换行符?

    我希望这根绳子断在 如果需要的话 没有地方可以写了 7 380 Ft 159 Ft term kd jjal like 7 380 000 Ft 159 125 Ft term kd jjal 如何在html中实现这一点 nbsp 产生 错
  • 从字节数组设置 img src

    我需要设置img src我在对象中拥有的字节数组的属性 img
  • 如何从 CSS 选择器中提取类名?

    故事 我目前正在构建一个 ESLint 规则 以警告在 CSS 选择器定位器中使用引导布局导向和角度技术类 目前我在字符串方法中使用简单的子字符串 for var i 0 i lt prohibitedClasses length i if

随机推荐

  • 语法错误或访问冲突:1140 GROUP 列的混合 laravel

    我已经编写了这个带有分页的查询 items Item select items sub category name category name sub category slug category slug gt join sub cate
  • 使用 apache mod_proxy 缺少 Doctype HTML 部署

    我有一个奇怪的问题 我的 Vaadin 应用程序在我的计算机 本地 上运行良好 我刚刚部署了网站 现在遇到了问题 The 第一行中的标签丢失 我不知道为什么 但我认为这会导致一些问题 因为网站正在以 Quirks 模式显示 有趣的是 当我在
  • 当用户关闭(弹出)窗口时调用一些 JavaScript

    当用户关闭窗口时可以调用一些JS吗 我搜索了 JS 事件处理程序 发现只有 onunload 它会在用户离开页面时调用脚本 而不必关闭窗口 预期用途是调用 AJAX 脚本来取消设置与弹出窗口相关的一些会话 可能有也可能没有更好的方法来实现这
  • OCaml:在 GTK 中嵌入 openGL

    我想将 openGL 图形嵌入 OCaml 中的 GTK 程序中 您对如何做到这一点有什么想法吗 编辑 Tk 似乎已经解决了问题Togl http togl sourceforge net 在我的 ubuntu 中 我有包 liblablg
  • 如何在ServiceStack中使用Dapper

    目前 我使用 OrmLite 进行数据库操作 我也计划使用 Dapper ORM 但是谁能告诉我如何将 DapperORM 集成到 ServiceStack 中 我是否需要使用 Dapper 和插件来实现 IDbConnection 和 I
  • getopt 不解析参数的可选参数

    在 C 中 getopt long 不会解析命令行参数参数的可选参数 当我运行程序时 可选参数无法被识别 就像下面运行的示例一样 respond praise John Kudos to John respond blame John Yo
  • 到底什么是幺半群同态?

    我读过有关幺半群同态的内容幺半群态射 乘积和余积 http blog higher order com blog 2014 03 19 monoid morphisms products coproducts 并且无法100 理解 作者说
  • 从 AKKeyboardView 创建 MIDI 文件

    目前我正在使用AKKeyboardView本质上连接到AKRhodesPiano对象 我想知道是否有一种简单的方法可以从中生成 MIDI 文件 我看到AKKeyboardView有noteOn and noteOff函数 这确实产生了MID
  • symfony2 + 学说:修改 `onFlush` 上的子实体:“无效参数数量:绑定变量的数量与令牌数量不匹配”

    我有一个1 m之间的关系Subitem and SubitemColor 现在我想将一些数据保存在onFlush修改一些数据SubitemColor 问题 执行控制器时我收到以下错误消息 您也可以在下面看到 执行 INSERT INTO S
  • 如何使用 Prawn 将 base64 字符串转换为 PNG,而不保存在 Rails 中的服务器上

    所以我尝试使用 Prawn gem 将画布的 PNG 图像嵌入到 PDF 中 Base64字符串是使用canvas的toDataURL 函数生成的 由于图像只需要在 PDF 中 我试图避免将其保存在服务器上 Params base64str
  • 在qml中恢复最小化的无框窗口

    我有一个默认的 main cpp 文件 并在 qml 文件中编写一些代码 像这样的事情 ApplicationWindow id mainWindow width 640 height 480 color white visible tru
  • 如何使用 TypeScript 和来自 github 的 Chartjs.definitelyTyped 计算出 Chartjs

    我想使用 Chartjs chartjs org 作为我的图表工具以及使用 TypeScript 的 AngularJS 我已经从 GitHub 安装了 AbsoluteTyped for Chartjs 以便将 Chartjs 图表的创建
  • Google App Maker 应用部署后无法运行

    我使用 Google App Maker 构建了一个应用程序 其中有一个通过查询参数链接到表格的建议框 该应用程序在预览模式下可以正常工作 但是当我部署它时 建议框没有提出任何建议 我之前已经部署过一次 我记得没有选择框 并且它工作正常 我
  • 它什么时候会在 Android 应用程序的 admob 上生效

    我制作了集成admob的Android应用程序 然后我在我的测试设备上运行这个应用程序 它会在屏幕上显示广告横幅 但广告的状态仍然是无效的 这让我很困惑 你知道admob什么时候激活吗 运行这个从市场商店下载的应用程序 提前致谢 AdMob
  • 测试路径/System.IO.Directory::Exists 未按预期工作

    我在使用 Powershell CmdLet 测试路径时遇到问题 我在服务器上创建了共享 Servername MyShare 它允许一组用户仅创建文件并附加数据 而其他用户只能读取和删除这些文件 第一组不允许执行任何其他操作 包括读取权限
  • 我如何在 PHPExcel 中制作项目符号列表

    我试图使用将 html 标签从 php 转换为 excelPHPExcel 一切都很顺利 除了我找不到如何制作项目符号列表 PHPExcel 中是否存在此功能 我已经扫描了 PHPExcel 的一些纪录片 但我找不到任何有关子弹的内容 我想
  • 华为系统文件“源代码与字节码不匹配”

    我们正在调试其中一个应用程序的一个问题 该问题仅影响华为设备 为了调试它 我们购买了 P20 Lite ANE LX1 我们在代码中放置了一些断点 并正在调查完整的堆栈跟踪 该设备安装了 Android 8 0 我们在 Android St
  • pthread_create() 如何工作?

    鉴于以下情况 pthread t thread pthread create thread NULL function NULL 到底是做什么的pthread create do to thread 会发生什么thread在它加入主线程并终
  • org.json.JSONException:第 550 个字符处的预期文字值

    我正在尝试从 asset 文件夹中读取 JSON 文件 但我得到以下异常 org json JSONException Expected literal value at character 550 我搜索了很多东西但没有找到任何相关的东西
  • 无法使用CSS网格实现网格布局[重复]

    这个问题在这里已经有答案了 在尝试了解有关 CSS 网格的更多信息时 我尝试创建一些不同的网格布局 我试图创建的内容如下 这是其中的一个步骤 wrapper display grid grid gap 15px grid template