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 son moderados serán revisados antes de publicarse.

Este no es un foro de adolescentes, no uses letras en vez de palabras completas como "q" en vez de "que", ni escribas tus mensajes en mayúsculas, se respetuoso con los demás, si no estás de acuerdo no comentes.

Una cosa es que no te guste una crítica, otra que uses un lenguaje inapropiado para demostrarlo. No me siento en la obligación de publicar ningún mensaje en específico o de leerlo entero si usas palabras altisonantes.

Termina la serie Grimgar de Fantasía y Cenizas

Grimgar de Fantasía y Cenizas (2016)Llegó a su fin Grimgar de Fantasía y Cenizas luego de doce episodios.

[Leer artículo...]

One Punch Man OVA 4 (2016): Review y crítica

One Punch Man OVA 4 (2016): Review y críticaY llega una nueva adaptación de personajes del universo marvel, una divertida aventura espacial.

[Leer artículo...]

Gate: Segunda temporada (2016): Episodio 12 Final: Reseña y crítica

Gate: Segunda temporada (2016): Episodio 12 Final: Reseña y críticaLas aventuras de Itami y sus amigos llega a su fin con el rescate de Piña de las manos de Zorzal.

[Leer artículo...]

Desaparecida: Boku Dake ga Inai Machi (2016) Episodio 12 Final - Reseña y crítica del anime

Desaparecida: Boku Dake ga Inai Machi (2016)Satoru descubre al culpable de la trama, es el momento de enfrentarse y tendrá que dar todo de sí para cambiar su suerte.

[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.

Anexos

Bitacoras.com