CSS 将输入文本包含为 100% 宽度
因此,当我像本示例一样设置输入时,文本框(因为默认情况下有边框和填充)将比 200px 宽。
<div style="width:200px; background-color:red;">
<input type="text" name="fname" style="width:100%;"/>
</div>
我知道我可以通过为输入标记设置一个类并使用此 CSS 标记它来强制文本框适应 200px
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
有没有更好的方法来使此文本框正确调整大小,即按照我的需要填充 100%做什么?我不能使用固定尺寸。我使用 CSS 主题,因此文本框填充、边距等在编译时未知。用户可以即时更改它们。因此,无论文本框的内边距、边框和边距如何,该解决方案都必须有效。
So when I set the input like this example the text box, because it has a border and padding by default, will be wider than 200px.
<div style="width:200px; background-color:red;">
<input type="text" name="fname" style="width:100%;"/>
</div>
I know I can force the text box to fit within the 200px by setting a class to the input tag and tagging it with this CSS
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
Is there a better way to get this text box to size correctly, i.e. to fill 100% as I want it to do? I cannot use fixed sizes. I am using CSS themes so the text box padding, margins, etc are not known at compile time. They can be changed out by the user on the fly. So the solution must work regardless of what the text box's padding, border, and margin is.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我想你已经回答了你自己的问题。
box-sizing: border-box;
实际上是让元素适合其父元素的唯一 CSS 方法。 css-tricks 在这里对此进行了详细介绍。http://css-tricks.com/box-sizing/
我不知道有任何其他除了使用 javascript 之外,您还可以使用 CSS 来执行一些计算,然后修改您的输入元素。
I think you have already answered your own question.
box-sizing: border-box;
is really the only CSS means of getting the element to fit inside its parent. css-tricks goes into great detail about this here.http://css-tricks.com/box-sizing/
I am unaware of any other CSS you could use other than using javascript to perform some calculations and then modifying your input elements.
是的。你可以做到。
您可以在不使用
box-sizing
和 不清楚 解决方案(例如width~=99%
)的情况下完成此操作。jsFiddle 演示:
HTML 标记:
CSS:
Yes. You can do it.
You can do it without using
box-sizing
and not clear solutions likewidth~=99%
.Demo on jsFiddle:
HTML markup:
CSS:
?
但说真的,这里有一个 jsfiddle。
?
But seriously, though, here's a jsfiddle.