-webkit- textarea失去顶级&垂直滚动条上的底部填充 [英] -webkit- textarea losing top & bottom padding on vertical scrollbar

查看:147
本文介绍了-webkit- textarea失去顶级&垂直滚动条上的底部填充的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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



这是一个plnkr演示: http://plnkr.co/edit/jOeYXqkOZk3FCT24BRrk?p=preview

发生这种情况(仅在Chromium,Linux版本上测试过)。



以下是textarea元素的样式:

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

*一种解决方案是将textarea元素封装到div中填充,但然后滚动条不会重叠该填充,并会看起来有点奇怪。
$ b $编辑:好吧,也许它不会看起来像我想的那么奇怪,但我只是想知道是否有一个更优雅修正,在CSS也许。

解决方案

我试图想出一个解决方法,取决于你自己的提示。你说得对,但还没有实现。 :)我刚刚编写了你的​​想法。我所做的就是将其封装在一个包装中,并在伪元素之前和之后设置,以隐藏顶部和底部部分。我希望这可以解决您的问题。



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

  .container {width:90%; position:relative;} textarea {background-color:#1c1b1b;边界:0; border-radius:4px;颜色:#fff;显示:块;身高:165px; margin-bottom:21px;填充:10px;调整大小:无;宽度:100%; border-radius:4px;}。container:before,.container:after {content:'';显示:块; height:10px;背景:#1c1b1b;位置:绝对; left:4px;容器:之前{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。请将您的评论发送给我们,我们会尽快为您解答。 Duis aute irure dolor in renhenderit 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。请将您的评论发送给我们,我们会尽快为您解答。 Duis aute irure dolor in renhenderit 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。请将您的评论发送给我们,我们会尽快为您解答。 Duis aute irure dolor in renhenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur。 < / textarea>< / div>  


I have a textarea element with fixed width & height and no resize and when the vertical scrollbar appears the padding (top & bottom) of the element is ignored.

Here is a plnkr demo: http://plnkr.co/edit/jOeYXqkOZk3FCT24BRrk?p=preview
This happens only with Chrome (tested on Chromium, Linux version).

Here is my styling for the textarea element:

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%;
}

*One solution would be to wrap the textarea element inside a div with that specific padding, but then the scrollbar will not overlap that padding and will look kinda strange.
Edit: ok, maybe it won't look as strange as I thought, but I just wonder if there is a more elegant fix, within css maybe.

解决方案

I've tried to think of a workaround, depending on your own hint. You've got it right, but didn't implement it yet. :) I just coded your idea. What I did was to enclose within a wrapper, and setting before and after pseudo elements to just hide the top and bottom parts. I hope that would solve your issue.

It would also run perfectly in Chrome, Firefox as well as in 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>

这篇关于-webkit- textarea失去顶级&amp;垂直滚动条上的底部填充的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆