当我为文本区域设置了填充时,第一次看起来效果不错。但是当我输入的内容超过文本区域的高度时(当你开始看到滚动条时),底部填充就不存在了。有什么方法可以解决这个问题吗?这似乎是一个默认的行为。你可以在这里看到一个非常基本的例子:使用的浏览器是chrome.ps2。刚刚用Firefox试过,实际上填充保留了下来。
muk1a3rh1#
Chrome、Safari和Internet Explorer呈现文本区填充的方式与Firefox和Opera不同。现在他们中的哪一个呈现的文本区不正确?这取决于你试图实现什么,因为事实上他们都没有呈现错误,他们都添加了填充,这只是归结为他们如何解释规范。没有CSS属性可以解决这个“问题”,所以解决这个“问题”的唯一方法是在文本区域添加一个容器元素,并给予它一个填充。
arknldoa2#
实际上,它仍然存在;你只需要向下滚动就可以看到文本框内容填充时额外的20 px填充。我建议使用overflow:隐藏。
s8vozzvw3#
您可以将样式font-size: 0;指定给form标记,因为问题是在这样的标记中,某个地方有一个新行,您需要避免它。完成后,您应该为包含内容的组件分配正确的字体大小,在最简单的情况下,就是文本区域。
font-size: 0;
form
tf7tbtn24#
我现在把我的textarea元素 Package 在一个div元素中,然后在上面设置填充和边框。textarea现在把它的边框和填充设置为零。另外我还隐藏了调整大小的句柄。
<label for="giftMessage">Add a gift message <div class="textAreaWrapper"> <textarea name="gift_message" class="input-text" id="giftMessage" value="" placeholder="Add your message here"></textarea> </div> </label> <style> .textAreaWrapper { border:solid 1px #ededed; padding:15px; } textarea.input-text { width: 100%; padding: 0; border:0; resize: none; font-size: 16px; color:#000000; resize: none; } </style>
7eumitmz5#
**截至2022年,**现在有一个简单的修复称为scroll-padding,它调整了浏览器将滚动捕捉到的区域。
scroll-padding
textarea { padding: 20px; scroll-padding: 20px; }
jfgube3f6#
使用属性border-button可以部分解决此问题。例如:
.textarea { border-bottom: 19px solid white; }
6条答案
按热度按时间muk1a3rh1#
Chrome、Safari和Internet Explorer呈现文本区填充的方式与Firefox和Opera不同。现在他们中的哪一个呈现的文本区不正确?这取决于你试图实现什么,因为事实上他们都没有呈现错误,他们都添加了填充,这只是归结为他们如何解释规范。
没有CSS属性可以解决这个“问题”,所以解决这个“问题”的唯一方法是在文本区域添加一个容器元素,并给予它一个填充。
arknldoa2#
实际上,它仍然存在;你只需要向下滚动就可以看到文本框内容填充时额外的20 px填充。我建议使用overflow:隐藏。
s8vozzvw3#
您可以将样式
font-size: 0;
指定给form
标记,因为问题是在这样的标记中,某个地方有一个新行,您需要避免它。完成后,您应该为包含内容的组件分配正确的字体大小,在最简单的情况下,就是文本区域。
tf7tbtn24#
我现在把我的textarea元素 Package 在一个div元素中,然后在上面设置填充和边框。textarea现在把它的边框和填充设置为零。另外我还隐藏了调整大小的句柄。
7eumitmz5#
**截至2022年,**现在有一个简单的修复称为
scroll-padding
,它调整了浏览器将滚动捕捉到的区域。jfgube3f6#
使用属性border-button可以部分解决此问题。
例如: