我試圖讓<input type="text">
(此後稱爲「文本框」)通過設置其width
至100%
填充父容器。這工作,直到我給文本框填充。然後將其添加到內容寬度並且輸入字段溢出。請注意,在Firefox中,只有在將內容呈現爲符合標準時纔會發生這種情況在怪癖模式下,另一個盒子模型似乎適用。CSS:填充父容器的文本框
下面是在所有現代瀏覽器中重現行爲的最小代碼。
#x {
background: salmon;
padding: 1em;
}
#y, input {
background: red;
padding: 0 20px;
width: 100%;
}
<div id="x">
<div id="y">x</div>
<input type="text"/>
</div>
我的問題:如何獲得文本框,以適應集裝箱?
通知:爲<div id="y">
,這很簡單:只需設置width: auto
。但是,如果我嘗試爲文本框執行此操作,效果會有所不同,並且文本框將其默認行數視爲寬度(即使我爲文本框設置了display: block
)。
/編輯:大衛的「解決方案」當然會工作。但是,我不想修改HTML - 我特別不想添加沒有語義功能的虛擬元素。這是我想要不惜一切代價避免的典型案例divitis。這隻能是最後一招。
什麼是負填充?如果負值保證金不起作用。你甚至可以有負填充? – Sekhat 2009-04-17 09:20:04