2010-06-10 22 views
6

Estoy acostumbrado a usar padding + background-image para colocar un ícono al lado de un enlace.¿Cuál es la forma estándar de agregar un ícono a un enlace con CSS?

Hay muchos ejemplos de este enfoque. Aquí está uno de here:

<a class="external" href="http://www.othersite.com/">link</a> 

    a.external { 
    padding-right: 15px; 
    background: transparent url(images/external-link-icon.gif) no-repeat top right; 
}  

Pero la mayor parte del navegador no se imprimen imagen de fondo, lo cual es molesto.

¿Qué es la norma para colocar el icono junto a los enlaces que es semánticamente correcto y funciona en todos los casos?


EDITAR

¿Qué pasa con CSS :before y :after? ¿Es una práctica recomendada?

a.test:after { 
    padding-right: 5px; 
    content: url(../pix/logo_ppk.gif); 
} 
+2

Puse una etiqueta de imagen dentro del ancla :) – deostroll

+1

Creo que necesita declarar un alto y un alto para que esto funcione. – Catfish

Respuesta

3

Personalmente lo rellenaré y pondré una imagen de fondo a través de una clase de CSS (como en el ejemplo). Es, de lejos, la ruta más ligera, mantiene el documento ligero y semántico.

Si imprimirlos realmente importa (y me refiero a realmente importa) pegar una imagen real allí, pero tenga en cuenta que no arruina el marcado desde un aspecto semántico.

Tal vez una mejor solución de compromiso sería tener una "versión imprimible", que utiliza imágenes en lugar (ya sea por algo servidor grande o alguna JS que sustituye a la clase CSS con una imagen real.

Cuestiones relacionadas