css - CSS 网格之谜 : padding in grid items

标签 css html grid frontend web-frontend

好吧,我使用 CSS 网格制作了一个漂亮的电子邮件表单。一切都很好,除了当我尝试在表单元素上应用一些填充时。然后事物开始流出网格。

网格系统在计算网格项的最终大小时似乎没有考虑元素内部的填充。我尝试使用 fr-s 和 auto 来设置这些元素的宽度,以及各种无用的技巧,但没有任何效果。

这是代码和一些屏幕截图,可以帮助大家感受到我的痛苦。 :D

输入字段中没有填充: /image/L9uy1.jpg/image/dQCFm.jpg

带填充: /image/xBeDo.jpg/image/1dk1l.jpg

<form id="email">
<div class="form-group" id="form-name">
    <label for="name-field">Name</label>
    <input type="text" name="name-field" id="name-field" required>
</div>
<div class="form-group" id="form-address">
    <label for="address-field">Email Address</label>
    <input type="text" name="address-field" id="address-field" required>
</div>
<div class="form-group" id="form-message">
    <label for="message-field">Message</label>
    <textarea name="message-field" id="message-field" cols="32" rows="8" required></textarea>
</div>
<button id="send-button" type="submit" form="email" name="send-it">Send it</button>

还有 CSS:

#email {
    display: grid;
    grid-gap: 2rem;
    grid-template-areas:
    "name address"
    "message message"
    "send send";
    grid-template-columns: 1fr 1fr;
    justify-items: start;
    margin: 1rem auto 0 auto;
    width: 80%;
}

#form-name {
    grid-area: name;
}

#form-address {
    grid-area: address;
}

#form-message {
    grid-area: message;
}

.form-group * {
    display: block;
}

#form-name, #form-address, #form-message {
    width: 100%;
}

#name-field, #address-field, #message-field {
    width: 100%;
}

#name-field, #address-field, #message-field {
    padding: 0.75rem 1.5rem;
}

最佳答案

将其添加到代码顶部

*{
padding: 0px;
margin: 0px;
box-sizing: border-box;
}

关于css - CSS 网格之谜 : padding in grid items,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54442665/

相关文章:

html - 如何使图像的一部分可点击?

javascript - DJANGO - 根据值更改文本颜色(HTML 和 JS)

Android - 拆分可绘制对象

html - 柔性 : how to apply styles to text child

css - 将 sass 文件捆绑到单个 sass 文件中

javascript - 新 chrome 和 opera 版本中的闪烁问题

c# - 如何在代码中以编程方式动态更新具有更多行和列的列表框中的网格(C# 和 WPF)

css - 如何在 Bootstrap 面板的一 Angular 创建一个按钮?

html 标记未在 DOM 中的正确位置创建

angularjs - KendoUI 网格 + AngularJS : Adding column template