【问题标题】:-webkit- textarea losing top & bottom padding on vertical scrollbar-webkit- textarea 在垂直滚动条上丢失顶部和底部填充
【发布时间】:2015-01-17 18:06:24
【问题描述】:

我有一个具有固定宽度和高度且没有调整大小的 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 中。

【问题讨论】:

  • the scrollbar will not overlap that padding and will look kinda strange 是什么意思?
  • @jmore009 包装器将有内边距,而 textarea 将没有内边距,因此当(textarea 元素的)滚动条出现时,它不会从 div 的顶部开始。
  • @VitorinoFernandes thx,但这并没有多大帮助。实际上,接受的答案(检查 jsfiddle 演示)和 firefox 也会发生同样的情况 - 出现垂直滚动条时会忽略上下填充。

标签: html css textarea padding browser-scrollbars


【解决方案1】:

根据您自己的提示,我已尝试想出一种解决方法。你做对了,但还没有实现它。 :) 我刚刚编码了你的想法。我所做的是将封装在一个包装器中,并在伪元素之前和之后设置以隐藏顶部和底部。我希望这能解决您的问题。

它也可以在 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>

【讨论】:

  • 这个工作就像我需要的一样!谢谢 :) 所以,我想这是 textarea 滚动条和填充属性的 -webkit- 问题..
  • 没错@TanaseButcaru。它基本上不是一个问题,而是 Chrome 是如何感知填充的,而 Firefox 是如何感知的。就个人而言,我们都喜欢 Firefox 的 :)。对于 chrome,padding 位于绝对的顶部和底部位置,但在 Firefox 中,无论滚动如何,它们都是固定的。
  • 不行,右上角有裁片...
猜你喜欢
  • 2023-03-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-02
  • 2012-10-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多