html - 如何使用::after 伪元素为单个样式设置两种字体颜色?

标签 html css less

<分区>

我目前正在做一个 ASP.NET MVC web 元素,对于我们的一些表单,我们有需要填写的字段。我想做的是添加一个样式,添加一个红色星号 ( *) 后跟一个黑色冒号 (:),在每个必填字段的每个标签之后。

目前,对于页面的样式,我们正在使用 LESS CSS 并且也在使用 Bootstrap 。我们所有的标签都有 Bootstrap 类“control-label”,它在标签 html 之后添加了一个黑色冒号。

我想让这个类成为“必需的”并向其添加::after 伪元素,将星号添加到内容属性,如下所示:

// Add a red asterisk (*) after each label which is required.
label.control-label.required::after{ 
    content: "*";
    color: red;
}

但是,这会覆盖 Bootstrap 样式,从而删除我需要的黑色冒号。

我可以使用以下内容,但冒号也会变成红色。

// Add a red asterix (*) after each label which is required.
label.control-label.required::after{ 
    content: "*:";
    color: red;
}

有没有办法让星号变成红色,而冒号变成黑色?

我尝试过使用多个

// Add a red asterix (*) after each label that's required.
label.control-label.required::after{
    content: "*";
    color: red;
}
// Add a red colon (:) after each label that's required.
label.control-label.required::after{
    content: ":";
    color: black;
}

但是这里最后一个样式会覆盖第一个样式,只显示黑色冒号。

当您想使用多个::after 函数时,他们还建议使用 less,他们还建议使用::after(2),但这也行不通。

// Add a red asterix (*) after each label that's required.
label.control-label.required::after(2){
    content: "*";
    color: red;
}
// Add a red colon (:) after each label that's required.
label.control-label.required::after(2){
    content: ":";
    color: black;
}

使用::after(2)(或任何其他数字组合作为参数),将使用默认的 Bootstrap 样式,并且只会显示黑色冒号。

将 HTML 代码添加到 content 属性也不起作用,因为 content 属性会按字面意义(作为字符串)获取代码。

如果我可以在一个样式中使用两种颜色,那

如有任何帮助,我们将不胜感激。如果您还有其他问题,请随时提问,我会尽力解答。

最佳答案

当您无法更改所有表单字段的源并为此添加一个额外的元素时,一个机会是使用 ::before::after并更改显示方向以获得所需效果。

label.control-label
{
  display: flex;
}

label.control-label::before
{
  content: ':';
  order: 2;
}

label.control-label.required::after
{
   content: '*';
   color: red;
   order: 1;
}
<label class="control-label">Just a label</label>
<label class="control-label required">Required label</label>

您可以使用 flexinline-flex,具体取决于您的用例。

关于html - 如何使用::after 伪元素为单个样式设置两种字体颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53629245/

相关文章:

html - 在 Golang 中提取 *html.Node 的位置偏移量

html - 我可以使用 :before or :after pseudo-element on an input field? 吗

javascript - 根据高度计算纵横比宽度

css - 如何在 LESS 中使用这种样式的 css?

css - 在 Mac 上运行文件观察器时,Less 文件不断删除 CSS 文件中的数据

android - Html.toHtml() 不解析 <small> 标签

html - 使下拉菜单在 Bootstrap 中 float

css - 用于保留 .html 导入的 <head></head> 部分的 Outlook 2010 VBA 脚本

less - 使用 LessCSS 的用户定义函数?

css - Twitter Bootstrap - 使用图标