在 Chrome 中打印时需要删除 href 值

Posted

技术标签:

【中文标题】在 Chrome 中打印时需要删除 href 值【英文标题】:Need to remove href values when printing in Chrome 【发布时间】:2011-11-10 05:55:52 【问题描述】:

我正在尝试自定义打印 CSS,并发现它会打印带有 href 值的链接以及链接。

这是在 Chrome 中。

对于这个 html

<a href="http://www.google.com">Google</a>

打印出来:

Google (http://www.google.com)

我希望它打印出来:

Google

【问题讨论】:

记住为什么每个主要的 CSS 框架都会这样做——你不能点击纸!因此,如果您要停用它,您应该在底部添加一个链接列表,例如:alistapart.com/article/improvingprint 确实如此,但我认为最好控制链接出现的时间和位置。例如,在我的链接中,我希望它们出现在文本之后的下一行,并且不带括号。所以我只是在文本中显示 url。 【参考方案1】:

Bootstrap 做同样的事情(...作为下面选择的答案)。

@media print 
  a[href]:after 
    content: " (" attr(href) ")";
  

只需从那里删除它,或在您自己的打印样式表中覆盖它:

@media print 
  a[href]:after 
    content: none !important;
  

【讨论】:

&lt;style&gt;@media printa[href]:aftercontent:none&lt;/style&gt; 主要是在我不断返回此页面时为自己发帖,谢谢 显然基金会也在做同样的事情。 看起来 HTML5 Boilerplate 也能做到这一点!所以我想我必须通过我自己网站上的代码更改以及其他网站上的 Inspector 来覆盖它...... 警告:我们遇到了表格在打印时有时会丢失最后几行的问题。原来这条规则是罪魁祸首,或者至少删除它解决了这个问题。不知道为什么会有这种效果。 @HenrikN - 我认为这与引导列浮动有关。几周前在必要时使用float:none 为我解决了类似的问题;可能会对您有所帮助,但这是一个不同的问题【参考方案2】:

It doesn't。在你的打印样式表的某个地方,你必须有这段代码:

a[href]::after 
    content: " (" attr(href) ")"

唯一的另一种可能性是你有一个扩展为你做这件事。

【讨论】:

我在 zurb 基础 css 中得到了它。【参考方案3】:

@media print 
   a[href]:after 
      display: none;
      visibility: hidden;
   

工作完美。

【讨论】:

【参考方案4】:

如果你使用下面的 CSS

<link href="~/Content/common/bootstrap.css" rel="stylesheet" type="text/css"    />
<link href="~/Content/common/bootstrap.min.css" rel="stylesheet" type="text/css" />
<link href="~/Content/common/site.css" rel="stylesheet" type="text/css" />

只需添加 media="screen"

将其更改为以下样式
<link href="~/Content/common/bootstrap.css" rel="stylesheet" **media="screen"** type="text/css" />
<link href="~/Content/common/bootstrap.min.css" rel="stylesheet" **media="screen"** type="text/css" />
<link href="~/Content/common/site.css" rel="stylesheet" **media="screen"** type="text/css" />

我认为它会起作用。

以前的答案如

    @media print 
  a[href]:after 
    content: none !important;
  

在 chrome 浏览器中效果不佳。

【讨论】:

【参考方案5】:

我只在我的锚点中遇到了类似的问题:

<a href="some/link">
   <img src="some/src">
</a>

当我申请时

@media print 
   a[href]:after 
      content: none !important;
   

由于某种原因,我失去了我的 img 和整个锚点宽度,所以我改用了:

@media print 
   a[href]:after 
      visibility: hidden;
   

效果很好。

额外提示:inspect print preview

【讨论】:

【参考方案6】:

隐藏页面网址。

在样式标签示例中使用media="print"

<style type="text/css" media="print">
            @page 
                size: auto;   /* auto is the initial value */
                margin: 0;  /* this affects the margin in the printer settings */
            
            @page  size: portrait; 
</style>

如果你想删除链接:

@media print 
   a[href]:after 
      visibility: hidden !important;
   

【讨论】:

如果你想摆脱 URL 在页面上占用的空间,你应该使用display: none !important;【参考方案7】:

对于普通用户。打开当前页面的检查窗口。 然后输入:

l = document.getElementsByTagName("a");
for (var i =0; i<l.length; i++) 
    l[i].href = "";

那么你在打印预览中就看不到url链接了。

【讨论】:

如果您无法控制要打印的页面的源代码,这是一个很好的解决方案。

以上是关于在 Chrome 中打印时需要删除 href 值的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 打印网站,缺少布局选项

在打印样式表中隐藏输入边框(chrome)

使用 Open Sans 字体时,Chrome 在首次打印时无法正确打印

在 IE/Chrome/Firefox 中打印预览(或打印)时不显示图像

Javascript 以编程方式调用 Chrome 对话框打印的“另存为 PDF”功能

在 Chrome 上打印 Bootstrap 表时出现错误