我想将href
赋值移动到CSS。
类似的东西
有可能在CSS做到这一点吗?
我的网站上有几个地方有一个按钮,其相应的URL值将来可能会改变。我只想在一个地方更改目标地址,即我的CSS文件,而不必为该按钮的每个实例手动更改它们。
正如其他答案所解释的那样,这种行为并不真正受支持。但是如果你真的需要在页面上添加它,可以使用一些JavaScript添加它。CSS中使用定义的自定义变量/属性需要以--
开头,我将使用名称--href-overriver
。
我们将监听文档中链接上的所有mousedown
和touch start
事件。这些事件很有用,因为它们总是在单击注册之前发生。每次我们处理其中一个事件时,我们都会检查关联的链接是否具有在CSS中定义的--href-override
属性/变量。如果是,我们将超文本标记语言href
替换为CSS--href-override
值,浏览器将在处理单击事件时自动使用该新值。
function overrideEventTargetHref(event) {
// if it's the beginning of a click on a link...
if (event.target.tagName === 'A') {
var link = event.target;
var override = getComputedStyle(link).getPropertyValue('--href-override').trim();
// if the link has an CSS href-override and it's different than the HTML href...
if (override && override != link.href) {
// replace the HTML href with the CSS href-override
link.href = override;
}
}
}
window.addEventListener('mousedown', overrideEventTargetHref, false);
window.addEventListener('touchstart', overrideEventTargetHref, false);
.override {
--href-override: https://stacksnippets.net/;
}
<a href="https://example.com">actually example.com</a>
<a href="https://example.com" class="override">secretly stacksnippets.net</a>
CSS是一个样式工作表,所以简短的答案是否定的。也不完全确定你想要的原因是什么,但是如果是由于数据的变化,使用JavaScript或PHP来做这件事。更容易、合乎逻辑和可能。
href属性代表超文本引用。它不是一个适合样式的实体;请参阅此资源。如果您希望设置该位置的文本值在页面上的显示样式,您可以编写代码来设置a标签的样式,如果您想变得更漂亮,您可以添加一对span标签,如下所示:
CSS:
a {
font: 14px Arial,Helvetica;
color: #00c;
text-decoration:none;
border: 4px dotted #009;
}
a:hover {
border: 3px solid #009;
}
span {
color: #f0f;
}
<a href='Home.htm'"><span>Home</span></a>