當然,塊元素上的width: 100%
填充容器,但僅當邊框,填充和邊距爲零時才填充容器。把這樣的一個input
放在一個包含div
的填充中有訣竅,但我很好奇爲什麼簡單地input {display: block; width: auto;}
不起作用。建議?如何使用填充文本輸入填充其容器
回答
我同意centr0爲什麼width: auto
不起作用。
如果你真的想得到一個input
爲其容器的全寬,那麼下面的工作。鑑於:
<div id="Container">
<form>
<input type="text" />
</form>
</div>
與CSS這樣做:
form {
padding: 0 0 0 14px;
}
input {
padding: 5px;
width: 100%;
margin: 0 0 0 -14px;
}
說明:顯然,在input
的-14px保證金抵消加入form
元素的填充。不太明顯的是14px
來自哪裏。它等於input
的左/右5px填充加上input
元素邊框寬度的默認值(在我測試的所有瀏覽器上爲2px)。所以2 + 5 + 5 + 2 = 14.
要真正確定你是一致的跨瀏覽器,你應該明確地設置邊框寬度爲你所期望的input
。如果你想要一個不同的填充(或者更粗/更細的邊框),那麼只需重做數學。 3px填充將是10px而不是14px,7px填充將是18px而不是14px。
例如,您可以將#Container
(也可以是body
本身的寬度僅設爲默認爲頁面寬度的100%)的寬度設置爲所需的寬度,並且上面的CSS應與其寬度匹配。
如果我沒記錯的話,輸入的默認大小不會跨越其容器的寬度。 「width:auto;」就像將樣式重置爲其默認值一樣。
如果您未使用Reset CSS Stylesheet,則輸入元素將具有瀏覽器設置的一些默認樣式,這可能包括填充和邊距。
也,width:auto
將給瀏覽器默認。嘗試width:100%
提示問題的問題是'width:100%'不允許邊框或填充,因爲它們會使其超過100%。 – 2010-07-12 18:53:50
我很困惑這個問題到底是什麼呢?似乎回答自己。填充,邊距和邊框使它超過100%,因爲這是[css box模型](http://www.w3.org/TR/CSS2/box.html)的工作原理。總寬度=寬度+邊框+邊距+填充。 'width:auto'不起作用,因爲'width:auto'意味着不同的東西。 – Jake 2010-07-13 23:18:17
重置容器的填充可以解決問題。
td {
padding: 0 1em;
}
- 1. 縮放文本以填充其容器
- 2. 填充UILabel文本填充其寬度
- 3. 填充輸入文本
- 4. 如何防止使用自動填充選擇填充輸入?
- 5. 自動填充/預填充輸入字段與文本形式h1使用jquery
- 6. 文本輸入容器的填充寬度
- 7. 填充DIV容器
- 8. Kendo:DropDownList填充容器
- 9. 時禁用其他輸入填充
- 10. 如何使用Javascript填充輸入文本字段
- 11. 如何使用python填充輸入文本字段?
- 12. 如何使用輸入的文本字段填充NSMutableArray
- 13. jquery填充輸入或文本區域
- 14. AJAX來填充輸入型文本
- 15. 預填充輸入文本框
- 16. 在Coldfusion中填充文本輸入
- 17. 調整格填充與文本輸入
- 18. L4:填充多個文本輸入
- 19. 填充HTML輸入字段的文本
- 20. 從文本輸入中刪除填充
- 21. 輸入文本字段填充
- 22. 動態填充文本輸入
- 23. CSS:填充父容器的文本框
- 24. 如何用輸入值填充屬性?
- 25. 輸入元素來填充其容器的剩餘寬度
- 26. 使段落文字填充容器
- 27. 如何使設置的文本大小填充容器
- 28. CSS - 如何強制文本輸入填充容器的剩餘空間
- 29. 文本框填充
- 30. 如何用文本字段的輸入填充數組
我認爲'form> div.container> input'對於大多數情況在語義上更好。儘管如此,這個解決方案似乎是最好的解決方案。 – 2010-11-08 00:56:30