viernes, 16 de octubre de 2009

Gestionar Colores de enlaces en CSS: Caso de estudio


CSS es una forma muy rápida y efectiva de gestionar los vínculos y sus propiedades, de modo tal que basta con declarar un estilo para cierta etiqueta y que contenga vínculos en diferentes niveles jerárquicos, para que adquieran diferentes colores sin necesidad de editar las propiedades de un vínculo individual.


En este caso de estudio veremos las formas más comunes de personalizar los colores y propiedades de los vínculos.

Requisitos del la clase: Saber lo básico de CSS embebido en documentos.

Caso 1: Aplicar una propiedad CSS a todos los vínculos en una página:
En una página web con CSS embebido las propiedades de los vínculos se declararían de esta forma:
(La letra "a" hace referencia la etiqueta de enlace)

a:link { propiedades }(Color del vinculo normal)
a:visited { propiedades } (Color de los vínculos visitados)
a:hover { propiedades } (Color cuando se pone encima del enlace el mouse)
a:active { propiedades } (Color cuando se da clic sobre el enlace)

Una forma más simplificada aplicada a colores:
a {color:#33FF66}
a:hover {color: #FF0000}

Donde "a" es la etiqueta del enlace y a:hover es el color que adquiere cuando se pone el puntero encima del enlace, esto significa que el color de los enlaces será #33FF66, mientras que el color cuando se pase el puntero será #FF0000.


Esto hará que todos lo vínculos tengan un solo estilo general de colo.


Caso 2 apuntado con Clases o Id a un vínculo:

En CSS podemos asociar un estilo a una etiqueta mediante clases o IDs, recordamos que un ID solo podemos aplicarlo a una sola etiqueta a la vez, esto es, que necesitamos crear diferentes reglas de ID para diferentes etiquetas, su sintaxis es id="nombreid" en CSS a todos los id se les antepone (#).

En cambio una clase la podemos aplicar  a todas las etiquetas que necesitemos, su sintaxis class="nombreclase", en CSS a todas las clases se les antepone (.)

tanto las clases como las id se pueden aplicar a una misma etiqueta al mismo tiempo por ejemplo en el caso de la etiqueta de vinculo:
<a class="nombreclase" id="nombreid"  href="http://sitio.com/">Vinculo</a>

Sintaxis Usando ID

CSS con ID: (La letra "a" después de #nombreid hace referencia la etiqueta de enlace)

#nombreid a {propiedades}
Etiqueta HTML:
<a id="nombreid"  href="http://sitio.com/">Nombre sitio</a>

Sintaxis usando clases
CSS con Clases
.nombreclase a {propiedades}

Etiqueta HTML
<a class="nombreclase" id="nombreid"  href="http://sitio.com/">Nombre sitio</a>

Ejemplo práctico
CSS con ID
(Note que para crear diferentes reglas para una misma clase se pone el nombre de la ID + etiqueta):
#nombreid a {color:#ffffff;}
#nombreid a:hoover {color:#fff666;}

Etiqueta HTML
<a id="nombreid"  href="http://sitio.com/">
O por ejemplo usando una DIV u otra etiqueta contenedora o de linea:
<div id="nombreid"><a href="http://sitio.com/">Vinculo</a></div>

Este es el caso más importante, pues indica que una DIV con un ID asigna y que contenga etiquetas de enlaces como por ejemplo:
<div id="nombreid">
<a href="http://sitio1.com/">Sitio 1</a>
<a href="http://sitio2.com/">Sitio 2</a>
<a href="http://sitio3.com/">Sitio 3</a>
</div>

Tendrá un color heredado de la DIV sin asignar a cada enlace una Clase o ID.


Caso 3 Jerarquias en CSS
El tema de la Jerarquias es lo más importante que veremos en CSS, es una manera que ahorra tiempo y reduce la necesidad de pasos innecesarios, por ejemplo, la creación de reglas CSS innecesarias, entendemos por reglas cualquier ID o Clase nueva para gestionar una etiqueta.

Sintaxis demostrativa:

Imagine que tenemos que definir colores distintos a un grupo de enlaces dentro de una etiqueta DIV distribuidos en párrafos (P) y listas (UL), donde incluso tenemos una lista embebida dentro de otra, ¿como lo harían sin usar clases?:
<div>
  <p><a href="http://misitio.com">Vinculo 1</a> </p>
  <p><a href="http://misitio.com">Vinculo 2</a> </p>
 
  <ul>
    <li><a href="http://misitio.com">Vinculo 3 </a></li>
    <li><a href="http://misitio.com">Vinculo 4</a>
      <ul>
        <li><a href="http://misitio.com">Vinculo 3 </a></li>
        <li><a href="http://misitio.com">Vinculo 4</a> </li>
      </ul>
    </li>
  </ul>
 </div>
 La respuesta es realmente simple usando la jerarquia de la equiqueta crearemos una regla para cada etiqueta según su orden:
 Para los enlaces dentro de una etiqueta párrafo (p) dentro de la DIV:

div p a {propiedades}

div p a:hover {propiedades}
Para la lista (UL) de nivel superior dentro de la DIV

div ul a {propiedades}

div ul a:hover {propiedades}

Para la lista embebida dentro de la anterior lista dentro de la DIV:


div ul ul a {propiedades}

div ul ul a:hover {propiedades}

Incluso si queremos ponerla dentro de los componente de la lista (LI) para definir un padding o un margin y otras propiedades:

div ul ul li a {propiedades}

div ul ul li a:hover {propiedades}
Si han notado, el truco consiste en definir las etiqueta según van contenidas:
  <div>
         <ul><li><a></a></li>
                     <ul><li><a></a></li>
                    </ul>
         </ul>
  </div>
Por tanto en un ejemplo práctico:
CSS (todo el código debe usarse los /* texto */ es la forma en que se comenta en CSS )

/* parrafos dentro de div */

div p a {color: #fff;}

div p a:hover {color: fff666;}

/* lista dentro de div */
div ul a {color:#;}

div ul a:hover {color:#;}

/*lista dentro de otra lista dentro de div */ 

div ul ul a {color:#;}

div ul ul a:hover {color:#;}

HTML
<div>
  <p><a href="http://misitio.com">Vinculo 1</a> </p>
  <p><a href="http://misitio.com">Vinculo 2</a> </p>
 
  <ul>
    <li><a href="http://misitio.com">Vinculo 3 </a></li>
    <li><a href="http://misitio.com">Vinculo 4</a>
      <ul>
        <li><a href="http://misitio.com">Vinculo 3 </a></li>
        <li><a href="http://misitio.com">Vinculo 4</a> </li>
      </ul>
    </li>
  </ul>
 </div>
Por último si usáramos una Clase y un ID asignado a la div sería exactamente los mismo salvo por el nombre de la id o clase anteponiendo (#) y (.) respectivamente:
CSS:
#nombreid div p a {color: #fff;}

#nombreid div p a:hover {color: fff666;} [... etcétera]

HTML:
<div id="nombreid">
  <p><a href="http://misitio.co [... etcétera] </div>

Como ven, hemos usado el mismo id para todas las etiquetas  dentro del DIV y no hemos tenido que hacer una regla (asignar una clase o ID) a cada uno indepedinetemente.

Pueden ver un ejemplo aquí:

Ver ejemplo de enlaces jerarquicos.

Dudas y aclaraciones en comentarios, dado que no he tenido tiempo de revisar el articulo, cualquier error no duden en señalarlo.

Comentarios y Consultas

Los mensajes serán revisados a veces. No te olvides que soy una persona, no se trata de faltar al respeto, todos tenemos opiniones, no hay que enojarse.

Puedes marcar Notificarme para recibir la notificación de la respuesta.

El ascenso de Skywalker(2019)

Joker 2019Una película que ha roto a divido a los fans muchos culparán a sus director por querer reparar Los últimos Jedi, no es su culpa al final.

[Leer artículo...]

La Espada del Inmortal (2019

Blade of The Immortal (2019)La historia de Manji, un guerrero samurái sin señor que ha sido condenado con la inmortalidad...

[Leer artículo...]

Kemono Michi: Rise Up (2019)

Kemono Michi: Rise Up (2019)Del autor de Konosuba, Genzo Shibata es un luchador japonés que es transportado a un mundo de fantasía, quien está obsesionado con los seres peludos.

[Leer artículo...]

ELI (2019)de Netflix

ELI (2019)de Netflix Reseña y criticaPelícula lanzada directo a video que nos cuenta una historia que parecería sacada de la Dimensión desconocida.

[Leer artículo...]

  © Cgnauta | CGsign blog | [Ver Licencia de uso] | Matius Lenin, Creative Commons, algunos derechos reservados

Regresar ARRIBA  

Vistas desde Mayo 2009

▼/▲ Archivo del Blog

Visitas totales

Información

IBSN: Internet Blog Serial Number 01-77-94-2008

Esta plantilla es creada y diseñada por Matius Lenin para CGnauta blog. Con Scripts de JQuery bajo licencia GNU/GPL. CGnauta es una marca registrada propiedad de Matius Lenin.