问题描述
我最近一直在尝试制作一个使用重复线性渐变来分隔行的文本区域,但是,当我滚动时渐变不会附加到文本框。 我做错了什么吗?
顺便说一下,这是代码:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div class="TextareaWrapper"><textarea id="Text" cols="1500"></textarea></div>
</body>
</html>
<style>
#Text
{
background: url("https://www.linkpicture.com/q/2cOaJ-2.png");
background-size: 30px 33325px;
background-position: 0px 11px;
background-attachment: local;
background-repeat: no-repeat;
padding-left: 35px;
padding-top: 10px;
border-color:#ccc;
font-size: 15px;
display: block;
margin: 0px;
line-height: 1.5;
width: 400px;
height: 225px
}
.TextareaWrapper
{
display: inline-block;
background-image: repeating-linear-gradient(to bottom,#ffffff,#f0f0f0 50%);
background-attachment: local;
background-size: 100% 45px;
background-position: left 10px;
}
</style>
<script>
</script>
此外,以下是我使用的一些网址:
Numbered and separated rows in a textarea
Repeating Linear Gradient Tutorial
解决方法
因为您滚动的元素是 textarea
,而不是 .TextareaWrapper
,所以 background-attachment: local
不能对其子元素应用滚动。
您可以用逗号分隔的速记将这两个背景图像合并为一个 background
属性,而且您甚至不再需要 TextareaWrapper
。
background: url("https://www.linkpicture.com/q/2cOaJ-2.png") 0px 11px/30px 33325px local no-repeat,repeating-linear-gradient(to bottom,#ffffff,#f0f0f0 50%) left 10px/100% 45px local;
这两个背景将合并为一个图像以共享相同的滚动位置:
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
<div class="TextareaWrapper"><textarea id="Text" cols="1500"></textarea></div>
</body>
</html>
<style>
#Text
{
background: url("https://www.linkpicture.com/q/2cOaJ-2.png") 0px 11px/30px 33325px local no-repeat,#f0f0f0 50%) left 10px/100% 45px local;
padding-left: 35px;
padding-top: 10px;
border-color:#ccc;
font-size: 15px;
display: block;
margin: 0px;
line-height: 1.5;
width: 400px;
height: 225px
}
</style>
<script>
</script>