seccion quimica página pagina otra misma link internos hacer externos externo especifica enlaces enlace dentro definicion como css css3 progressive-enhancement

css - quimica - enlaces internos y externos en html



¿Cómo puedo diseñar enlaces externos como Wikipedia? (3)

demo

Lo esencial

Utilizando :after podemos inyectar contenido después de cada selector emparejado.

El primer selector coincide con cualquier atributo href comience con // . Esto es para enlaces que mantienen el mismo protocolo (http o https) que la página actual.

a[href^="//"]:after,

Estas son las URL tradicionalmente más comunes, como http://google.com y https://encrypted.google.com

a[href^="http://"]:after, a[href^="https://"]:after {

Luego podemos pasar una url al atributo de contenido para mostrar la imagen después del enlace. El margen se puede personalizar para adaptarse a la

content: url(http://upload.wikimedia.org/wikipedia/commons/6/64/Icon_External_Link.png); margin: 0 0 0 5px; }

Permitir ciertos dominios como locales

Digamos que estamos en example.org y queremos marcar enlaces a blog.example.org como en el mismo dominio para este propósito. Esta es una forma bastante segura de hacerlo, sin embargo, podríamos tener una URL como http://example.org/page//blog.example.org/

nota: asegúrese de que esto viene después de lo anterior en sus estilos

a[href*="//blog.example.org/"]:after { content: ''''; margin: 0; }

Para una coincidencia más estricta, podemos tomar nuestra configuración inicial y anularla.

a[href^="//blog.example.org/"]:after, a[href^="http://blog.example.org/"]:after, a[href^="https://blog.example.org/"]:after { content: ''''; margin: 0; }

Me gustaría distinguir entre enlaces externos e internos usando solo CSS.

Me gustaría agregar un pequeño icono en el lado derecho de estos enlaces, sin que cubra otro texto.

El icono que me gustaría usar es el que se usa en Wikipedia .

Por ejemplo, este es un enlace externo:

<a href="http://stackoverflow.com">StackOverflow</a>

Este es un enlace interno:

<a href="/index.html">home page</a>

¿Cómo puedo hacer esto usando solo CSS?


Creo que esto te ayudará a resolver el problema simplemente,

Agregue un ícono de enlace externo después de los enlaces externos con CSS

Cita del artículo:

Esto hará que todos los enlaces con estilo con un icono externo vinculado al final,

a[href^="http://"] { background: url(http://upload.wikimedia.org/wikipedia/commons/6/64/Icon_External_Link.png) center right no-repeat; padding-right: 13px; }

Y el siguiente código evitará el estilo de icono externo en direcciones URL específicas:

a[href^="http://www..com"] { background: none; padding-right: 0; }


OK, esto es bastante similar a las otras respuestas, pero es corto y dulce y funciona tanto para http como https. Por supuesto, tendrá problemas si usa barras diagonales dobles en sus URL internas, pero no debería hacerlo de todos modos ( see these questions ).

a:not([href*="//"]) { /* CSS for internal links */ } a[href*="//"] { /*CSS for external links */ }

Ojalá hubiera sabido sobre esto antes de etiquetar todos mis enlaces con class="internal" y class="external" .

Así que para agregar una imagen, como ya se ha dicho:

a[href*="//"]::after { content: url(/* image URL here */); }