html 在网站上制作重复的文本背景?

zy1mlcev  于 2023-05-15  发布在  其他
关注(0)|答案(4)|浏览(172)

我被要求把一系列的文字重复作为一个网站的背景。
它将只是一个轻微的阴影轻然后背景颜色,类似于物理公司文具的名称,口号,无论重复覆盖的文件。
我通过将下面的div放到页面上来简单地模拟它

<div style="z-index: -1; position: fixed; font-size: 20pt; color: rgb(148, 148, 148); 
text-align: justify;">Repeating Text Here Repeating Text Here Repeating Text Here</div>

我喜欢这个解决方案,一般来说,因为使用重复的图像似乎是一个很大的头痛(试图获得无缝重复)和文本为基础的似乎更好的带宽明智。
然而,为了在页面上获得足够的文本以覆盖高分辨率最大化的浏览器窗口,我手动重复html中的文本多次。
我想知道是否有一个更优雅的解决方案,基于CSS的东西,也许我可以说重复X次。
我知道我可以用PHP、ASP.NET等在HTML服务器端重复X次文本,但我正在寻找一些HTML源输出不需要这样重复文本的东西。
我可以基于JavaScript来实现,但没有JavaScript的用户将看不到它。我可以看到JavaScript的一个优势是,像谷歌这样的机器人不会看到重复的文本,并认为这是一种提高关键字点击率的尝试。

评论回复:

文本是静态的,本质上是公司的口号。图片,如果不是这样有一个纯白色的背景,它是白色与软灰色“使网络成为一个更好的地方”一遍又一遍。
我看到的基于图像的问题是缺乏文本对齐和 Package ,以适应浏览器窗口宽度的变化。
有时候,我们需要:
让网络更美好让网络更美好让网络更美好让网络更美好让网络更美好让网络更美好
然后,如果你减少浏览器的宽度,它需要:
让网络更美好让网络更美好让网络更美好让网络更美好让网络更美好
如果你是用平铺的图像来做的,你最终会得到:
让网络成为更好的地方让网络成为更好的地方让网络成为更好的地方让网络成为更好的地方

ezykj2lf

ezykj2lf1#

你可以使用canvas+javascript。创建画布并将其用作背景的最简单方法:

var text = 'Making the Web a Better Place Making the Web';
    var canvas = document.createElement("canvas");
    var fontSize = 24;
    canvas.setAttribute('height', fontSize);
    var context = canvas.getContext('2d');
    context.fillStyle    = 'rgba(0,0,0,0.1)';
    context.font         = fontSize + 'px sans-serif';
    context.fillText(text, 0, fontSize);

    $('#elementId').css({'background-image':"url(" + canvas.toDataURL("image/png")+ ")" });
pdtvr36n

pdtvr36n2#

现在我已经通过JavaScript完成了,仍然开放给更好的解决方案。
我把html中的div设为空

<div id="Slogan" style="z-index: -1; position: fixed; font-size: 20pt; color: #999999; text-align: justify; margin-left: 6px; margin-right: 6px;"></div>

然后创建一个javascript函数,从body的onLoad调用该函数

function FillSlogan()
{
    var text = '';

    for(var i=0; i<50; i++)
    {
        text += 'Making the Web a Better Place ';
    }

    $('#Slogan').html(text);
}

FillSlogan函数位于包含文件中,并将在robots.txt中被拒绝。
这样,它就能够使用对齐和 Package 功能,但使重复的文本远离机器人。

s2j5cfk0

s2j5cfk03#

如果你不想使用JavaScript,你可以制作一个动态图像生成器作为服务器端组件(servlet,PHP等等),并使用它作为图像源,在URL中指定要生成的文本。所以在你的CSS中有这样的东西(它本身可以由一个脚本生成,允许你为图像生成器指定不同的文本字符串):

body{
     background-image: url('http://example.com/myimageservlet?msg=I+want+this+text+as+my+repeating+background');
     background-repeat: repeat;
}
deyfvvtc

deyfvvtc4#

我想出了一个只使用CSS的解决方案,使用内联SVG。SVG支持标签。您可能需要调整尺寸和视图框以使此示例符合您的需要。

background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg width='598' height='245' viewBox='0 0 598 245' fill='none' xmlns='http://www.w3.org/2000/svg'%3e%3ctext x='30' y='40' fill='red'%3eTEXT GOES HERE%3c/text%3e%3c/svg%3e ");

相关问题