CSS规则中的Php条件

CSS规则中的Php条件,php,css,Php,Css,我有一个名为multilanguage的php变量,如果网站有多种语言,该变量的值定义为true,如果没有,则定义为false 问题是我正在使用css文件,我有一些像这样的链接 .fabricant .scroll:before { content: ""; display: block; width: 30px; height: 18px; background: url("../assets/img/picto/arrow-down.svg") no-repeat cen

我有一个名为
multilanguage
的php变量,如果网站有多种语言,该变量的值定义为true,如果没有,则定义为false

问题是我正在使用css文件,我有一些像这样的链接

.fabricant .scroll:before {
  content: "";
  display: block;
  width: 30px;
  height: 18px;
  background: url("../assets/img/picto/arrow-down.svg") no-repeat center center;
  background-size: contain;
}
但这种联系并不相同,这取决于多语言是真是假

所以我想为这个css中的url设置一个条件,但我不知道如何才能做到这一点


显而易见的解决方案是在这两种情况下都有一个css文件。。。但是如果有很多重复的代码,这将是多余的,这是非常糟糕的。

显而易见的解决方案是为不同的背景使用两个CSS规则,并在PHP中动态地向元素添加适当的类。我重复一遍:您不希望动态生成CSS文件

.fabricant .scroll:before {
  ...
  background: url("../assets/img/picto/arrow-down.svg") no-repeat center center;
}

.fabricant.multilang .scroll:before {
  background-image: url("../assets/img/picto/arrow-up.svg");
}

显而易见的解决方案是针对不同的背景使用两个CSS规则,并在PHP中动态地向元素添加适当的类。我重复一遍:您不希望动态生成CSS文件

.fabricant .scroll:before {
  ...
  background: url("../assets/img/picto/arrow-down.svg") no-repeat center center;
}

.fabricant.multilang .scroll:before {
  background-image: url("../assets/img/picto/arrow-up.svg");
}

CSS没有条件,你可以使用不同的类,所以根据你的变量你可以调用

.fabricant.es .scroll:before {
...
}


在每个类中使用不同的内容。

CSS没有条件,您可以使用不同的类,以便根据您的变量调用

.fabricant.es .scroll:before {
...
}


并在每个类中使用不同的内容。

根据您的多语言变量,您可以嵌入不同的css文件:

 <link href="<?= MULTILANGUE?'multilangue.css':'non_multilangue.css' ?>" rel="stylesheet">

根据您的多语言变量,您可以嵌入不同的css文件:

 <link href="<?= MULTILANGUE?'multilangue.css':'non_multilangue.css' ?>" rel="stylesheet">


为什么会有很多重复代码?您有一个main.css文件,然后像main.en.css一样包含一行:
.fabricant{background:url();}
?为什么不向生成的html添加自定义css类呢?我的意思是,如果
multi-lanague
是真的,那么用
这样的东西呈现html,为什么会有很多重复代码?您有一个main.css文件,然后像main.en.css一样包含一行:
.fabricant{background:url();}
?为什么不向生成的html添加自定义css类呢?我的意思是,如果
MULTILANAGUE
是真的,那么您可以使用类似
的东西来呈现html,这可能就是我要做的。但考虑到维护,这不是很好。在css文件中添加css规则是可以的。但这意味着在许多网站上交换所有类到类的多语言;css中的条件将阻止这些修改。但如果你告诉我这是不可能的,我想我会这么做。嗯,这是可能的,但这太疯狂了。无论如何,您必须修改每个文件的某些内容,这是最明智的做法。注意,您不必将类添加到每个单独的元素中;您可以将其添加到正文中,然后使用选择器,如
body.multilang.fabrican.scroll:before
。您还可以正确使用HTML
lang
属性和类似
。fabrican:lang(es)…
:对于
@font-face{src:url>这样的规则,我应该如何做(“./assets/fonts/google/MaterialIcons-Regular.woff2”)}
?为什么要有条件地导入一个完全不同的图标集?想必您会有条件地显示该图标集中的不同图标,而不是关闭图标集,不是吗?这可能是我要做的。但考虑到维护,这并没有那么好。在css文件中添加css规则是可以的。但这意味着将所有类交换到cla在许多网站上使用ss多语言;css中的条件会阻止这些修改。但是如果你告诉我这不可能,我想我会这样做。好吧,这是可能的,但这很疯狂。你必须修改每个文件的某些内容,这是最明智的方法。注意,你不必将类添加到每个文件中单个元素;您可以将其添加到主体中,并使用选择器,如
body.multilang.fabricant.scroll:before
。您还可以正确使用HTML
lang
属性和类似
.fabricant:lang(es)…
:对于
@font-face{.src:url(“../assets/fonts/google/MaterialIcons Regular.woff2“}
?为什么要有条件地导入一个完全不同的图标集?想必你会有条件地显示该图标集的不同图标,而不是关闭图标集,不是吗?为什么-1 whout解释?顺便说一句,不是我说的。但是对于你的解决方案,我不会这样做,因为这意味着我应该从多个非多个非多个复制大量代码d只有一些差异。无论如何,谢谢。你不应该复制所有代码,而应该复制多语言变量感兴趣的部分。为什么-1不解释?顺便说一句,不是从我这里。但是对于你的解决方案,我不会这样做,因为这意味着从多个非多个地方复制大量代码,我应该只有一些差异。无论如何,谢谢。你应该ldn不复制所有代码,只复制MULTILANGUE变量感兴趣的部分