Javascript 如果页面URL包含某些特定文本,如何更改SASS变量属性值?
我想为两个不同的网站使用相同的SASS文件,这两个网站除了颜色外功能相同。所以我想根据URL改变颜色。现在我的问题是,我无法从SASS文件获取页面URL,并且不知道如何在css中使用.contain()。Javascript 如果页面URL包含某些特定文本,如何更改SASS变量属性值?,javascript,jquery,html,css,sass,Javascript,Jquery,Html,Css,Sass,我想为两个不同的网站使用相同的SASS文件,这两个网站除了颜色外功能相同。所以我想根据URL改变颜色。现在我的问题是,我无法从SASS文件获取页面URL,并且不知道如何在css中使用.contain()。或者这可以从JS或JQuery更新SASS变量吗? i、 e. URL1= URL2= 现在我想chk如果页面url包含“.nz”,那么按钮颜色是绿色的,否则按钮颜色是灰色的 我知道下面的语法是错误的。因此,请帮助正确的语法和要求 您可以通过javascript将location.href的值打
或者这可以从JS或JQuery更新SASS变量吗? i、 e.
URL1=
URL2=
现在我想chk如果页面url包含“.nz”,那么按钮颜色是绿色的,否则按钮颜色是灰色的
我知道下面的语法是错误的。因此,请帮助正确的语法和要求
您可以通过javascript将
location.href
的值打印到body元素的数据url
属性中,例如
<script>
document.body.dataset.url = location.href;
</script>
你可以根据你的URL添加一个
body
类吗?所以应该是这样的
$(function() {
if ( document.location.href.indexOf('.nz') > -1 ) {
$('body').addClass('nz');
}
});
然后在sass文件中,您可以将不同的颜色分配给body.nz
的子项,如下所示:
$bg-color: gray;
.button{
background: $bg-color;
}
body.nz {
$bg-color: green;
button {
background : $bg-color;
}
}
如果您的浏览器支持CSS自定义属性/变量,请考虑使用它:
你不能简单地给每个网站添加一个类,比如一个主题名吗?例如:杰克,不,这是不可能的。因为从技术上讲,只有一个网站有两个不同的url。问题是澳大利亚ppl希望看到同样的按钮是灰色的,而其他人则希望看到绿色的。网站已经开发,所以更新HTML类将非常复杂。这是一个好主意,但网站已经开发,这样做将打破这种风格。@Avinashnayak,在您达到这一点之前,这应该已经研究并集成到您的网站中,但您知道客户可以随时询问任何问题。:)当然,我明白你的意思@Avinashnayak,尽管我不明白为什么仅仅使用jquery添加body类和
body.nz{$bg color:green!important;}
(我在上面的回答中是这么说的),但是保持CSS的其余部分不变。?你能测试一下吗?耶!!我明白你的意思。。。我要实施这个。谢谢:)到今天为止,大多数浏览器都不支持VAR(),91%的全球支持率:IE才是罪魁祸首。客户端团队始终从此浏览器开始:(
$(function() {
if ( document.location.href.indexOf('.nz') > -1 ) {
$('body').addClass('nz');
}
});
$bg-color: gray;
.button{
background: $bg-color;
}
body.nz {
$bg-color: green;
button {
background : $bg-color;
}
}