-webkit- textarea失去顶部&垂直滚动条上的底部填充

时间:2015-01-17 18:06:25

标签: html css textarea padding browser-scrollbars

我有一个固定宽度的&textarea元素&高度,没有调整大小,当出现垂直滚动条时,元素的填充(顶部和底部)将被忽略。

这是一个plnkr演示:http://plnkr.co/edit/jOeYXqkOZk3FCT24BRrk?p=preview
这仅适用于Chrome(在Chromium,Linux版本上测试)。

这是我对textarea元素的样式:

textarea{
    background-color: #1c1b1b;
    border-bottom: 3px solid #343434;
    border-radius: 4px;
    color: #fff;
    display: block;
    height: 165px;
    margin-bottom: 21px;
    padding: 10px;
    resize: none;
    width: 90%;
}

*一种解决方案是将textarea元素包装在具有特定填充的div中,但滚动条不会与该填充重叠,看起来有点奇怪。
编辑:好吧,也许它看起来不像我想的那么奇怪,但我只是想知道是否有一个更优雅的修复,在css中可能。

1 个答案:

答案 0 :(得分:3)

我试图考虑一种解决方法,具体取决于您自己的提示。你已经做对了,但还没有实现它。 :)我刚刚编写了你的​​想法。我所做的是封装在一个包装器中,并在伪元素之前和之后设置以隐藏顶部和底部部分。我希望这能解决你的问题。

它也可以在Chrome,Firefox以及IE中完美运行。



.container {
    width: 90%;
    position: relative;
}
textarea {
	background-color: #1c1b1b;
	border:0;
    border-radius: 4px;
    color: #fff;
    display: block;
    height: 165px;
    margin-bottom: 21px;
    padding: 10px;
    resize: none;
    width: 100%;
	border-radius: 4px;
}
.container:before, .container:after {
	content:'';
    display: block;
    height: 10px;
    background: #1c1b1b;
    position: absolute;
    left: 4px;
    right: 18px;
}
.container:before {
    top: 0px;
}
.container:after {
    bottom: 0px;
}

<div class="container">
    <textarea>Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.</textarea>
</div>
&#13;
&#13;
&#13;