2011-06-08 112 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