我尝试搜索 Stack Overflow、mozilla 文档和 CSS 技巧来找出为什么我的 grid-template-areas 总是收到无效的属性值,但无法弄清楚。有人可以指出为什么我收到此错误消息以及我做错了什么吗?
我正在尝试创建一个计算器。为此,我尝试创建网格单元以将运算符和关键数字输入其中。
提前致谢。
html, body {
margin: 0;
padding: 0;
box-sizing: border-box;
display: flex;
justify-content: center;
align-items: center;
height: 100%;
width: 100%;
}
#gridContainer {
border: 1px solid black;
display: grid;
grid-template-columns: 4rem 4rem 4rem 4rem;
grid-template-rows: 6rem 6rem 6rem 6rem 6rem 6rem;
grid-template-areas:
"s s s s"
"o o o o"
"n n n o"
"n n n o"
"n n n o"
"z z d c";
}Run Code Online (Sandbox Code Playgroud)
<html>
<body>
<div id="gridContainer">
<div id="screen"></div>
<button id="clear" class="clear" type="button" value="clear" >AC</button>
<button id="negativeNumber" class="negative" type="button" value="signs">+ / -</button>
<button id="percent" class="percentage" type="button" value="percent">%</button>
<button id="divide" class="operator" type="button" value="/">/</button>
<button id="seven" class="number" type="button" value="7">7</button>
<button id="eight" class="number" type="button" value="8">8</button>
<button id="nine" class="number" type="button" value="9">9</button>
<button id="multiply" class="operator" type="button" value="*">*</button>
<button id="four" class="number" type="button" value="4">4</button>
<button id="five" class="number" type="button" value="5">5</button>
<button id="six" class="number" type="button" value="6">6</button>
<button id="subtract" class="operator" type="button" value="-">-</button>
<button id="one" class="number" type="button" value="1">1</button>
<button id="two" class="number" type="button" value="2">2</button>
<button id="three" class="number" type="button" value="3">3</button>
<button id="addition" class="operator" type="button" value="+">+</button>
<button id="zero" class="number" type="button" value="0">0</button>
<button id="decimal" class="number" type="button" value=".">.</button>
<button id="equals" class="equal" type="button" value="=">=</button>
</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
Tan*_*lby 21
使用 . 创建CSS 网格布局时有一些规则grid-template-areas。
\n\n违反这些规则将导致您的值无效,因此布局无法正常工作。
\n
您的声明无效的原因grid-template-areas是它违反了规则#2。您尝试多次定义每个网格区域并将内容复制到网格上的两个位置。您已复制o第三、第四和第五行中的区域。一旦修复,属性值就变得有效。如果需要,请随意更改区域名称,但在使用 时请始终牢记上述规则grid-template-areas。
我假设s代表“屏幕”、o“操作”、n“数字”等等。如果您将第二行定义为让每个区域都像o这样o o o o,那么您就不能n n n o在下一行中使用,因为您通过多次定义网格区域并将内容复制到网格内的两个位置来违反规则#2。我更新了您的代码,因此grid-template-areas声明有效。
html, body {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100%;\n width: 100%;\n}\n\n\n#gridContainer {\n border: 1px solid black;\n display: grid;\n grid-template-columns: 4rem 4rem 4rem 4rem;\n grid-template-rows: 6rem 6rem 6rem 6rem 6rem 6rem;\n grid-template-areas: \n "s s s s"\n "O O O O"\n "o n n n"\n "o n n n"\n "o n n n"\n "z z d c";\n}Run Code Online (Sandbox Code Playgroud)\r\n<html>\n<body>\n <div id="gridContainer">\n <div id="screen"></div>\n <button id="clear" class="clear" type="button" value="clear">AC</button>\n <button id="negativeNumber" class="negative" type="button" value="signs">+ / -</button>\n <button id="percent" class="percentage" type="button" value="percent">%</button>\n <button id="divide" class="operator" type="button" value="/">/</button>\n <button id="seven" class="number" type="button" value="7">7</button>\n <button id="eight" class="number" type="button" value="8">8</button>\n <button id="nine" class="number" type="button" value="9">9</button>\n <button id="multiply" class="operator" type="button" value="*">*</button>\n <button id="four" class="number" type="button" value="4">4</button>\n <button id="five" class="number" type="button" value="5">5</button>\n <button id="six" class="number" type="button" value="6">6</button>\n <button id="subtract" class="operator" type="button" value="-">-</button>\n <button id="one" class="number" type="button" value="1">1</button>\n <button id="two" class="number" type="button" value="2">2</button>\n <button id="three" class="number" type="button" value="3">3</button>\n <button id="addition" class="operator" type="button" value="+">+</button>\n <button id="zero" class="number" type="button" value="0">0</button>\n <button id="decimal" class="number" type="button" value=".">.</button>\n <button id="equals" class="equal" type="button" value="=">=</button>\n </div>\n</body>\n</html>Run Code Online (Sandbox Code Playgroud)\r\n