2011-06-08 271 views
0

如何使宽度为100%的元素和填充符合其他元素而不改变父元素的宽度?元素宽度100%和填充

var inp = $('<input type="text" style="padding:4px; width:100%" />') 
     .appendTo('<div style="width:200px"></div>'); 

回答

0

在这种情况下,您不能一起使用width: 100%padding: 4px。元素将始终是8px宽于其父项。您必须使用您的输入元素的像素值。你的情况是width: 192px

盒子模型总是(除了一些较旧的IE版本)将填充(和边框)添加到元素宽度。因此,如果宽度为100%水平填充的每个像素都会使元素比其父元素宽。

您可以通过填充100%的宽度来伪造输入样式。

<div style="width:200px"> 
    <div style="border: 1px solid blue; background: #fff"> 
     <div style="padding:2px 4px"> 
      <input type="text" style="display:block; width:100%; border:0; padding:0" /> 
     </div> 
    </div> 
</div> 
1

input元件默认为display: inline。如果你想让width: 100%工作,请将它们设为display: block

+0

但是,如果你确定父元素的宽度来确定元素的总宽度,那么你怎么能够有更多的输入呢? – clarkk 2011-06-08 09:56:48

+0

好点,但不是真的是他的问题的答案,还是我错了? – DanielB 2011-06-08 10:03:24

+0

@clarkk:如果你想要他们并排,那么你不希望他们的宽度是'100%',还是我错了?你总是可以使用'float:left'来并排阻塞元素。 – 2011-06-08 10:04:40

相关问题