css 不考虑文本区域的填充底部

yftpprvb  于 2023-01-06  发布在  其他
关注(0)|答案(6)|浏览(135)

当我为文本区域设置了填充时,第一次看起来效果不错。但是当我输入的内容超过文本区域的高度时(当你开始看到滚动条时),底部填充就不存在了。有什么方法可以解决这个问题吗?这似乎是一个默认的行为。你可以在这里看到一个非常基本的例子:使用的浏览器是chrome.ps2。刚刚用Firefox试过,实际上填充保留了下来。

muk1a3rh

muk1a3rh1#

Chrome、Safari和Internet Explorer呈现文本区填充的方式与Firefox和Opera不同。现在他们中的哪一个呈现的文本区不正确?这取决于你试图实现什么,因为事实上他们都没有呈现错误,他们都添加了填充,这只是归结为他们如何解释规范。
没有CSS属性可以解决这个“问题”,所以解决这个“问题”的唯一方法是在文本区域添加一个容器元素,并给予它一个填充。

arknldoa

arknldoa2#

实际上,它仍然存在;你只需要向下滚动就可以看到文本框内容填充时额外的20 px填充。我建议使用overflow:隐藏

s8vozzvw

s8vozzvw3#

您可以将样式font-size: 0;指定给form标记,因为问题是在这样的标记中,某个地方有一个新行,您需要避免它。
完成后,您应该为包含内容的组件分配正确的字体大小,在最简单的情况下,就是文本区域。

tf7tbtn2

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>
7eumitmz

7eumitmz5#

**截至2022年,**现在有一个简单的修复称为scroll-padding,它调整了浏览器将滚动捕捉到的区域。

textarea {
    padding: 20px;
    scroll-padding: 20px;
}
jfgube3f

jfgube3f6#

使用属性border-button可以部分解决此问题。
例如:

.textarea {
  border-bottom: 19px solid white;
}

相关问题