Esa es una de las substring-matching attribute selectors disponible en CSS3. Coincide con los enlaces con los atributos href
cuyos valores comienzan con la cadena dada.
Para ilustrar esto, vamos a tomar el ejemplo de CSS, y añadir algunos valores por defecto:
a {
background: none; padding: 0 1em;
}
a[href^="http:"] {
background: url(img/keys.gif) no-repeat right top;
}
a[href^="http://mysite.com"], a[href^="http://www.mysite.com"] {
background-image: none; padding-right:0;
}
Y el estilo el siguiente código HTML con él. Los estilos de salida se resumen en los comentarios:
<ul>
<!-- [1] No background, 1em left and right padding -->
<li><a href="/index.php">My site's page</a></li>
<!-- [2] Background, 1em left and right padding -->
<li><a href="http://example.com">External link</a></li>
<!-- [3] No background, no right padding -->
<li><a href="http://mysite.com">My site's base URL without www</a></li>
<!-- [4] No background, no right padding -->
<li><a href="http://www.mysite.com">My site's base URL with www</a></li>
<!-- [5] No background, no right padding -->
<li><a href="http://mysite.com/page.php">A page in my site with base URL</a></li>
</ul>
¿Qué está pasando?
Seleccionado por a
única
href="/index.php"
atributo de este elemento no se inicia con http:
o los otros valores.
No hay fondo, pero hay relleno izquierdo y derecho.
Seleccionado por a[href^="http:"]
única
href="http://example.com"
atributo de este elemento se inicia con http:
pero no se inicia con http://mysite.com
.
Hay relleno izquierdo y derecho, y una imagen de fondo.
Seleccionado por a[href^="http:"]
y a[href^="http://mysite.com"]
href="http://mysite.com"
atributo de este elemento se inicia con http:
y otras aperturas con http://mysite.com
.
Como el segundo selector anula el primer selector, se eliminan la imagen de fondo y el relleno derecho.
seleccionados por a[href^="http:"]
y a[href^="http://www.mysite.com"]
href="http://www.mysite.com"
atributo de este elemento se inicia con http:
y otras aperturas con http://www.mysite.com
(nótese la www).
Como el segundo selector anula el primer selector, se eliminan la imagen de fondo y el relleno derecho.
Seleccionado por a[href^="http:"]
y a[href^="http://mysite.com"]
atributo de este elemento se inicia con http:
y otras aperturas con http://mysite.com
.
Observe que, en comparación con el tercer enlace, el atributo en este contiene más que solo la URL base; sin embargo, ^=
indica que el valor del atributo solo necesita comenzar con la URL base de su sitio, a diferencia de =
que significa "seleccionar enlaces que solo apuntan a http://mysite.com
". Por lo tanto, este enlace se corresponde con el segundo selector.
Como el segundo selector anula el primer selector, se eliminan la imagen de fondo y el relleno derecho.
debe conocer información aquí: http://edgar.tumblr.com/post/1483797785/the-30-css-selectors-you-must-know-memorize – techfoobar
Ver también https://stackoverflow.com/q/7366323 (el 'hilo duplicado'). – SamGoody