【发布时间】:2021-11-08 00:01:08
【问题描述】:
在网格中,列可以增长和缩小以填满可用空间,这与每列的内容宽度成正比。请参阅下面示例的<span> 部分。
我也想让<input> 列增长和缩小,就像<span>s 一样。
.grid {
display: grid;
grid-template-columns: repeat(2, auto);
width: 300px;
}
.column {
border: 1px solid gray;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
<h3>span</h3>
<div class="grid">
<span class="column" contenteditable></span>
<span class="column" contenteditable></span>
</div>
<h3>input</h3>
<div class="grid">
<input class="column" type="text">
<input class="column" type="text">
</div>
当前行为:
想要的行为:
列应该根据两列宽度之间的比率改变大小这一事实是最重要的目标(在演示中,<span>s 已经这样做了)
我尝试根据其值的 HTML 宽度设置输入的最小宽度和宽度,使用 the createElement method here 计算。但是当设置了 min-width 或 width 时,输入的大小不能再被网格改变,而是网格会调整输入顶部的列的大小,并且椭圆永远不会显示。
我认为无论如何设置宽度都是错误的方法,CSS 可以计算出输入有多少内容吗?
【问题讨论】:
-
输入没有内容,但有价值。
-
@TemaniAfif 被渲染为内容(事实上,像 MS Edge 这样的一些浏览器甚至在 Inspect Element 中将其显示为影子 DOM 子项)。我希望在 CSS 中找到一种方法来将输入元素的值视为内容。
标签: javascript html jquery css