提问者:小点点

是否可以在样式表中修改“href”?


我想将href赋值移动到CSS。

类似的东西

有可能在CSS做到这一点吗?

我的网站上有几个地方有一个按钮,其相应的URL值将来可能会改变。我只想在一个地方更改目标地址,即我的CSS文件,而不必为该按钮的每个实例手动更改它们。


共3个答案

匿名用户

正如其他答案所解释的那样,这种行为并不真正受支持。但是如果你真的需要在页面上添加它,可以使用一些JavaScript添加它。CSS中使用定义的自定义变量/属性需要以--开头,我将使用名称--href-overriver

我们将监听文档中链接上的所有mousedowntouch 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>