html - CSS网格的网格模板区域将所有内容移动到右上角
问题描述
我在 HTML 中有以下代码
.gridDiv {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 1fr 2fr;
grid-template-areas:
"topLeft topMiddle topRight"
"blank form blank";
}
.leftButton {
background-color: yellow;
grid-area: topLeft;
}
.middleButton {
background-color: red;
grid-area: topMiddle;
}
.rightButton {
background-color: green;
grid-area: topRight;
}
.bottomForm {
grid-area: form;
}
<div class="gridDiv">
<div class="leftButton"><button>This should be in top-left</button></div>
<div class="middleButton"><button>This should be in top middle</button></div>
<div class="rightButton"><button>This should be in top right</button></div>
<div class="bottomForm">
<form action="/action_page.php">
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname" value="John"><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname" value="Doe"><br><br>
<input type="submit" value="Submit">
</form>
</div>
</div>
:
我希望包含按钮的 3 个 div 位于顶行并位于左上、中上和右上角,而我希望包含表单的 div 位于中间的底行,如gridDiv 样式中的网格模板区域。但是,这显然行不通,由于某种原因,所有内容都被移到了右上角-有人知道问题出在哪里吗?
解决方案
blank
似乎是一个保留字,用一个点代替就可以了。
我还没有找到任何关于它的官方规范。除了https: //drafts.csswg.org/css-grid/#grid-area-concept
.gridDiv {
display: grid;
grid-template-columns: 1fr 2fr 1fr;
grid-template-rows: 1fr 2fr;
grid-template-areas: "topLeft topMiddle topRight"
". form .";
}
.leftButton {
background-color: yellow;
grid-area: topLeft;
}
.middleButton {
background-color: red;
grid-area: topMiddle;
}
.rightButton {
background-color: green;
grid-area: topRight;
}
.bottomForm {
grid-area: form;
}
<div class="gridDiv">
<div class="leftButton"><button>This should be in top-left</button></div>
<div class="middleButton"><button>This should be in top middle</button></div>
<div class="rightButton"><button>This should be in top right</button></div>
<div class="bottomForm">
<form action="/action_page.php">
<label for="fname">First name:</label><br>
<input type="text" id="fname" name="fname" value="John"><br>
<label for="lname">Last name:</label><br>
<input type="text" id="lname" name="lname" value="Doe"><br><br>
<input type="submit" value="Submit">
</form>
</div>
</div>
推荐阅读
- kotlin - 你如何在 Kotlin 中进行合格的超类构造函数调用?
- javascript - 将自定义道具传递给私有路由 - React Typescript
- boost - cmake find_package(Boost COMPONENTS python) 失败,但其他 boost 包工作
- ios - 在 swift ui 中找不到 PopUpButtonPickerStyle
- firebase - Flutter 从 Firebase 获取用户数据
- node.js - 在 Visual Studio 代码中使用 babel、webpack、nodemon 调试 nodejs 项目的 LF 正确方法
- javascript - 尝试在 Nodejs 中使用 fast-csv 返回二维数组但不返回
- android - 如何在基于 tensorflow lite 对象检测 android 的应用程序中添加文本转语音?
- ios - 将 CSS 实现到 Swift 动画中
- java - Jenkins Pipeline:在 docker 容器中构建 docker