可以在CSS中设置子字符串的样式吗?

可以在CSS中设置子字符串的样式吗?,css,substring,Css,Substring,我想强调字符串的最后3个字符,例如: 123456789 用或轻松包装最后三个,但我想知道是否只能用CSS完成?因此,html将类似于: <span class="mytext">123456789</span> 123456789 在CSSmytextclass?::before和::after伪元素{content:attr()}值中添加了强调符号 演示1 使用伪元素::before和::after 在元素中添加前面的数据=“0123456”和后面的数据=“789

我想强调字符串的最后3个字符,例如:

123456789

轻松包装最后三个,但我想知道是否只能用CSS完成?因此,html将类似于:

<span class="mytext">123456789</span>
123456789
在CSS
mytext
class?

::before
::after
伪元素{
content:attr()
}值中添加了强调符号 演示1

  • 使用伪元素
    ::before
    ::after
  • 在元素中添加
    前面的数据=“0123456”
    后面的数据=“789”
  • 使用
    content:attr(data before)
    content:attr(data before)
    font-weight:900设置伪元素
  • ch
    计量单位和等距字体 演示2

  • 在CSS的顶部设置以下内容:

     :root, body { font: 100 3.5vw/0.75 Consolas, monospace; }
    
    所有与字体相关的属性都将引用此规则集。这不仅有助于保持一致性,而且反应灵敏

  • 1ch
    =零字符的宽度:
    当前
    字体系列中的“0”
    。如果您的
    字体系列
    是单空格字体,则所有字符的宽度都完全相同


  • 演示1 注意:有两个示例:一个没有文本内容,两个有文本内容

    部分{
    字体:400 16px/1.45控制台;
    背景:金;
    颜色:蓝色;
    }
    .count::之前{
    内容:attr(以前的数据);
    }
    .count::之后{
    内容:attr(后面的数据);
    字号:900;
    }
    .B{
    字号:0;
    }
    B:以前,
    B:之后{
    字号:1rem
    }
    C:之后{
    内容:attr(数据掩码);
    位置:相对位置;
    左:-3ch;
    z指数:1;
    字号:900;
    }
    
    0123456789
    0123456789
    这里有一个疯狂的想法,使用过滤器和SVG在最后3位数字上模拟粗体效果

    仅适用于chrome

    .mytext{
    显示:内联块;
    利润率:10px;
    字体大小:50px;
    字体系列:monospace;
    位置:相对位置;
    滤镜:投影(0px 0px 0px黑色);
    }
    .mytext:之后{
    内容:“;
    位置:绝对位置;
    排名:0;
    右:0;
    底部:0;
    宽度:3cm;
    背景过滤器:url(#阴影);
    }
    123456789
    123456789568
    123568
    
    这只是一个疯狂的想法,实际上显示有点错误

    只需发布它,为其他人提供一些改进的想法

    .mytext{
    显示:内联块;
    利润率:10px;
    字体大小:50px;
    字体系列:monospace;
    位置:相对位置;
    颜色:黑色;
    文本阴影:-1px-1px 0px白色,-1px 0px 0px白色,-1px 1px 0px白色,
    0px-1px 0px白色,0px 0px 0px白色,0px 1px 0px白色,
    1px-1px 0px白色,1px 0px 0px白色,1px 1px 0px白色;
    }
    .mytext:之后{
    内容:“;
    位置:绝对位置;
    排名:0;
    右:0;
    底部:0;
    宽度:3cm;
    背景色:白色;
    混合模式:差异化;
    }
    123456789
    123456789568
    
    123568
    您可以设置首字母的样式,但不能设置通用子字符串类似的内容:不,如果不将这些字符包装到其他元素中,则无法设置样式。即使在给出的答案中,您也有一个附加的包装元素
    ::after
    。告诉我们这样做的目的是什么,也许我们可以help@SaymoinSam这是为了让最后三个字符脱颖而出,因为它们是用户通常试图阅读的内容。它符合我的要求,我会给你的,哈哈。在最新的edge中也可以。(这并不奇怪)因为它需要javascript或服务器端的工作来制作分割字符串,所以它不会给我带来任何好处。不过还是很有趣,谢谢你。@TonyH-Ur…嗯?JavaScript?…不,没有JavaScript…服务器端?…不,纯客户端。事实上,它只是静态的HTML和CSS。请记住,只有少数几种技术可以促进仅使用CSS和HTML的动态行为。即便如此,我的答案也不是动态的……所有内容都是硬编码的HTML/CSS。我的意思是,如果服务器端的数据库中有字符串
    0123456789
    ,则必须在服务器端或JS中执行某些操作,以创建子字符串
    0123456
    789
    。虽然很琐碎,但我希望避免的是。请参见演示2,注意事项是需要一个重复的标记。JS需要复制标记,其文本为:
    const x=document.querySelector(selector.outerHTML);document.body.innerHTML+=x并且课程也会安排好。请记住,您正在寻求一种通过CSS处理原始值的方法……不可能,CSS不是一种编程语言。