Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/40.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在CSS打印样式表中,当HTML中的href是相对的时,是否可以显示绝对URL?_Css - Fatal编程技术网

在CSS打印样式表中,当HTML中的href是相对的时,是否可以显示绝对URL?

在CSS打印样式表中,当HTML中的href是相对的时,是否可以显示绝对URL?,css,Css,我有一个打印样式表,在链接后添加一个URL。大概是这样的: @media print { a:after { content: " (" attr(href) ") "; } } 这会产生这样的链接 this is an <a href='/foo.html'>example</a> of some HTML' 鉴于我希望它显示为: this is an example ("/foo.html") of some HTML this is an ex

我有一个打印样式表,在链接后添加一个URL。大概是这样的:

@media print {
  a:after {
    content: " (" attr(href) ") ";
  }
}
这会产生这样的链接

this is an <a href='/foo.html'>example</a> of some HTML'
鉴于我希望它显示为:

this is an example ("/foo.html") of some HTML
this is an example ("http://www.example.com/foo.html") of some HTML

是否可以从CSS中读取站点的基本url

我会在HTML中这样做,使用PHP或javascript获取基本URL,并将其放入一个仅在
@media print
版本中显示的类中,而带有相对URL的链接位于屏幕上可见但在打印版本中不可见的另一个范围内。

虽然似乎无法从CSS检索基本URL,但您可以始终将其放置在文档顶部的CSS变量中,然后使用该变量设置链接的格式。然而,你可以写三种类型的链接,我们称之为“相对链接”的链接需要知道你当前所在的页面,所以这种黑客攻击对你没有帮助。此外,链接还可以包含
。/../parent\u访问者
,您不希望将其保留在URL中

html{
--基本url:“https://stackoverflow.com";
}
a[href*=“:/”]::之后,
答:不是([href^=“/”])::之后
{
内容:“(attr(href)”;
}
a[href^=“/”]:不([href*=”:/“])::之后{
内容:“(var(--base url)attr(href)”;
}
这是一个。
这是一个问题。

这是一个。
不,不能用CSS实现。
attr()
将属性的值视为一个
字符串
。在这一点上,您最好坚持绝对URL,而不是浪费资源在两者之间交换。是的,没错-但您无论如何都可以这样做,无论您考虑哪种方法…@BoltClock您的建议让我找到了解决方案。绝对URL是正确的答案。