如何防止输入元素超过 CSS 网格列的宽度
How to prevent Input element from exceeding width of CSS grid column
我想使用CSS网格来管理多个表单的布局。目标是使用两列网格,其中标签元素位于左列,输入元素位于右列。左列的宽度需要调整大小以适合最宽的标签,右列应占据 space 的剩余部分。这是我正在使用的网格列模板:
grid-template-columns: max-content 1fr;
我面临的问题是输入元素经常会超过右列的宽度。不幸的是,在输入元素上将 max-width
设置为 100% 不会将其大小限制为列宽。如果我将 width
设置为 100%,那确实会限制大小,但随着响应式表单变宽,从设计角度来看,输入的 100% 宽度太宽了。
这是标记:
<body>
<div class="container">
<label>This is label 1</label>
<input type="text" maxlength="100">
<label>This is label 2</label>
<input type="text" maxlength="100">
<label>This is label 3 which is a bit longer</label>
<input type="text" maxlength="100">
<label>This is label 4</label>
<input type="text" maxlength="100">
</div>
</body>
这是CSS:
*, *::before, *::after {
box-sizing: border-box;
}
.container {
width: 300px;
/* width: 1300px; */
margin: 2rem auto;
background-color:lightblue;
display: grid;
grid-template-columns: max-content 1fr;
align-items: center;
grid-column-gap: 24px;
grid-row-gap:8px;
}
input {
padding: .5rem .5rem;
max-width:100%;
/* width: 12rem; */
justify-self: end;
}
这是一个CodePen。
问:如何将输入的宽度限制在 200 像素左右并保持正确刷新?同时,随着表格越来越窄,它不能超过网格列的宽度。
.container input {min-width: 0;}
我想使用CSS网格来管理多个表单的布局。目标是使用两列网格,其中标签元素位于左列,输入元素位于右列。左列的宽度需要调整大小以适合最宽的标签,右列应占据 space 的剩余部分。这是我正在使用的网格列模板:
grid-template-columns: max-content 1fr;
我面临的问题是输入元素经常会超过右列的宽度。不幸的是,在输入元素上将 max-width
设置为 100% 不会将其大小限制为列宽。如果我将 width
设置为 100%,那确实会限制大小,但随着响应式表单变宽,从设计角度来看,输入的 100% 宽度太宽了。
这是标记:
<body>
<div class="container">
<label>This is label 1</label>
<input type="text" maxlength="100">
<label>This is label 2</label>
<input type="text" maxlength="100">
<label>This is label 3 which is a bit longer</label>
<input type="text" maxlength="100">
<label>This is label 4</label>
<input type="text" maxlength="100">
</div>
</body>
这是CSS:
*, *::before, *::after {
box-sizing: border-box;
}
.container {
width: 300px;
/* width: 1300px; */
margin: 2rem auto;
background-color:lightblue;
display: grid;
grid-template-columns: max-content 1fr;
align-items: center;
grid-column-gap: 24px;
grid-row-gap:8px;
}
input {
padding: .5rem .5rem;
max-width:100%;
/* width: 12rem; */
justify-self: end;
}
这是一个CodePen。
问:如何将输入的宽度限制在 200 像素左右并保持正确刷新?同时,随着表格越来越窄,它不能超过网格列的宽度。
.container input {min-width: 0;}