Gre*_*son 5 css firefox textarea padding
我试图在IE8,Firefox和Safari中的textarea内部以像素为单位提供一致的宽度,以便文本内容尽可能地以可预测和一致的方式包装行.
Firefox正在做一些有点奇怪的事情:它在textarea的内容空间与其他两个浏览器之间有一个额外的填充像素,与一个类似装备的div块相比.
将此类应用于textarea和div时,差异是可见的,div中的文本触及红色背景的左外边缘,但textarea中的文本尽管填充为零,仍具有1 px填充式偏移:
.testbox{
padding:0;
margin:0;
border:0;
background: red;
width: 40px;
height: 40px;
font-size: 12px;
line-height: 16px;
}
Run Code Online (Sandbox Code Playgroud)
填充的其他值最终显示一个额外的偏移像素与div.
关于是否有办法欺骗Firefox渲染textarea就好像它是一个div,或者为textarea调整这个不填充但看起来像填充属性的任何想法?
哇,我还不知道答案,但我确实尝试了一些东西,它看起来就像一个文本区域,当你向它应用边框、边距和填充时,不会改变它的宽度,而是将边框等放在里面。尝试这个:
.testbox {
padding: 10;
margin: 10;
border: 5px solid black;
background: red;
width: 40px;
height: 40px;
font-size: 12px;
line-height: 16px;
}
Run Code Online (Sandbox Code Playgroud)
您可以通过使用类似以下内容来解决此问题:
<div class="testbox">
<textarea class="testarea"></textarea>
</div>
Run Code Online (Sandbox Code Playgroud)
CSS:
.testbox {
padding: 0;
margin: 0;
border: 0;
background: red;
width: 40px;
height: 40px;
font-size: 12px;
line-height: 16px;
}
.testarea {
padding: 0;
margin: 0 -1px;
border: 0;
background: red;
width: 100%;
height: 100%;
font-size: 12px;
line-height: 16px;
}
Run Code Online (Sandbox Code Playgroud)
这似乎也适用于 IE,除了 -1px 之外,它会使布局偏离(一)。