Que son las hojas de estilo (CSS) CSS y HTML Definición de estilos a nivel página Propiedades relacionadas a fuentes. Agrupación de varios elementos HTML con una misma regla de estilo Definición de varias reglas para un mismo elemento HTML Propiedades relacionadas al texto (color, text-align, text-decoration) Más propiedades relacionadas al texto (letter-spacing, word-spacing, text-indent, text-transform) Herencia de propiedades de estilo. Definición de un estilo en función del contexto. Definición de hojas de estilo en un archivo externo. Definición de estilos por medio de clases. Definición de estilos por medio de id. Propiedades relacionadas al borde de un elemento HTML (border-width, border-style, border-color) Más propiedades relacionadas al borde de un elemento HTML Propiedades relacionadas al padding de un elemento HTML Propiedades relacionadas al margen de un elemento HTML Propiedades relacionadas a listas Propiedades relacionadas al fondo (background) Propiedades relacionadas a fuentes Propiedades relacionadas al border Propiedades relacionadas al padding Propiedades relacionadas al margin Propiedades relacionadas al fondo (background) El selector universal * Pseudoclases Eliminacion subrayado de enlace Creación de un menú vertical Creación de un menú horizontal Propiedades relacionadas a la dimensión de un objeto en la página. Unidades de medida (px, rem, em, cm, mm etc.) Formas para indicar el color. Definir un cursor para un elemento HTML Aplicación de hojas de estilo a un formulario Definiendo reglas de estilo a una tabla. Posicionamiento relativo (position: relative) Posicionamiento absoluto (position: absolute) Posicionamiento absoluto y propiedad z-index Posicionamiento fijo (position: fixed) Disposición de 2 columnas (position: absolute) Propiedad float aplicada a una imagen Propiedades relacionadas a la dimensión de un objeto en la página Propiedad clear Disposición de 2 columnas (propiedad float) Disposición de 2 columnas, cabecera y pie Disposición de 3 columnas, cabecera y pie Diseño de ancho fijo Diseño de ancho líquido Selector de hijos Selector de hermano adyacente y hermano general Selector de atributo Pseudo-clases: first-child y last-child) Pseudo-clases: nth-child y nth-last-child Pseudo-clases: nth-of-type, nth-last-of-type, first-of-type y last-of-type Pseudo-clases: only-child y only-of-type Pseudo-clase: empty Pseudo-elementos: first-letter y first-line Pseudo-elementos: before y after CSS media queries Flexbox Flexbox - (flex-direction aplicada al contenedor) Flexbox - (justify-content aplicada al contenedor) Flexbox - (align-items aplicada al contenedor) Flexbox - (flex-wrap aplicada al contenedor) Flexbox - (align-content aplicada al contenedor) Flexbox - (flex-flow aplicada al contenedor) Flexbox - (flex-grow aplicada a los items) Flexbox - (flex-shrink aplicada a los items)o Flexbox - (flex-basis aplicada a los items) Flexbox - (flex aplicada a los items) Flexbox - (order aplicada a los items) Flexbox - (align-self aplicada a los items)

Creación de un menú vertical configurando las pseudoclases.

En esta página vamos a crear un menú vertical con un submenú horizontal cuando se desplace el ratón por encima de un elemento que anide una lista.

Un recurso muy útil es disponer un menú en una página, si no requerimos uno muy elaborado podemos resolverlo utilizando sólo CSS y HTML (en otros casos se requiere además de JavaScript) 

Vamos a implementar uno muy sencillo que requiere agrupar en un div una serie de párrafos que contienen un hipervínculo cada uno. Cuando la flecha del mouse se encuentra sobre el hipervínculo cambiamos el color del fondo y la letra del hipervínculo. El código es:

<!DOCTYPE html>
<html>
<head> <title>Problema</title>
 <meta charset="UTF-8">
 <link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<div id="menu">
<p><a href="href="http://www.google">http://www.google.com">Google</a></p>
<p><a href="http://www.yahoo.com">Yahoo</a></p>
<p><a href="http://www.bing.com">Bing</a></p>
<p><a href="http://www.ask.com">ASK</a></p>
</div>
</body>
</html>

La hoja de estilo asociada a esta página es:

#menu { font-family: Arial; }
 #menu p { margin:0px; padding:0px; }
 #menu a { display: block; padding: 3px; width: 160px; background-color: #f7f8e8; border-bottom: 1px solid #eeeeee; text-align:center; }
 #menu a:link, #menu a:visited { color: #ff0000; text-decoration: none; }
 #menu a:hover { background-color: #336699; color: #ffffff; }
menu vertical con pseudoclases

Podemos decir que definimos un estilo por medio de un Id llamado menu. La regla para este Id:

#menu { font-family: Arial; }
La segunda regla aparece el concepto de selectores descendientes (ocurre cuando un elemento HTML se encuentra contenido en otro) en este caso se seleccionan todos los párrafos que se encuentren dentro del div que define el id #menu (con esto logramos que si hay otros párrafos en el documento HTML no se le apliquen esta regla):
#menu p { margin:0px; padding:0px; }

Estamos indicando que todos los párrafos contenidos en #menu deben tener cero en margin y padding. Luego las anclas "a" dentro de #menu definen las siguientes propiedades (si hay otros enlaces dentro de la página no se le aplica este estilo ya que solo se aplican a las "a" que descienden de #menu):

#menu a { display: block; padding: 3px; width: 160px; background-color: #f7f8e8; border-bottom: 1px solid #eeeeee; text-align:center; }

El valor block para la propiedad display permite que el ancla ocupe todo el espacio del párrafo, indistintamente del largo del hipervínculo. Otra propiedad nueva es width, esta fija el tamaño máximo que puede tener el hipervínculo antes de provocar un salto de línea. 

Por último inicializamos las pseudoclases:

#menu a:link, #menu a:visited { color: #ff0000; text-decoration: none; } #menu a:hover { background-color: #336699; color: #ffffff; }

Estamos definiendo el mismo color de texto para los vínculos seleccionados como aquellos que no han sido seleccionados:

#menu a:link, #menu a:visited { color: #ff0000;

Por último cambiamos el color de fondo de la opción cuando se tiene la flecha del mouse encima:

#menu a:hover { background-color: #336699;