307 votes

Nécessité de supprimer les valeurs des href lors de l'impression dans Chrome

J'essaie de personnaliser le CSS d'impression, et je trouve qu'il imprime les liens avec la balise href ainsi que le lien.

C'est dans Chrome.

Pour ce HTML :

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

Il imprime :

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

Et je veux que ça s'imprime :

Google

1 votes

Gardez à l'esprit que tous les principaux frameworks CSS font cela - vous ne pouvez pas cliquer sur le papier ! Donc si vous allez le désactiver, vous devriez ajouter une liste de liens en bas, comme ceci : alistapart.com/article/improvingprint

1 votes

C'est vrai, mais je pense qu'il est préférable d'avoir le contrôle du moment et de l'endroit où le lien apparaît. Par exemple, dans mes liens, je veux qu'ils apparaissent à la ligne suivante après le texte, et sans parenthèses. J'affiche donc l'url dans le texte.

626voto

Alex Ghiculescu Points 1842

Bootstrap fait la même chose (... comme la réponse sélectionnée ci-dessous).

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

Il suffit de le supprimer ou de le remplacer dans votre propre feuille de style d'impression :

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

18 votes

<style>@media print{a[href]:after{content:none}}</style> J'écris surtout pour moi-même quand je reviens sans cesse sur cette page, merci.

1 votes

Apparemment, la Fondation fait la même chose.

0 votes

On dirait que HTML5 Boilerplate fait aussi cela ! Je suppose donc que je dois passer outre en modifiant le code de mon propre site Web et en faisant appel à Inspector sur d'autres sites...

41voto

Eric Points 36290

Ce n'est pas le cas. . Quelque part dans votre feuille de style d'impression, vous devez avoir cette section de code :

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

La seule autre possibilité est que vous ayez une extension qui le fasse pour vous.

1 votes

Je l'ai eu dans la fondation zurb css.

29voto

JELEWA.de Points 281
@media print {
   a[href]:after {
      display: none;
      visibility: hidden;
   }
}

Le travail est parfait.

10voto

Wang Jijun Points 141

Si vous utilisez le CSS suivant

<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" />

il suffit de le changer en style suivant en ajoutant media="écran"

<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" />

Je pense que ça va marcher.

les premières réponses comme

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

n'ont pas bien fonctionné dans le navigateur de chrome.

5voto

TrampGuy Points 1657

J'ai rencontré un problème similaire, mais avec un img imbriqué dans mon ancre :

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

Quand j'ai appliqué

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

J'ai perdu mon img et toute la largeur de l'ancre pour une raison quelconque, donc à la place j'ai utilisé :

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

ce qui a parfaitement fonctionné.

Conseil bonus : inspecter l'aperçu avant impression

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X