-webkit- textarea 在垂直滚动条上丢失顶部和底部填充
-webkit- textarea losing top & bottom padding on vertical scrollbar
我有一个固定宽度和高度且没有调整大小的文本区域元素,当垂直滚动条出现时,元素的填充(顶部和底部)被忽略。
这是一个 plnkr 演示:http://plnkr.co/edit/jOeYXqkOZk3FCT24BRrk?p=preview
这仅发生在 Chrome(在 Chromium 上测试,Linux 版本)。
这是我为文本区域元素设置的样式:
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 之内。
我已尝试根据您自己的提示想出解决方法。你做对了,但还没有实施。 :) 我刚刚编码了你的想法。我所做的是封装在一个包装器中,并在伪元素之前和之后设置以仅隐藏顶部和底部部分。希望能解决您的问题。
它在 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>
我有一个固定宽度和高度且没有调整大小的文本区域元素,当垂直滚动条出现时,元素的填充(顶部和底部)被忽略。
这是一个 plnkr 演示:http://plnkr.co/edit/jOeYXqkOZk3FCT24BRrk?p=preview
这仅发生在 Chrome(在 Chromium 上测试,Linux 版本)。
这是我为文本区域元素设置的样式:
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 之内。
我已尝试根据您自己的提示想出解决方法。你做对了,但还没有实施。 :) 我刚刚编码了你的想法。我所做的是封装在一个包装器中,并在伪元素之前和之后设置以仅隐藏顶部和底部部分。希望能解决您的问题。
它在 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>