html - 是否可以在 CSS 中使用通配符来执行正则表达式以创建更少的代码?

标签 html regex css

<分区>

我想使用正则表达式来定义一组关于边界半径的复杂 Angular 选项

我想要一种定义类 Angular 的方法*,而不需要在 html 或 css 中拥有每个组合

例子:

这是我现在的 CSS:

.corner-tl {
    border-top-left-radius:8px;
}

.corner-tr {
    border-top-right-radius:8px;
}

.corner-bl {
    border-bottom-left-radius:8px;
}

.corner-br {
    border-bottom-right-radius:8px;
}

但是我希望能够应用以上所有、部分或不应用,如下所示,只需使用以下代码即可完成一个只有左上角和右上角的框:

 <div class="corner-tl corner-tr">

这些是显而易见的解决方案 - 但是我将对填充和边距、边框等许多东西应用相同的逻辑,因此类将变得很长。这样做的原因是实际值 (8px) 可以通过 php 操纵到我的 CMS 的每个和所有实例。我宁愿使用的是:

 <div class="corner-tl-tr">

在 css 中有没有一种方法可以使用正则表达式来做到这一点,这样任何带有“Angular ”的东西和它后面的任何东西都可以组合起来,为单个类添加任意数量的 Angular 效果?

不知道如何表达我想要的是这样的:

 .corner*-tl* {
    border-top-left-radius:8px;
}

对于每个 Angular ,其中 * 是在“Angular ”之前或之后但仅在“Angular ”之后的任何内容。这样,对于许多可能的组合,我只需要 4 个类。

例子 我想在我的 html 中使用 corner-tl-tr-br 来创建一个半径在左上角、右上角和右下角的 div。我还希望能够使用 corner-tr-tl-br 来创建相同的内容,但无需为每个变体编写一个类。如果找不到解决方案,我将被迫使用内联样式,因为可能的组合很多。此外,我的数据库将存储这些值,这些值可以按任何顺序添加或不添加到整个站点的任何 div。最好分四行执行此操作,其中每行都可以合并为一行。这甚至可能是不可能的,但到目前为止的示例只向我展示了单个类,而不是组合类。

如果可以的话,我不想做很多样式,比如 - corner, corner-tl, corner-tr, corner-bl, corner-br, corner-tl-tr, corner-tr -tl, corner-tl-bl, corner-bl-tl, corner-tl-br, corner-br-tl 等等...理论上不需要单独的 Angular ,因为它没有设置半径,所以它在 html 中与不应用该类相同,但可能需要实现其他类,但其余的在我的系统中是可能的。我希望能够在单个类中应用任何组合,该类在 4 个选项的 css 中有一个表达式。

最佳答案

开始于

[class^="corner-"] {

}

包含

[class*="corner-"] {

}

结束于

[class$="corner-"] {

}

关于html - 是否可以在 CSS 中使用通配符来执行正则表达式以创建更少的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21995239/

相关文章:

html - 修复了 Shopify 上的元素定位

html - svg 图像图案填充不会在 html 中呈现

python - 正则表达式重复 "{}"

正则表达式导入失败

html - 如何防止 float 元素影响 "text-align: center"文本?

javascript - 如何在HTML选择下拉列表中显示后半部分文字?

ruby-on-rails - 在 Ruby 中解析街道地址

jquery - 为什么淡入不起作用?

javascript - 当用户点击按钮时弹出一个窗口

css - 使用带有 angular11 的自动前缀