Você está na página 1de 78

1 - Que son las hojas de estilo (CSS)?

CSS son las siglas de Cascade Style Sheet que traducido significa hojas de
estilo en cascada.
Las hojas de estilo es una tecnologa que nos permite controlar la apariencia de
una pgina web. En un principio, los sitios web se concentraban ms en su
contenido que en su presentacin.
HTML no pone atencin en la apariencia del documento, sino en la estructura.
CSS describe como los elementos dispuestos en la pgina son presentados al
usuario. CSS es un gran avance que complementa el HTML y la Web en
general.
Con CSS podemos especificar estilos como el tamao, fuentes, color,
espaciado entre textos y recuadros as como el lugar donde disponer texto e
imgenes en la pgina.
El lenguaje de las Hojas de Estilo est definido en la Especificaciones CSS1,
CSS2 y CSS3 del World Wide Web Consortium (W3C), es un estndar
aceptado por toda la industria relacionada con la Web, o por lo menos, gran
parte de navegadores (es verdad que el Internet Explorer de Microsoft nos di
algunos dolores de cabeza en versiones antiguos). Podemos visitar W3C
Veremos que podemos asociar las reglas de estilo a las marcas HTML de tres
maneras: directamente a la marca, en el head de la pgina o agrupar las reglas
de estilo en un archivo independiente con extensin *.css
En este curso veremos las tres metodologas, pero pondremos nfasis en la
tercera forma, que es la ms adecuada para separar el contenido de la pgina
y la forma como se debe representar la misma por medio de la hoja de estilo.
El curso brinda un concepto terico corto, luego un problema resuelto que invito
a ejecutar, modificar y jugar con el mismo. Por ltimo, y lo ms importante, un
ejercicio propuesto que nos permitir saber si podemos aplicar el concepto.

Problema:El objetivo de esta pequea pgina es ver como afecta


el estilo definido a la marca p (prrafo)
<!DOCTYPE html>
<html>
<head>
<title>Prueba de hojas de estilo</title>
</head>
<body>
<p style="color:#000000;background-color:yellow;font-family:verdana;fontsize:25px;text-align:center">Esto es un ejemplo</p>
</body>
</html>

2 - Definicin de estilos a nivel de elemento HTML.


Es la forma ms fcil pero menos recomendada para aplicacin de un estilo a
un elemento HTML. Se define en la propiedad style los estilos a definir para
dicho elemento.
Es comn a veces definir estilos directamente en los elementos HTML cuando
estamos probando diseos de elementos particulares de la pgina y
posteriormente trasladar el estilo creado a una hoja de estilos.
La sintaxis para definir un estilo a un elemento HTML es la siguiente:
<!DOCTYPEhtml>
<html>
<head>
</head>
<body>
<h1style="color:#ff0000;backgroundcolor:#ffff00">
Estemensajeesdecolorrojosobrefondoamarillo.
</h1>
</body>
</html>
Por defecto, todo navegador tiene un estilo definido para cada elemento HTML,
lo que hacemos con la propiedad style es redefinir el estilo por defecto. En este
problema definimos que el elemento h1 defina como color de texto el rojo y
como color de fondo el amarillo:

<h1 style="color:#ff0000;background-color:#ffff00">
Este mensaje es de color rojo sobre fondo amarillo.
</h1>
Veremos ms adelante que hay muchas propiedades en CSS. En este primer
ejemplo inicializamos las propiedades color (define el color del texto) y
background-color (define el color de fondo del texto).
Cada vez que inicializamos una propiedad debemos separarla de la siguiente
por punto y coma.
Cuando definimos estilos directamente en el elemento HTML, tenemos que
tener en cuenta que el estilo se aplica nicamente a dicho elemento donde
inicializamos la propiedad style, es decir, si tenemos dos secciones h1,
deberemos definir la propiedad style para cada elemento:

<h1 style="color:#ff0000;background-color:#ffff00">
Primer ttulo
</h1>
<h1 style="color:#ff0000;background-color:#ffff00">
Segundo ttulo
</h1>
Como podemos observar, ms all que los dos estilos son exactamente
iguales, estamos obligados a definirlos para cada elemento HTML.

Problema:Definir un texto dentro de un elemento HTML h1. Luego


definir un estilo interno a dicho elemento que fije el color de texto
en rojo y el fondo en amarillo.
<!DOCTYPE html>
<html>
<head>
</head>
<body>

<h1 style="color:#ff0000;background-color:#ffff00">
Este mensaje es de color rojo sobre fondo amarillo.
</h1>

</body>
</html>

Problema:Crear una pgina HTML y definir tres ttulos empleando


los elemento h1, h2 y h3. Definir el mismo color para el texto de
cada bloque y colores diferentes para el fondo de los mismos (cada
elemento HTML debe tener definida la propiedad style)

3 - Definicin de estilos a nivel de pgina.


Tambin podemos hacer la definicin de estilos para los distintos elementos
HTML de la pgina en una seccin especial de la cabecera que la encerramos
entre las marcas HTML (en su interior definimos los estilos para los elementos
HTML que necesitemos):

<style>
</style>
El problema del concepto anterior donde debamos crear un estilo similar para
el elemento h1 se puede resolver en forma ms adecuada empleando la
definicin de estilos a nivel de pgina.
Problema: Mostrar dos ttulos con texto de color rojo sobre fondo amarillo.
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>

<style>
h1{color:#ff0000;backgroundcolor:#ffff00}
</style>
</head>
<body>
<h1>Primerttulo</h1>
<h1>Segundottulo</h1>
</body>
</html>
Podemos observar que en la cabecera de la pgina definimos la seccin:

<style>
h1 {color:#ff0000;background-color:#ffff00}
</style>
Debe estar encerrada por el elemento style. En este ejemplo indicamos al
navegador que en todos los lugares de esta pgina donde se utilice el elemento
h1 debe aplicar como estilo de color de texto el rojo y fondo el amarillo.
Podemos observar que es mucho ms eficiente que definir los estilos
directamente sobre los elementos HTML dentro del cuerpo de la pgina.
Podemos definir estilos para muchos elementos en la seccin style:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1{color:#ff0000}
h2{color:#00ff00}
h3{color:#0000ff}
</style>
</head>
<body>
<h1>rojo</h1>
<h2>verde</h2>
<h3>azul</h3>
</body>
</html>

Problema:Mostrar dos ttulos con texto de color rojo sobre fondo


amarillo.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>

<style>
h1 {color:#ff0000;background-color:#ffff00}
</style>
</head>
<body>
<h1>Primer ttulo</h1>
<h1>Segundo ttulo</h1>
</body>
</html>

Problema:Definir un estilo diferente para los elementos


h1,h2,h3,h4,h5 y h6. Mostrar mensajes utilizando estos elementos
a las que se le han definido estilos (por ahora solo conocemos el
color de texto y fondo)

4 - Propiedades relacionadas a fuentes.


Contamos con una serie de propiedades relacionadas a fuentes:

font-family
font-size
font-style
font-weight
font-variant
Podemos inicializar algunas o todas las propiedades relacionadas a fuentes, un
ejemplo:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1{
fontfamily:timesnewroman;
fontsize:30px;
fontstyle:italic;
fontweight:bold;
}
h2{
fontfamily:verdana;
fontsize:20px;

}
</style>
</head>
<body>
<h1>Titulodenivel1</h1>
<h2>Titulodenivel2</h2>
</body>
</html>
Como podemos observar, hemos definido dos reglas de estilos para los
elementos h1 y h2, eso significa que el navegador utilizar esas reglas de
fuentes para todas las partes de la pgina que se utilicen dichos elementos
HTML.
La primera regla definida para el elemento h1 es:

h1 {
font-family:times new roman;
font-size:30px;
font-style:italic;
font-weight:bold;
}
Recordemos que para definir la regla de estilo debemos indicar el nombre del
elemento HTML a la que definiremos el estilo (en este caso h1) y luego, entre
llaves, todas las propiedades y sus valores separados por punto y coma.
La primera propiedad inicializada es font-family, algunas de las fuentes ms
comunes que puede acceder el navegador son:

Arial
Arial Black
Arial Narrow
Courier New
Georgia
Impact
Tahoma
Times New Roman
Verdana
En caso que la fuente no est disponible el navegador selecciona el estilo por
defecto para ese elemento HTML.
Podemos definir varias fuentes por si acaso alguna no se encuentra disponible
para el navegador, esto lo hacemos separando por coma todas las fuentes (se
eligen de izquierda a derecha):

font-family: verdana, arial, georgia;


La segunda propiedad inicializada es font-size, hay varias medidas para indicar
el tamao de la fuente (veremos ms adelante otros sistemas de medida), en
nuestro caso indicamos en pxeles:

font-size:30px;
La tercera propiedad es font-style, que puede tener los siguientes valores :

normal
italic
oblique

La ltima propiedad es font-weight (peso de la fuente), pudiendo tomar los


siguientes valores:

normal
bold
bolder
lighter
100
200
300
400
500
600
700
800
900
Esta propiedad indica el peso de la fuente (mientras tenga un valor mayor los
caracteres sern ms rellenos)
La segunda regla define slo dos propiedades relacionadas a la fuente:

h2 {
}

font-family:verdana;
font-size:20px;

Las propiedades que no se inicializan quedan como responsabilidad al


navegador, quien elegir los valores correspondientes.
Existe una ltima propiedad no utilizada en este ejemplo que es font-variant
que puede asumir estos dos valores:

small-caps
normal
Define si la fuente se muestra en maysculas tipo normal o pequeas.

Problema:Definir para el elemento h1 una fuente de tipo 'new


times roman', fuente de 30 pixeles, estilo italic y peso bold.
Para la marca h2 definir una fuente de tipo 'verdana' y de 20
pxeles de alto.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>

<style>
h1 {
font-family:times new roman;

font-size:30px;
font-style:italic;
font-weight:bold;
}
h2 {
font-family:verdana;
font-size:20px;
}
</style>

</head>
<body>
<h1>Titulo de nivel 1</h1>
<h2>Titulo de nivel 2</h2>
</body>
</html>

Problema:

Definir reglas para los elementos HTML: h1,h2,h3,h4,h5 y h6.


Inicializar la propiedad font-size con valores decrecientes para cada uno
de los elementos (40,30,25,20,15 y 10 pxeles). Inicializar la propiedad
font-family para las tres primeros elementos con los valores: Arial, Arial
Black y Arial Narrow.
5 - Agrupacin de varios elementos HTML con una misma regla
de estilo.
Esta caracterstica nos permite ahorrar la escritura de reglas duplicadas para
diferentes elementos de HTML.
La sintaxis es disponer los nombres de los elementos HTML que queremos
aplicar una regla separados por comas:

h1,h2,h3 {
font-family:verdana;
color:#0000ff;
}
Supongamos que queremos la misma fuente y color para los elementos h1,h2 y
h3 luego podemos implementarlo de la siguiente manera:

<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1,h2,h3{
fontfamily:verdana;
color:#0000ff;
}
</style>
</head>
<body>
<h1>Ttulodenivel1</h1>
<h2>Ttulodenivel2</h2>
<h3>Ttulodenivel3</h3>
</body>
</html>
Es decir, separamos por coma todas los elementos a los que se aplicar la
misma regla de estilo:

h1,h2,h3 {
font-family:verdana;
color:#0000ff;
}
Problema:Confeccionar una pgina HTML que defina la misma
fuente y color para los elementos HTML h1,h2 y h3.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>
h1,h2,h3 {
font-family:verdana;
color:#0000ff;
}
</style>
</head>
<body>
<h1>Ttulo de nivel 1</h1>

<h2>Ttulo de nivel 2</h2>


<h3>Ttulo de nivel 3</h3>
</body>
</html>

Problema:Definir la misma fuente, color y tamao de fuente para


los elementos p (prrafo) y h6 (tener en cuenta que cuando vea la
pgina el texto que se encuentra en el elemento h6 difiere del
texto que se encuentra dentro del prrafo por la propiedad fontweight (ya que el elemento h6 es de tipo bold por defecto y el
elemento p tiene por defecto normal)

6 - Definicin de varias reglas para un mismo elemento HTML.


En algunas circunstancias, es necesario desglosar la inicializacin de
propiedades en distintas reglas.
Podemos definir ms de una regla para un elemento HTML, en este ejemplo el
elemento h1 tiene dos reglas:

h1,h2,h3,h4,h5,h6 {
font-family:Verdana;
}
h1 {
font-size:40px;
}
Supongamos que queremos todas las cabeceras con la misma fuente pero
tamaos de fuente distinta, luego podemos implementarlo de la siguiente
manera:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1,h2,h3,h4,h5,h6{
fontfamily:Verdana;
}
h1{
fontsize:40px;
}
h2{
fontsize:30px;
}
h3{

fontsize:25px;
}
h4{
fontsize:20px;
}
h5{
fontsize:15px;
}
h6{
fontsize:10px;
}
</style>
</head>
<body>
<h1>Ttulodenivel1</h1>
<h2>Ttulodenivel2</h2>
<h3>Ttulodenivel3</h3>
<h4>Ttulodenivel4</h4>
<h5>Ttulodenivel5</h5>
<h6>Ttulodenivel6</h6>
</body>
</html>
Es decir, podemos inicializar un conjunto de elementos HTML con una serie de
propiedades de estilo comunes. Luego agregamos en forma individual las
propiedades no comunes a dichas marcas:

h1,h2,h3,h4,h5,h6 {
font-family:Verdana;
}
h1 {
font-size:40px;
}
Es decir, al elemento h1 realmente le hemos definido 2 propiedades: font-family
y font-size. Lo mismo para los otros elementos HTML.

Problema:

Definir todos los elementos de cabecera (h1,h2,h3,h4,h5,h6) con la


misma fuente (Verdana) pero tamaos de fuente distinta.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>

h1,h2,h3,h4,h5,h6 {
font-family:Verdana;
}
h1 {
font-size:40px;
}
h2 {
font-size:30px;
}
h3 {
font-size:25px;
}
h4 {
font-size:20px;
}
h5 {
font-size:15px;
}
h6 {
font-size:10px;
}
</style>
</head>
<body>
<h1>Ttulo de nivel 1</h1>
<h2>Ttulo de nivel 2</h2>
<h3>Ttulo de nivel 3</h3>
<h4>Ttulo de nivel 4</h4>
<h5>Ttulo de nivel 5</h5>
<h6>Ttulo de nivel 6</h6>
</body>
</html>

Problema:

Definir para el elemento <h6> el mismo tamao de fuente (12px) que el


elemento <p> (prrafo) pero color azul para el ttulo y gris claro
(color:#aaaaaa) para el prrafo. Agrupar las dos elementos para la
definicin de la fuente y posteriormente agregar a cada elemento el valor
respectivo para el color del texto.
7 - Propiedades relacionadas al texto (color, text-align, textdecoration)
A una de estas propiedades ya la vimos cuando comenzamos con los primeros
conceptos: color, nos permite definir el color del texto, lo podemos indicar por
medio de tres valores hexadecimales que indican la mezcla de rojo, verde y
azul. Por ejemplo si queremos rojo puro debemos indicar:

color:#ff0000;
Si queremos verde puro:

color:#00ff00
Si queremos azul puro:

color:#0000ff
Luego si queremos amarillo debemos mezclar el rojo y el verde:

color:#ffff00
Hay muchos programas que nos permiten seleccionar un color y nos
descomponen dicho valor en las proporciones de rojo, verde y azul.
Otra forma de indicar el color, si tenemos los valores en decimal, es por medio
de la siguiente sintaxis:

color:rgb(255,0,0);
Es decir, por medio de la funcin rgb(red,green,blue), indicamos la cantidad de
rojo, verde y azul en formato decimal.
La segunda propiedad relacionada al texto es text-align, que puede tomar
alguno de estos cuatro valores:

left
right
center
justify
Si especificamos:

text-align:center;
El texto aparecer centrado. Si queremos justificar a derecha, emplearemos el
valor right y si queremos a la izquierda, el valor ser left.
La tercera propiedad relacionada al texto que podemos emplear es textdecoration que nos permite entre otras cosas que aparezca subrayado el texto,
tachado o una lnea en la parte superior, los valores posibles de esta propiedad
son:

none
underline
overline

line-through
Como ejemplo, definiremos estilos relacionados al texto para los elementos de
cabecera h1, h2 y h3:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1{
color:#ff0000;
textalign:left;
textdecoration:underline;
}
h2{
color:#dd0000;
textalign:center;
textdecoration:underline;
}
h3{
color:#aa0000;
textalign:right;
textdecoration:underline;
}
</style>
</head>
<body>
<h1>Ttulodenivel1.<h1>
<h2>Ttulodenivel2.<h2>
<h3>Ttulodenivel3.<h3>
</body>
</html>
Es decir, para los ttulos de nivel 1 tenemos la regla:

h1 {
color:#ff0000;
text-align:left;
text-decoration:underline;
}
Color de texto rojo intenso, el texto debe aparecer de izquierda a derecha y
subrayado.
Luego para el elemento h2 tenemos:

h2 {
color:#dd0000;
text-align:center;
text-decoration:underline;
}
El color sigue siendo rojo pero un poco ms oscuro, el texto debe aparecer
centrado y subrayado.
Y por ltimo:

h3 {
color:#aa0000;
text-align:right;
text-decoration:underline;
}
Para los ttulos de nivel tres, el texto es rojo ms oscuro, alineado a derecha y
subrayado.

Problema:

Definir estilos relacionados al texto para los elementos de cabecera


h1,h2 y h3, inicializando las propiedades: color, text-align y textdecoration con los siguientes valores:
para el elemento h1:
color:#ff0000;
text-align:left;
text-decoration:underline;

para el elemento h2:


color:#dd0000;
text-align:center;
text-decoration:underline;

y para el elemento h3:


color:#aa0000;
text-align:right;
text-decoration:underline;

<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>
h1 {
color:#ff0000;
text-align:left;
text-decoration:underline;
}
h2 {
color:#dd0000;
text-align:center;
text-decoration:underline;
}

h3 {
color:#aa0000;
text-align:right;
text-decoration:underline;
}
</style>
</head>
<body>
<h1>Ttulo de nivel 1.<h1>
<h2>Ttulo de nivel 2.<h2>
<h3>Ttulo de nivel 3.<h3>
</body>
</html>

Problema:

Definir para el elemento prrafo (p) el color verde puro, texto centrado.
Imprimir varios prrafos para ver los resultados segn la regla de estilo
definida. Qu valor debemos definir para que el texto aparezca con
color rojo oscuro?
8 - Ms propiedades relacionadas al texto (letter-spacing, wordspacing, text-indent, text-transform)

Vimos en el concepto anterior las propiedades:

color
text-align
text-decoration
Ahora veremos el objetivo de las siguientes propiedades que nos faltan:

letter-spacing
word-spacing
text-indent
text-transform

La propiedad letter-spacing y word-spacing permiten indicar el espacio que


debe haber entre los caracteres y entre las palabras.
La propiedad text-indent, indenta la primera linea de un texto. A partir de la
segunda lnea, el texto aparece sin indentacin. Podemos indicar un valor
negativo con lo que la indentacin es hacia la izquierda.
Por ltimo, la propiedad text-transform puede inicializarse con alguno de los
siguientes valores:

none - capitalize - lowercase - uppercase


Cada uno de estos valores transforman el texto como sigue:

capitalize: Dispone en maysculas el primer caracter de cada palabra.

lowercase: Convierte a minsculas todas las letras del texto.

uppercase: Convierte a maysculas todas las letras del texto.

none: No provoca cambios en el texto.

El siguiente ejemplo define reglas para los elementos h1 y p:


<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
h1{
letterspacing:10px;
wordspacing:30px;
texttransform:capitalize;
}
p{
textindent:20px;
}
</style>
</head>
<body>
<h1>Esteesunttulodenivel1</h1>
<p>Todoeltextosiguienteseencuentraencerradoenel
elementodeprrafo
yconelobjetivodeverelefectodelapropiedadtext
indent.
Lapropiedadtextindentpodemosinicializarlaconunvalor
positivo,

comoeselcasoactualopodemosinicializarlaconunvalor
negativoloque
provocarqueeltextodelaprimeralneadelprrafo
comienceenunacolumnainferioraldetodoelbloque.</p>
</body>
</html>
La cabecera de nivel uno, tiene la siguiente regla:

h1 {
letter-spacing:10px;
word-spacing:30px;
text-transform:capitalize;
}
Es decir que las letras deben tener una separacin de 10 pixeles, las palabras
deben estar separadas por 30 pixeles y por ltimo deben disponerse en
maysculas la primera letra de cada palabra.
Para el elemento p tenemos la siguiente regla:

p {
text-indent:20px;
}
Es decir, la primera lnea del prrafo deber imprimirse 20 pxeles a la derecha
donde normalmente debera aparecer.

Problema:

Inicializar los elementos h1 y p con los siguientes valores:


h1 {
letter-spacing:10px;
word-spacing:30px;
text-transform:capitalize;
}
p {
text-indent:20px;
}

<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>

h1 {
letter-spacing:10px;
word-spacing:30px;
text-transform:capitalize;
}
p{
text-indent:20px;
}
</style>
</head>
<body>
<h1>Este es un ttulo de nivel 1</h1>
<p>Todo el texto siguiente se encuentra encerrado en el elemento de
prrafo y con el objetivo de
ver el efecto de la propiedad text-indent. La propiedad text-indent podemos
inicializarla con un valor positivo, como es el caso actual o podemos
inicializarla con un valor negativo lo que provocar que el texto de la
primera lnea del prrafo comienze en una columna inferior al de todo el
bloque. </p>
</body>
</html>

Problema:

Definir los elementos de cabecera h1, h2 y h3 con valores decrecientes


para las propiedades:
letter-spacing
word-spacing

Luego inicializar la propiedad text-transform para que el texto siempre


salga en maysculas.
9 - Herencia de propiedades de estilo.

Ahora veremos que el conjunto de elementos HTML forman en s un rbol que


en su raiz podemos identificar el elemento body del cual se desprenden otros
elementos contenidas en esta seccin, como podran ser los elementos

h1,h2,h3,h4,h5,h6,p,div luego estas en su interior contienen otros elementos


HTML como podran ser em,strong,pre etc.
Con ejemplos veamos que hay muchos estilos que se heredan (todos los vistos
hasta el momento se heredan), es decir si definimos la propiedad color para el
elemento h1, luego si dicho elemento incorpora un texto con el elemento em en
su interior, la propiedad color del elemento em tendr el mismo valor que la
propiedad h1 (es decir el elemento em hereda las propiedades del elemento
h1)
Con un ejemplo veremos el resultado de la herencia de propiedades entre los
elementos HTML:
<html>
<head>
<title>Problema</title>
<style>
body{
color:#0000ff;
fontfamily:verdana;
}
</style>
</head>
<body>
<h1>Esteesunttulodenivel1yconelelemento'em'la
palabra:
<em>Hola</em></h1>
<p>Todoesteprrafodebeserdecolorazulyaquelo
heredadel
elementobody.</p>
</body>
</html>
En este ejemplo hemos definido la siguiente regla para el elemento body:

body {
color:#0000ff;
font-family:verdana;
}
Inicializamos la propiedad color con el valor de azul y la fuente de tipo verdana.
Con esto todos los elementos contenidas en el body que no redefinan estas
dos propiedades recibirn los valores aqu definidos. En este ejemplo la
cabecera de primer nivel es decir h1 y el prrafo tienen como color el azul y la
fuente es de tipo verdana.

Ahora bien en muchas situaciones podemos redefinir propiedades para


elementos contenidos, veamos como podemos hacer que el texto contenido en
los elementos em y p aparezcan de color distinto:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
body{
color:#0000ff;
fontfamily:verdana;
}
em{
color:#008800;
}
p{
color:#999999;
}
</style>
</head>
<body>
</body>
<h1>Esteesunttulodenivel1yconelelemento'em'la
palabra:
<em>Hola</em></h1>
<p>Todoesteprrafodebeserdecolorgrisyaquelo
redefinela
marcapynoloheredadelamarcabody.</p>
</html>
Ahora hemos definido tres reglas, la primera igual que el problema anterior,
define la propiedad color en azul y la fuente de tipo verdana para el elemento
body:

body {
color:#0000ff;
font-family:verdana;
}
La segunda regla define la propiedad color en verde para el elemento em, con
esto no heredar el color azul del elemento body (que es el elemento padre):

em {
color:#008800;
}

Algo similar hacemos con el elemento p para indicar que sea de color gris:

p {
color:#999999;
}
Pero podemos ver que todas los elementos heredan la fuente verdana ya que
ninguna lo sobreescribe.

Problema:

Confeccionar una pgina aplicando el siguiente estilo:


body {
color:#0000ff;
font-family:verdana;
}

Luego imprimir contenido dentro de los elementos h1,em y p.


Definir dos reglas ms de estilo al problema, que sobreescriban la
propiedad color:
em {
color:#008800;
}
p {
color:#999999;
}

<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>
body {
color:#0000ff;
font-family:verdana;
}
em {
color:#008800;
}
p{
color:#999999;

}
</style>
</head>
<body>
<h1>Este es un ttulo de nivel 1 y con el elemento 'em' la palabra:
<em>Hola</em></h1>
<p>El ttulo sale todo de color azul, menos la palabra Hola ya que redefine
el color. Todo este prrafo debe ser de color gris.</p>
</body>
</html>

Problema:

Confeccione una pgina que define una regla para el elemento body e
inicialice las propiedades color y font-family. Luego defina reglas de
estilo para los elementos h1,h2 y h3 que redefinan la fuente con los
valores: Times New Roman, Courier y Arial respectivamente. Imprima
tres ttulos, cada uno con los elementos h1,h2 y h3. Por ltimo imprima
un prrafo.
10 - Definicin de un estilo en funcin del contexto.

Este otro recurso que provee las hojas de estilo en cascada (css) es la
definicin de un estilo para un elemento HTML siempre y cuando la misma est
contenida por otro elemento determinado. Slo en ese caso el estilo para dicha
elemento se activar.
Supongamos que queremos que cuando disponemos un texto encerrado por el
elemento strong dentro de un prrafo el color del mismo sea verde. Pero si el
elemento strong est contenida por el elemento h1 el color debe ser rojo, luego
la sintaxis del problema es:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
pstrong{
color:#0000ff;

}
h1strong{
color:#ff0000;
}
</style>
</head>
<body>
<h1>Actenemosunttulodeniveluno,luegounbloquecon
elelementostrongdebeaparecer<strong>as</strong></h1>
<p>
Luegosiescribimosunprrafoyencerramosunbloquecon
elelementostrong
debeaparecer<strong>as</strong>
</p>
</body>
</html>
Es importante analizar la sintaxis para la defincin de estilos en funcin del
contexto.
Tenemos:

p strong{
color:#0000ff;
}
Estamos diciendo que todas los bloques de la pgina que contengan el
elemento strong y que estn contenidas por el elemento p (prrafo) se pinten
de azul. Si bien hay dos bloques en la pgina que estn encerrados por el
elemento strong, solo uno se pinta de color azul, el otro bloque se pinta de
color verde, ya que tenemos:

h1 strong{
color:#ff0000;
}
Es decir, activar el color rojo para el contenido encerrado por el elemento
strong, siempre y cuando se encuentre contenido por el elemento h1.
No confundir con la sintaxis para definir reglas de estilo a dos elementos que se
hace separando por coma los elementos HTML:

h1,strong{
color:#ff0000;
}
Es decir que el texto contenido por los elementos h1 y strong deben aparecer
de color rojo.

Se pueden definir estilos en funcin del contexto, con mayor precisin, como
por ejemplo:

div h1 em {
}

color:#ff0000;

Con esto estamos diciendo que se debe pintar de color rojo el texto contenido
por el elemento em siempre y cuando est contenida en un elemento h1 y esta
a su vez dentro de un div.
La pgina completa queda codificada de la siguiente forma:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<style>
divh1em{
color:#ff0000;
}
</style>
</head>
<body>
<div>
<h1>Esteesuntitulodenivel1dentrodeun
<em>div</em></h1>
</div>
<h1>Esteesuntitulodenivel1fueradeun
<em>div</em></h1>
</body>
</html>

Problema:

Disponer un texto encerrado por el elemento strong dentro de un prrafo,


el color de la misma ser verde. Pero si el elemento strong est contenida
por el elemento h1 el color debe ser rojo.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<style>

p strong{
color:#0000ff;
}
h1 strong{
color:#ff0000;
}
</style>
</head>
<body>
<h1>Ac tenemos un ttulo de nivel uno, luego un bloque con el elemento
strong debe aparecer <strong>as</strong></h1>
<p>
Luego si escribimos un prrafo y encerramos un bloque con la marca bold
debe aparecer <strong>as</strong>
</p>
</body>
</html>

Problema:

Definir distintas escalas de grises para los textos contenidos por el


elemento "em" que se encuentren contenidos por los elementos
h1,h2,h3,h4,h5 y h6.
La escala de grises que podemos utilizar es:
color:#dddddd; si est contenido en un h1
color:#cccccc; si est contenido en un h2
color:#bbbbbb; etc.
color:#aaaaaa;
color:#999999;
color:#888888;

Aparecen los bloques de ms claro a ms oscuro (cuando los tres valores


son iguales (rojo,verde,azul) estamos en presencia de un gris (salvo el
#000000 y el #ffffff))
11 - Definicin de hojas de estilo en un archivo externo.

Hasta ahora hemos visto la definicin de estilos a nivel de elemento HTML y la


definicin de estilos a nivel de pgina. Dijimos que la primera forma es muy
poco recomendada y la segunda es utilizada cuando queremos definir estilos
que sern empleados slo por esa pgina.
Ahora veremos que la metodologa ms empleada es la definicin de una hoja
de estilo en un archivo separado que deber tener la extensin css.
Este archivo contendr las reglas de estilo (igual como las hemos visto hasta
ahora) pero estarn separadas del archivo HTML.
La ventaja fundamental es que con esto podemos aplicar las mismas reglas de
estilo a parte o a todas las pginas del sitio web. Veremos que esto ser muy
provechoso cuando necesitemos hacer cambios de estilo (cambiando las
reglas de estilo de este archivo estaremos cambiando la apariencia de
mltiples pginas del sitio).
Tambin tiene como ventaja que al programador le resulta ms ordenado tener
lo referente a HTML en un archivo y las reglas de estilo en un archivo aparte.
Otra ventaja es que cuando un navegador solicita una pgina, se le enva el
archivo HTML y el archivo CSS, quedando guardado este ltimo archivo en la
cach de la computadora, con lo cual, en las sucesivas pginas que requieran
el mismo archivo de estilos, ese mismo archivo se rescata de la cach y no
requiere que el servidor web se lo reenve (ahorrando tiempo de transferencia)
Veamos la primera pgina HTML que tiene asociada una hoja de estilo en un
archivo externo. El archivo HTML es (pagina.html):
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1>Definicindehojasdeestiloenunarchivo
externo.</h1>
<p>
Hastaahorahemosvistoladefinicindeestilosanivelde
elementoHTML
yladefinicindeestilosaniveldepgina.Dijimosque
laprimera
formaesmuypocorecomendadaylasegundaesutilizada
cuandoqueremosdefinir
estilosquesernempleadossoloporesapgina.
Ahoraveremosquelametodologamsempleadaesla
definicin

deunahojadeestiloenunarchivoseparadoquedeber
tenerlaextensin
css.
</p>
</body>
</html>
El archivo que tiene las reglas de estilo es (estilos.css):
body{
backgroundcolor:#eafadd;
}
h1{
color:#0000cc;
fontfamily:timesnewroman;
fontsize:25px;
textalign:center;
textdecoration:underline;
}
p{
color:#555555;
fontfamily:verdana;
textalign:justify;
}
Como podemos observar, para indicar el archivo de estilos externo, debemos
agregar en la cabecera (head) del archivo HTML la siguiente marca:

<link rel="StyleSheet" href="estilos.css"


type="text/css">
La propiedad href hace referencia al archivo externo que afectar la
presentacin de esta pgina. En la propiedad type, indica al navegador cual es
el formato de archivo. El atributo rel se usa para definir la relacin entre el
archivo enlazado y el documento HTML.
Slo queda probar esta pgina funcionando.

De ahora en ms nos acostumbraremos a trabajar con hojas de estilo definidas


en un archivo externo, que es en definitiva la forma ms comn de desarrollar
un sitio web aplicando CSS.

Problema:

Confeccionar una pgina HTML que incorpore una hoja de estilo desde
un archivo externo. Definir reglas de estilos para los elementos body, h1
y p.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1>Definicin de hojas de estilo en un archivo externo.</h1>
<p>
Hasta ahora hemos visto la definicin de estilos a nivel de elemento HTML y
la definicin de estilos a nivel de pgina. Dijimos que la primera forma es
muy poco recomendada y la segunda es utilizada cuando queremos definir
estilos que sern empleados solo por esa pgina.
Ahora veremos que la metodologa ms empleada es la definicin de una
hoja de estilo en un archivo separado que deber tener la extensin css.
</p>
</body>
</html>
Estilos:
body {
background-color:#eafadd;
}
h1 {
color:#0000cc;
font-family:times new roman;
font-size:25px;
text-align:center;
text-decoration:underline;
}
p{

color:#555555;
font-family:verdana;
text-align:justify;
}

Problema:

Crear una pgina web que contenga una cabecera de nivel 1 (h1), luego
una cabecera de nivel 2 (h2) y un conjunto de prrafos.
Definir reglas de estilo para los tres elementos h1, h2 y p. Inicializar
propiedades vistas en conceptos anteriores. Intentar el planteo de una
pgina que muestre el contenido de la forma ms clara posible.
12 - Definicin de estilos por medio de clases.

En muchas situaciones una regla de estilo puede ser igual para un conjunto de
elementos HTML, en esos casos conviene plantear una regla de estilo con un
nombre genrico que posteriormente se puede aplicar a varios elementos de
HTML.
Para el planteo de una regla de estilo por medio de una clase creamos un
nombre de clase y le antecedemos el caracter punto:

.resaltado{
color:#000000;
background-color:#ffff00;
font-style:italic;
}
Luego para asignar dicha regla a un elemento HTML definimos la propiedad
class al elemento que necesitamos fijarle este estilo:

<h1 class="resaltado">Este elemento h1 aparece con la


clase resaltado</h1>
Podemos especificar la clase "resaltado" a todos los elementos HTML que
necesitemos aplicarle dichas reglas de estilo.
Veamos un ejemplo, la pagina.html es:
<!DOCTYPEhtml>
<html>
<head>

<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1class="resaltado">Titulodenivel1</h1>
<p>
Esteprrafomuestraelresultadodeaplicarlaclase
.resaltadoenlaltima
<spanclass="resaltado">palabra.</span>
</p>
</body>
</html>
La hoja de estilo externa (estilos.css) es:
body{
backgroundcolor:#eeeeee;
}
.resaltado{
color:#000000;
backgroundcolor:#ffff00;
fontstyle:italic;
}
La sintaxis para definir una clase aplicable a cualquier elemento HTML es:

.resaltado{
color:#000000;
background-color:#ffff00;
font-style:italic;
}
Es decir, la inicializamos con el caracter punto y seguidamente un nombre de
clase. Dentro definimos las reglas de estilo como hemos venido trabajando
normalmente.
El nombre de la clase no puede comenzar con un nmero.
Luego, para indicar que un elemento sea afectada por esta regla:

<h1 class="resaltado">Titulo de nivel 1</h1>


Es decir, agregamos la propiedad class y le asignamos el nombre de la clase
(sin el punto).
Podemos inicializar tantas elementos HTML con esta regla como necesitemos:

<p>
Este parrafo muestra el resultado de aplicar la
clase .resaltado en la ltima
<span class="resaltado">palabra.</span>
</p>
Aca definimos la propiedad class al elemento span y le asignamos la misma
clase aplicada anteriormente al elemento h1.

Problema:

Definir la clase:

.resaltado{
color:#000000;
background-color:#ffff00;
font-style:italic;
}

Aplicar esta regla a los elementos h1 y span.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1 class="resaltado">Titulo de nivel 1</h1>
<p>
Este parrafo muestra el resultado de aplicar la clase .resaltado en la ltima
<span class="resaltado">palabra.</span>
</p>
</body>
</html>
Estilos:
body {
background-color:#eeeeee;
}
.resaltado{

color:#000000;
background-color:#ffff00;
font-style:italic;
}

Problema:
Problema 1:

Definir en la hoja de estilo estas dos clases:


.subrayado {
color:#00aa00;
text-decoration:underline;
}
.tachado {
color:#00aa00;
text-decoration:line-through;
}

Luego, en la pgina html, definir un ttulo con nivel h1 (subrayar todo el


ttulo). Seguidamente un prrafo que tenga algunas palabras subrayadas
y otras tachadas (utilizar el elemento span para asignar estilos a una
palabra)

Problema 2:

Definir estas dos reglas en la hoja de estilo externa. Luego crear una
pgina HTML que contenga 3 preguntas y 3 respuestas. A cada pregunta
y respuesta disponerla en un prrafo distinto. Asignar los estilos
.pregunta y .respueta
.pregunta {
font-family:verdana;
font-size:14px;
font-style:italic;
color:#0000aa;
}
.respuesta {
font-family:verdana;
font-size:12px;
font-style:normal;
text-align:justify;
color:#555555;

13 - Definicin de estilos por medio de id.

La diferencia fundamental en la definicin de un estilo por medio de id con


respecto a las clases, es que slo podremos aplicar dicho estilo a una solo
elemento HTML dentro de la pgina, ya que todos los id que se definen en una
pgina HTML deben tener nombres distintos.
La sintaxis para definir un estilo por medio de id es:

#cabecera {
font-family:Times New Roman;
font-size:30px;
text-align:center;
color:#0000ff;
background-color:#bbbbbb;
}
Es decir, utilizamos el carcter numeral (#) para indicar que se trata de un estilo
de tipo id.
Luego, slo un elemento HTML dentro de una pgina puede definir un estilo de
este tipo:

<div id="cabecera">
Hay que subrayar que slo un elemento HTML puede definir la propiedad id
con el valor de cabecera.
Los dos archivos completos del ejemplo entonces quedan (pagina.html):
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<divid="cabecera">
<h1>Ttulodelacabecera</h1>
</div>
</body>
</html>

Y el archivo de estilos (estilos.css) es:


#cabecera{
fontfamily:TimesNewRoman;
fontsize:30px;
textalign:center;
color:#0000ff;
backgroundcolor:#bbbbbb;
}

Problema:

Crear un estilo por medio de un id, luego crear una pgina con un bloque
div, definir la propiedad id con el nombre del estilo creado.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<div id="cabecera">
<h1>Ttulo de la cabecera</h1>
</div>
</body>
</html>
Estilos:
#cabecera {
font-family:Times New Roman;
font-size:30px;
text-align:center;
color:#0000ff;
background-color:#bbbbbb;
}

Problema:

Definir tres estilos de tipo id (cabecera, cuerpo y pie), luego definir en el


archivo HTML tres areas (div) inicializando el atributo id con los
nombres de reglas de estilo creados.
14 - Propiedades relacionadas al borde de un elemento HTML
(border-width, border-style, border-color)

Debemos ahora hacernos la idea que todo elemento que se crea dentro de una
pgina HTML genera una caja. Imaginemos los controles que hemos creado
h1, h2, h3, p, em, etc. si fijamos la propiedad background-color veremos que el
contenido se encuentra dentro de un rectngulo.
Podemos acceder a las propiedades del borde de ese rectngulo mediante las
hojas de estilo CSS; las propiedades ms importantes a las que tenemos
acceso son:

border-width
border-style
border-color
Veamos un ejemplo que inicialice estas propiedades:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<pclass="pregunta">QuindescubriAmrica
yenqueaofue?</p>
<pclass="respuesta">Colnen1492</p>
</body>
</html>
La hoja de etilo es:
.pregunta{
backgroundcolor:#ffff00;
borderwidth:1px;
borderstyle:solid;
bordercolor:#000000;

}
.respuesta{
borderwidth:1px;
borderstyle:dashed;
bordercolor:#000000;
}
Como podemos ver, hemos definido dos clases ".pregunta" que inicializa el
color de fondo en amarillo y luego define el ancho del borde en un pixel, el
estilo es slido y el color de la lnea de borde es negro.
Luego recordar que para indicar que un elemento tenga este estilo debemos
inicializar la propiedad class del elemento HTML respectivo:

<p class="pregunta">Quin descubri Amrica


y en que ao fue?</p>
Al segundo estilo definido lo hemos hecho con la clase ".respuesta"

.respuesta {
border-width:1px;
border-style:dashed;
border-color:#000000;
}
En sta hemos cambiado el estilo de borde por el valor dashed.
Disponemos de los siguientes estilos de borde:

none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset
Problema:Definir dos prrafos que representen una pregunta y
una respuesta. Inicializar estilos para el borde.
<!DOCTYPE html>
<html>
<head>

<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<p class="pregunta">Quin descubri Amrica y en que ao fue?</p>
<p class="respuesta">Coln en 1492</p>
</body>
</html>
Estilos:
.pregunta {
background-color:#ffff00;
border-width:1px;
border-style:solid;
border-color:#000000;
}
.respuesta {
border-width:1px;
border-style:dashed;
border-color:#000000;
}

Problema:Inicializar los elementos HTML h1,h2 y h3 con bordes


de 2 pixeles, color azul y diferentes estilos para cada una. Crear
una pgina HTML que los utilice.
Ej:
h1 {
border-width:2px;
border-style:solid;
border-color:#0000ff;
}

15 - Ms propiedades relacionadas al borde de un elemento


HTML
Como vimos en el concepto anterior tenemos propiedades que nos permiten
fijar el grosor, estilo y color del borde de un elemento HTML. Pero podemos ir
un paso ms all, las CSS nos permiten modificar independientemente cada
uno de los cuatro bordes del rectngulo.

Contamos con las siguientes propiedades:

border-top-width
border-right-width
border-bottom-width
border-left-width
border-top-style
border-right-style
border-bottom-style
border-left-style
border-top-color
border-right-color
border-bottom-color
border-left-color
Un ejemplo inicializando estas propiedades:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1class="titulopagina">Elblogdelpensador</h1>
</body>
</html>
y el archivo de estilos:
.titulopagina{
backgroundcolor:#ffffcc;
textalign:center;
fontfamily:verdana;
fontsize:40px;
bordertopwidth:1px;
borderrightwidth:3px;
borderbottomwidth:3px;
borderleftwidth:1px;
bordertopstyle:dotted;
borderrightstyle:solid;
borderbottomstyle:solid;
borderleftstyle:dotted;
bordertopcolor:#ffaa00;
borderrightcolor:#ff0000;
borderbottomcolor:#ff0000;
borderleftcolor:#ffaa00;

}
Es decir, esta metodologa de inicializar el borde de un elemento HTML, tiene
utilidad si los mismos varan en grosor, estilo o color.
Veremos ms adelante que hay otras formas de inicializar los bordes de los
elementos que reducen el texto a escribir.

Problema:

Crear una clase .titulopagina que inicialice independientemente el


grosor, estilo y color de la propiedad del borde.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1 class="titulopagina">El blog del pensador</h1>
</body>
</html>
Estilos:
.titulopagina {
background-color:#ffffcc;
text-align:center;
font-family:verdana;
font-size:40px;

border-top-width:1px;
border-right-width:3px;
border-bottom-width:3px;
border-left-width:1px;

border-top-style:dotted;
border-right-style:solid;

border-bottom-style:solid;
border-left-style:dotted;

border-top-color:#ffaa00;
border-right-color:#ff0000;
border-bottom-color:#ff0000;
border-left-color:#ffaa00;
}

Problema:

Crear una clase .titulosecundario que inicialice el borde superior e


inferior con ancho de 2 pixeles y los bordes laterales con cero pixel. A su
eleccin queda el estilo y color.
16 - Propiedades relacionadas al padding de un elemento
HTML.
El padding (almohadilla) suma espacio entre el contenido del elemento HTML
(por ejemplo dentro del elemento prrafo el texto propiamente dicho es el
contenido) y el borde (recordar propiedad border)
Podemos configurar los 4 en caso que tengan el mismo valor accediendo a la
propiedad:

padding
o podemos configurar en forma independiente cada lado:

padding-top
padding-right
padding-bottom
padding-left
Veamos un ejemplo, la pagina.html:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<preclass="codigofuente">
publicclassRectangulo{
//atributos
intalto;
intancho;
booleanrelleno;
//mtodos

publicintdevolverArea(){
returnalto*ancho;
}
publicvoidrellenar(booleanr){
relleno=r;
}
publicvoidcambiarTamano(intan,intal){
ancho=an;
alto=al;
}
publicRectangulo(){//constructor
alto=20;
ancho=10;
relleno=false;
}
}//finclaseRectangulo
</pre>
</body>
</html>
El archivo estilos.css es:
.codigofuente{
fontsize:12px;
backgroundcolor:#ffffcc;
borderwidth:1px;
borderstyle:dotted;
bordercolor:#ffaa00;
padding:20px;
}
Con el elemento HTML "pre", se respetan los espacios y retornos de carro que
hayamos puesto en el texto fuente. Este estilo de texto es muy adecuado
cuando queremos mostrar el cdigo fuente de un programa.

Problema:

Mostrar con elemento "pre" de HTML un pequeo programa de Java.


Hacer que el mismo aparezca en un rectngulo amarillo, con borde y una
separacin entre el borde y el contenido de 20 pxeles.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">

</head>
<body>
<pre class="codigofuente">
public class Rectangulo{
//atributos
int alto;
int ancho;
boolean relleno;
//mtodos
public int devolverArea(){
return alto*ancho;
}
public void rellenar(boolean r){
relleno=r;
}
public void cambiarTamano(int an, int al){
ancho=an;
alto=al;
}
public Rectangulo() {// constructor
alto=20;
ancho=10;
relleno=false;
}
}//fin clase Rectangulo

</pre>
</body>
</html>
Estilos:
.codigofuente {
font-size:12px;

background-color:#ffffcc;
border-width:1px;
border-style:dotted;
border-color:#ffaa00;

padding:20px;
}

Problema:

Definir una clase titulo que fije los padding de izquierda y derecha con
20 pixeles y el superior e inferior en 10. Escribir un texto dentro del
elemento h1.
17 - Propiedades relacionadas al margen de un elemento HTML.
Otra serie de propiedades relacionadas al contorno de un elemento HTML son:

margin
margin-top
margin-right
margin-bottom
margin-left
El margen est despus del borde.
El margen separa un elemento HTML de otro elemento HTML dentro de la
pgina.
Veamos un ejemplo, la pgina HTML muestra dos prrafos con cero pixeles de
margen:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<p>Primerprrafo</p>
<p>Segundoprrafo</p>
</body>
</html>
La hoja de estilo:
p{
backgroundcolor:#ffffaa;
margin:0px;
borderwidth:1px;
borderstyle:solid;

bordercolor:#ff0000;
}
Hay que tener en cuenta que cuando dos elementos HTML uno debajo del otro
hay especificado mrgenes el resultado final del margen inferior de uno y el
superior de otro no se suman. Por ejemplo si un elemento tiene mrgen inferior
de 10 y el elemento que se encuentra debajo de este tiene mrgen de 20px
luego el mrgen total entre estos dos elementos es de 20px (es el mayor de los
dos mrgenes y no 30px que es la suma)
Pruebe modificar el valor para la propiedad margin y vea el resultado de la
pgina.
El modelo final de caja se puede resumir con esta imagen:

Problema:

Mostrar dos prrafos con un margen de cero pixel.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<p>Primer prrafo</p>
<p>Segundo prrafo</p>
</body>
</html>

Estilos:
p{
background-color:#ffffaa;
margin:0px;
border-width:1px;
border-style:solid;
border-color:#ff0000;
}

Problema:

Disponer ttulos de primer y segundo nivel con un margen de 5 pixeles


en la parte superior e inferior del elemento HTML.
18 - Propiedades relacionadas a listas.
Las listas se utilizan para enumerar una serie de elementos, se utiliza el
elemento HTML ul (Unordered List), y cada item de la lista con el elemento
HTML li (List Item).
Las CSS nos permiten configurar las listas por medio de tres propiedades:

list-style-type
list-style-position
list-style-image
A list-style-type puede asignrsele alguno de estos valores:

none
disc
circle
square
decimal
decimal-leading-zero
lower-roman
upper-roman
lower-alpha
upper-alpha
Los valores de list-style-position:

inside
outside
Los valores de list-style-image:

none
url
Veamos un ejemplo que prueba todos los valores posibles que puede tomar la
propiedad list-style-type:
<!DOCTYPEhtml>
<html>

<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<ulclass="vacio">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="circulorelleno">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="circulovacio">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="cuadrado">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="decimal">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="romanominuscula">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="romanomayuscula">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="letrasminusculas">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ulclass="letrasmayusculas">
<li>Brasil</li>

<li>Uruguay</li>
<li>Argentina</li>
</ul>
</body>
</html>
Luego la hoja de estilo es:
.vacio{
liststyletype:none;
}
.circulorelleno{
liststyletype:disc;
}
.decimal{
liststyletype:decimal;
}
.romanominuscula{
liststyletype:lowerroman;
}
.romanomayuscula{
liststyletype:upperroman;
}
.circulovacio{
liststyletype:circle;
}
.cuadrado{
liststyletype:square;
}
.letrasminusculas{
liststyletype:loweralpha;
}
.letrasmayusculas{
liststyletype:upperalpha;
}
Hemos definido un conjunto de clases para aplicarlas a las listas de HTML.

Problema:

Probar todos los valores posibles que puede tomar la propiedad list-styletype en un conjunto de listas de HTML.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>

<link rel="StyleSheet" href="estilos.css" type="text/css">


</head>
<body>
<ul class="vacio">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="circulorelleno">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="circulovacio">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="cuadrado">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="decimal">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="romanominuscula">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>

</ul>
<ul class="romanomayuscula">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="letrasminusculas">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
<ul class="letrasmayusculas">
<li>Brasil</li>
<li>Uruguay</li>
<li>Argentina</li>
</ul>
</body>
</html>
Estilos:
.vacio{
list-style-type:none;
}
.circulorelleno{
list-style-type:disc;
}
.decimal{
list-style-type:decimal;
}
.romanominuscula{
list-style-type:lower-roman;
}
.romanomayuscula{

list-style-type:upper-roman;
}
.circulovacio{
list-style-type:circle;
}
.cuadrado{
list-style-type:square;
}
.letrasminusculas{
list-style-type:lower-alpha;
}
.letrasmayusculas{
list-style-type:upper-alpha;
}

Problema:
Problema 1

Confeccionar dos lista de lenguajes de programacin. Agrupar los


lenguajes estructurados (Pascal, C) y los lenguajes orientados a objetos
(C++, Java, C#) Aplicar estilos distintos a cada lista.
Problema 2

Crear dos listas y e inicializar la propiedad list-style-position con los


valores inside y outside respectivamente y analizar en que difieren.

19 - Propiedades relacionadas al fondo (background)


Hasta ahora hemos probado y utilizado la propiedad background-color para fijar
el color de fondo del contenido de un elemento HTML (body, h1, h2, p, etc.).
Hay otras propiedades relacionadas al fondo que nos permiten, entre otras
cosas, disponer un archivo de imagen. Las propiedades relacionadas al
background y sus valores son:

background-color
background-image
background-repeat
background-position

background-attachment
Veamos un ejemplo de disponer una imagen sobre el fondo de la pgina:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
</body>
</html>
La hoja de estilo queda:
body{
backgroundimage:url(fondo.jpg);
}
La nica propiedad que hemos inicializado es background-image indicando el
nombre del archivo de imagen a mostrar.
La imagen se repite en x e y hasta llenar la pgina por completo, ya que por
defecto background-repeat est inicializada con el valor repeat, probar de
modificar el estilo primero con:

body {
background-image:url(fondo.jpg);
background-repeat:repeat-x;
}
Luego con:

body {
background-image:url(fondo.jpg);
background-repeat:repeat-y;
}
Y por ltimo:

body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
}
Tener en cuenta que podemos aplicar una imagen a otros elementos de HTML
(h1, h2, h3, p, etc.)
La ltima propiedad background-position podemos indicar la posicin de la
imagen segn los siguientes valores:

top left
top center
top right
center left
center center
center right
bottom left
bottom center
bottom right

x-% y-%
x-pos y-pos
Para que tenga sentido esta propiedad debemos inicializar la propiedad
background-repeat con el valor no-repeat.
Por ejemplo:

body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
background-position:20% 50%;
}
Dispone la imagen 20% avanzando desde la izquierda y 50% avanzando desde
arriba.
La siguiente regla:

body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
background-position:400px 10px;
}
Dispone la imagen 400 pixeles desde la derecha y 10 pxeles desde arriba.
La regla:

body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
background-position:top right;
}
Dispone la imagen en la parte superior a la derecha.

Problema:

La imagen se repite en x e y hasta llenar la pgina por completo, ya que


por defecto background-repeat est inicializada con el valor repeat,
probar de modificar el estilo primero con:
body {
background-image:url(fondo.jpg);
background-repeat:repeat-x;
}

Luego con:
body {
background-image:url(fondo.jpg);
background-repeat:repeat-y;
}

Y por ltimo:

body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
}

<!DOCTYPE html>

<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
</body>
</html>
Estilos:
body {
background-image:url(fondo.jpg);
}

Problema:

Definir la imagen fondo.jpg como fondo de la pgina, luego inicializar y


probar la propiedad background-attachment con los dos valores posibles
(scroll/fixed)
body {
background-image:url(fondo.jpg);
background-repeat:no-repeat;
background-attachment:scroll;/*luego probar con fixed*/
}

Para probar el efecto que produce esta propiedad debe ingresar en el


body de la pgina un texto muy grande que llene toda la pgina y
permita hacer scroll (de no hacer esto no ver la diferencia entre un valor
y otro del background-attachemnt)
20 - Propiedades relacionadas a fuentes (FORMATO
RESUMIDO)
Vimos anteriormente una serie de propiedades relacionadas a las fuentes:

font-family
font-size
font-style
font-weight
font-variant
En situaciones donde necesitemos inicializar varias de estas propiedades CSS
nos permite utilizar una propiedad que engloba a todas estas:

font
Podemos indicar en cualquier orden font-weight, font-style, font-variant y luego
los valores obligatorios font-size y font-family en ese orden.

Como ejemplo tenemos:


<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<p>HolaMundo</p>
</body>
</html>
Luego el archivo de estilos:
p{
font:bolditalic25pxverdana;
}
Es importante recordar que font-size y font-family deben ser los ltimos valores
inicializados y en ese orden. No debemos separar por coma.
Otros ejemplos:

p {
font: 16px Arial, Helvetica, sans-serif;

}
h1 {

font: italic bold 25px sans-serif;

}
Problema:Definir la propiedad font para el elemento p utilizando
el formato reducido de inicializacin.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<p>Hola Mundo</p>
</body>
</html>
Estilos
p{

font:bold italic 25px verdana;


}

Problema:Definir formatos reducidos para la propiedad font de los


elementos h1,h2 y h3. Luego probar con tres ttulos los resultados
obtenidos.

21 - Propiedades relacionadas al border (FORMATO


RESUMIDO)
Podemos inicializar todos los bordes con una sola propiedad:

border
Debemos indicar el border-width border-style border-color
No debemos separarlas por coma y deben estar especificados en ese orden.
Por ejemplo:

h1 {
border:1px solid #ff0000;
}
Por otro lado podemos inicializar cada borde con:

border-top
border-right
border-bottom
border-left
Debemos indicar el border-(top/right/bottom/left): width border-style border-color
Veamos con una pgina la utilizacin de la propiedad border y sus variantes:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1class="tituloprincipal">Propiedadborder</h1>
<pclass="comentarios">Debemosindicarelborderwidth
borderstyle
bordercolor</p>
</body>
</html>
Y la hoja de estilo definida para esta pgina es:
.tituloprincipal{
border:5pxsolid#ff0000;
}
.comentarios{
bordertop:1pxsolid#ffff00;
borderbottom:1pxsolid#ffff00;

}
Definimos dos clases llamadas tituloprincipal y comentarios y se los aplicamos
a los elementos h1 y p en la pgina HTML.

Problema:

Definir dos clases que inicialicen el borde utilizando las propiedades


border por un lado y border-top y border-bottom por otro.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1 class="tituloprincipal">Propiedad border</h1>
<p class="comentarios">Debemos indicar el border-width border-style
border-color</p>
</body>
</html>
ESTILOS
.tituloprincipal{
border:5px solid #ff0000;
}
.comentarios{
border-top:1px solid #0000ff;
border-bottom:1px solid #0000ff;
}

Problema:

Confeccionar una pgina que disponga una lnea en la parte inferior y


superior de los ttulos de nivel 1,2 y 3. Inicializar las propiedades bordertop y border-bottom para dicho cometido.

22 - Propiedades relacionadas al padding (FORMATO


RESUMIDO)
Podemos inicializar el padding de un elemento HTML en forma resumida con:

padding:padding-top padding-right padding-bottom


padding-left
Un ejemplo:

padding: 5px 10px 12px 3px;


si indicamos un nico valor se aplica a los cuatro lados:

padding: 1px;
Si indicamos dos valores, el primero se aplica a la parte superior e inferior y el
segundo valor a los lados izquierdo y derecho:

padding: 5px 10px;


Veamos un ejemplo con una pgina:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<pclass="comentarios">Estoesunapruebaparaverel
funcionamiento
delapropiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
Estoesunapruebaparaverelfuncionamientodela
propiedadpadding.
</p>
</body>
</html>
Luego el archivo CSS:
.comentarios{
backgroundcolor:#dddddd;
padding:5px30px;
}
Con este ejemplo, el prrafo tiene 5 pxeles de separacin con el borde en la
parte inferior y superior, y a la izquierda y derecha tiene 30 pxeles.

Problema:

Esto es una prueba para ver el funcionamiento de la propiedad padding.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<p class="comentarios">Esto es una prueba para ver el funcionamiento de
la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
Esto es una prueba para ver el funcionamiento de la propiedad padding.
</p>
</body>
</html>
Estilos:
.comentarios {
background-color:#dddddd;
padding:5px 30px;
}

Problema:

Definir tres clases distintas con formatos diferentes para expresar el


padding. Aplicar las clases a tres prrafos.
23 - Propiedades relacionadas al margin (FORMATO
RESUMIDO)
El funcionamiento y sintaxis es similar al visto para el padding:

margin: margin-top margin-right margin-bottom marginleft


Ejemplo:

p {
margin:5px 2px 4px 10px;
}
si indicamos un nico valor se aplica a los cuatro lados:

margin: 1px
si indicamos dos valores, el primero se aplica a la parte superior e inferior y el
segundo valor a los lados izquierdo y derecho.
Un ejemplo para ver la sintaxis:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1>TituloPrincipal</h1>
</body>
</html>
Y la hoja de estilo:
h1{
margin:70px20px;
}
la clase recuadro fija un mrgen de 70 pxeles en el borde superior e inferior, y
20 pxeles en los bordes izquierdo y derecho.

Problema:

Definir una regla de estilo para los mrgenes del elemento h1.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1>Titulo Principal</h1>
</body>
</html>

Estilos:
h1 {
margin:70px 20px;
}

Problema:

Confeccionar una pgina con ttulos de nivel h1,h2 y h3. Definir


distintos mrgenes para cada lado.
24 - Propiedades relacionadas al fondo (background)
(FORMATO RESUMIDO)
La propiedad background resume las propiedades vistas anteriormente:

background: background-color
background-image
background-repeat
background-attachment
background-position
Se puede inicializar una o varias de las propiedades referentes al fondo (es
indistinto el orden en que indicamos los valores)
Ejemplos:

p {
background: #cccccc url(fondo.jpg) repeat;
}
ul {
background url(fondo.png) no-repeat fixed #0000ff;
}
div {
background: top repeat-y scroll url(fondo.png);
}
Un ejemplo que inicializa esta propiedad con algunos valores en forma
simultnea:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
</body>
</html>
La hoja de estilo es:

body{
background:#ffffeeurl(fondo.jpg)repeatx;
}
No es obligatorio inicializar todos los valores, tampoco el orden es importante.

Problema:

Inicializar la propiedad background con formato resumido.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
</body>
</html>
Estilos:
body {
background: #ffffee url(fondo.jpg) repeat-x;
}

Problema:

Confeccionar una pgina que inicialice el fondo de un elemento h1 con


una imagen (utilizar la imagen: fondo.jpg)
25 - El selector universal *
Si queremos inicializar las propiedades de todas los elementos HTML podemos
utilizar el selector universal. Utilizamos el carcter asterisco para hacer
referencia a este selector.
Ejemplo:

* {
margin:0;
padding:0;
color:#ff0000;
}
Con dicho selector estamos especificando que todos los elementos HTML
tendrn un margin y padding de cero y los texto sern de color rojo.

Veamos un ejemplo dentro de una pgina:


<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<h1>Ttulodenivel1</h1>
<h2>Ttulodenivel2</h2>
<p>Estoestadentrodeunprrafo</p>
</body>
</html>
Luego en la hoja de estilo definimos:
*{
color:#0000aa;
margin:0;
padding:0;
}
Esto significa que todas los elementos se imprimen de color azul con cero pxel
de margin y padding, salvo que otra regla lo cambie, Imaginemos si definimos
h1 { color:#ff0000} significa que tiene prioridad esta regla.
En realidad, en forma tcita lo hemos estado utilizando, cuando definimos una
clase sin indicar el tipo de elemento HTML donde actuar:

.pregunta {
background-color:#ffff00;
border-width:1px;
border-style:solid;
border-color:#000000;
}
Podemos expresar la regla anterior perfectamente como:

*.pregunta {
background-color:#ffff00;
border-width:1px;
border-style:solid;
border-color:#000000;
}
Es decir que podemos asignar esta regla a cualquier elemento HTML.
Esto nos permite comprender, cuando definimos una regla que slo se puede
utilizar en un slo tipo de elemento HTML:

p.pregunta {
background-color:#ffff00;
border-width:1px;
border-style:solid;
border-color:#000000;
}
Esta regla slo se puede utilizar dentro de elementos de tipo prrafo.

Problema:

Definir la siguiente regla de estilo:


* {

color:#0000aa;
margin:0px;
padding:0px;

Definir el margin y padding con cero.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<h1>Ttulo de nivel 1</h1>
<h2>Ttulo de nivel 2</h2>
<p>Esto esta dentro de un prrafo</p>
</body>
</html>
Estilos:
*{
color:#0000aa;
margin:0;
padding:0;
}

Problema:

Defina cuatro propiedades para el selector universal y luego implemente


una pgina HTML que pruebe su funcionamiento.
26 - Pseudoclases

Las pseudoclases son unas clases especiales, que se refieren a algunos


estados del elemento HTML, las que se utilizan fundamentalmente son las que
se aplican al elemento <a> (enlace).
La sintaxis vara con respecto al concepto de clase visto anteriormente ya que
se tratan de pseudoclases predefinidas:

a:pseudoclase {
propiedad: valor;
}
Es decir separamos el nombre del elemento HTML con dos puntos.
Para el elemento HTML <a> tenemos 4 pseudoclases fundamentales:

link - Enlace sin ingresar


visited - Enlace presionado
hover - Enlace que tiene la flecha del mouse encima
active - Es la que tiene foco en ese momento (pruebe
de tocar la tecla tab)
Es importante hacer notar que el orden en que definimos las pseudoclases es
fundamental para su funcionamiento (debe respetarse el orden: link-visitedhover-active)
Este ejemplo es muy sencillo para ver el paso en los distintos estados que
puede tener un enlace:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<ahref="http://www.google.com">Google</a>
<ahref="http://www.yahoo.com">Yahoo</a>
<ahref="http://www.bing.com">Bing</a>
</body>
</html>
La hoja de estilo es:

a:link{
background-color:#00ff00;
color:#ff0000;
}
a:visited{
background-color:#000000;
color:#ffffff;
}
a:hover{
background-color:#ff00ff;
color:#fffff;
}
a:active{
background-color:#ff0000;

color:#ffff00;
}
Apenas ejecute la pgina los tres enlaces deben aparecer de color rojo con
fondo verde:

a:link{
background-color:#00ff00;
color:#ff0000;
}
Si presionamos la tecla tab podremos ver que el enlace que tiene foco aparece
de color amarillo con fondo rojo:

a:active{
background-color:#ff0000;
color:#ffff00;
}
Si pasamos la flecha del mouse sobre algn enlace veremos que aparece de
color blanco con fondo lila:

a:hover{
background-color:#ff00ff;
color:#fffff;
}
Por ltimo todos los enlaces que hayamos hecho clic debern aparecer de
color blanco con fondo negro:

a:visited{
background-color:#000000;
color:#ffffff;
}
Problema:

Mostrar una serie de enlaces con distintos colores segn si el link est
visitado, no visitado, el mouse est sobre el link o el link tiene foco.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<a href="http://www.google.com">Google</a>
<a href="http://www.yahoo.com">Yahoo</a>
<a href="http://www.bing.com">Bing</a>

</body>
</html>
Estilos:
a:link{
background-color:#00ff00;
color:#ff0000;
}
a:visited{
background-color:#000000;
color:#ffffff;
}
a:hover{
background-color:#ff00ff;
color:#fffff;
}
a:active{
background-color:#ff0000;
color:#ffff00;
}

Problema:

Definir la propiedad font-size con un valor distinto cuando la flecha del


mouse est sobre el link y pintar al mismo tiempo el fondo de color
amarillo.
27 - Eliminar el subrayado a un enlace "a" por medio de las
pseudoclases
Otra actividad comn en gran cantidad de sitios es eliminar el subrayado a los
enlaces con el objetivo que la pgina tenga mejor esttica. A esto lo podemos
hacer configurando las pseudoclases:

a:link {
text-decoration:none;
}
a:visited {
text-decoration:none;

}
Accedemos a las pseudoclases link y visited e inicializamos la propiedad textdecoration con el valor none.
Probamos la solucin en esta pgina:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<ahref="http://www.google.com">Google</a>
<ahref="http://www.yahoo.com">Yahoo</a>
<ahref="http://www.bing.com">Bing</a>
</body>
</html>
La hoja de estilo es:
a:link{
textdecoration:none;
}
a:visited{
textdecoration:none;
}
Es decir, configuramos la propiedad text-decoration con el valor none, por
defecto est configurada con el valor underline.
Tener en cuenta que podemos agrupar la regla de esta forma:

a:link, a:visited {
text-decoration: none;
}
Problema:
Eliminar el subrayado de los enlaces mediante las pseudoclase link
y visited.
<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<a href="http://www.google.com">Google</a>
<a href="http://www.yahoo.com">Yahoo</a>

<a href="http://www.bing.com">Bing</a>
</body>
</html>
Estilos:
a:link {
text-decoration: none;
}
a:visited {
text-decoration: none;
}

Problema:

Configurar los enlaces que aparezcan con una lnea tachada en lugar de
subrayado.
28 - Creacin de un men vertical configurando las
pseudoclases.
Un recurso muy til es disponer un men en una pgina, si no requerimos uno
muy elaborado podemos resolverlo utilizando slo CSS y HTML (en otros casos
se requiere adems de JavaScript)
Vamos a implementar uno muy sencillo que requiere agrupar en un div una
serie de prrafos que contienen un hipervnculo cada uno. Cuando la flecha del
mouse se encuentra sobre el hipervnculo cambiamos el color del fondo y la
letra del hipervnculo.
El problema resuelto es:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<divid="menu">
<p><ahref="http://www.google.com">Google</a></p>
<p><ahref="http://www.yahoo.com">Yahoo</a></p>
<p><ahref="http://www.bing.com">Bing</a></p>
<p><ahref="http://www.altavista.com">Altavista</a></p>
</div>
</body>
</html>
La hoja de estilo asociada a esta pgina es:

#menu{
fontfamily:Arial;
}
#menup{
margin:0px;
padding:0px;
}
#menua{
display:block;
padding:3px;
width:160px;
backgroundcolor:#f7f8e8;
borderbottom:1pxsolid#eeeeee;
textalign:center;
}
#menua:link,#menua:visited{
color:#ff0000;
textdecoration:none;
}
#menua:hover{
backgroundcolor:#336699;
color:#ffffff;
}
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 prrafos que se encuentren dentro del div que define el id
#menu (con esto logramos que si hay otros prrafos en el documento HTML no
se le apliquen esta regla):

#menu p {
margin:0px;
padding:0px;
}
Estamos indicando que todos los prrafos 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 pgina 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 prrafo, indistintamente del largo del hipervnculo.
Otra propiedad nueva es width, esta fija el tamao mximo que puede tener el
hipervnculo antes de provocar un salto de lnea.
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 vnculos 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 opcin cuando se tiene la flecha
del mouse encima:

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

Hacer un men de hipervnculos que se muestren en forma vertical.


<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<div id="menu">
<p><a href="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.altavista.com">Altavista</a></p>
</div>
</body>
</html>
Estilos:
#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;

Problema:

Modificar la hoja de estilo del men desarrollado anteriormente para que


cada opcin aparezca una lnea de color negro que la recuadre.
29 - Creacin de un men horizontal con una lista.
Otro estilo de men muy comn es donde las opciones se encuentran una al
lado de otra.
Utilizaremos una lista no ordenada con una serie de item que contienen los
enlaces.
Como elementos de una lista se muestran uno debajo de otro debemos
inicializar la propiedad float con el valor left para que los item se ubiquen uno al
lado de otro.
Veamos el cdigo para la implementacin de un men horizontal:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<ulid="menuhorizontal">
<li><ahref="http://www.google.com">Google</a></li>
<li><ahref="http://www.yahoo.com">Yahoo</a></li>
<li><ahref="http://www.bing.com">Bing</a></li>
<li><ahref="http://www.altavista.com">Altavista</a></li>
</ul>
</body>
</html>
El archivo de estilos es:
#menuhorizontal{
margin:0;
padding:0;
liststyletype:none;
}
#menuhorizontala{
width:100px;
textdecoration:none;
textalign:center;
color:#ff0000;
backgroundcolor:#f7f8e8;
padding:3px5px;
borderright:1pxsolidblue;
display:block;

}
#menuhorizontalli{
float:left;
}
#menuhorizontala:hover{
backgroundcolor:#336699;
}
Inicializamos el margin y padding con cero y el estilo de la lista con none para
que no aparezcan los circulitos de cada item:

#menuhorizontal {
margin:0;
padding:0;
list-style-type:none;
}
En los enlaces del men inicializamos la propiedad display con el valor block
para que el enlace tenga efecto en todo el rectngulo:

#menuhorizontal a {
width:100px;
text-decoration:none;
text-align:center;
color:#ff0000;
background-color:#f7f8e8;
padding:3px 5px;
border-right:1px solid blue;
display:block;
}
Para que los enlaces aparezcan uno al lado de otro inicializamos la propiedad
float con el valor left:

#menuhorizontal li {
float:left;
}
Finalmente la pseudoclase para indicar el color de fondo del enlace cuando la
flecha del mouse pasa por encima es:

#menuhorizontal a:hover {
background-color:#336699;
}
Problema:

Implementar un men horizontal con una lista.


<!DOCTYPE html>
<html>
<head>

<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<ul id="menuhorizontal">
<li><a href="http://www.google.com">Google</a></li>
<li><a href="http://www.yahoo.com">Yahoo</a></li>
<li><a href="http://www.bing.com">Bing</a></li>
<li><a href="http://www.altavista.com">Altavista</a></li>
</ul>
</body>
</html>
Estilos:
#menuhorizontal {
margin:0;
padding:0;
list-style-type:none;
}
#menuhorizontal a {
width:100px;
text-decoration:none;
text-align:center;
color:#ff0000;
background-color:#f7f8e8;
padding:3px 5px;
border-right:1px solid blue;
display:block;
}

#menuhorizontal li {
float:left;
}

#menuhorizontal a:hover {
background-color:#336699;
}

Problema:

Implemente un men horizontal y un men vertical a la izquierda.


30 - Propiedades relacionadas a la dimensin de un objeto en la
pgina.

Disponemos de dos propiedades fundamentales que nos permiten fijar el ancho


y el alto de un elemento HTML:

width
height
Cuando no se fija el ancho de un elemento HTML la propiedad toma el valor
por defecto que es "auto" por lo que el navegador tiene que calcular el ancho
teniendo en cuenta el contenido del elemento y el espacio disponible.
Por el momento hemos visto solo la medida en pxeles y porcentajes (luego
veremos que podemos utilizar otras unidades de medida para fijar el ancho y el
alto de un elemento)
Otras cuatro propiedades relacionadas con el ancho y el alto de un elemento
HTML son:

min-width
max-width
min-height
max-height

min-width Fija el ancho mnimo que puede tomar el elemento HTML (si
reducimos el ancho del navegador a un valor menor a este veremos que
aparece la barra de scroll en forma horizontal, es decir el elemento no puede
tomar un valor menor a este)

max-width Fija el ancho mximo que puede tomar el elemento HTML (es til en
los casos de aquellos elementos HTML que muestran texto y no queremos que
tome una dimensin muy grande ya que esto hace complejo la lectura)

min-height Fija el alto mnimo.

max-height Fija el alto mximo.

Veamos un ejemplo:
<!DOCTYPEhtml>
<html>
<head>
<title>Problema</title>
<linkrel="StyleSheet"href="estilos.css"type="text/css">
</head>
<body>
<divid="cabecera">
BlogdelProgramador
</div>
</body>
</html>
Solamente hemos definido un div donde mostramos la cabecera de una pgina.
La hoja de estilo definida:
#cabecera{
width:100%;
height:100px;
backgroundcolor:#ffee00;
color:#0000aa;
textalign:center;
fontfamily:TimesNewRoman;
fontsize:50px;
fontweight:bold;
}
La propiedad width la inicializamos con el valor 100%, lo que significa que
ocupar todo el ancho de la pgina (podemos inicializarlo en pixeles si lo
necesitamos). Luego a la propiedad height la inicializamos en 100 pxeles.
El resto de propiedades son las ya vistas en conceptos anteriores.
Es decir que las propiedades width y height nos permiten dar una dimensin al
elemento HTML ya sea con valores absolutos indicados en pixeles o relativos
indicados por porcentajes.

Problema:

Definir un div e inicializar las propiedades width y height.

<!DOCTYPE html>
<html>
<head>
<title>Problema</title>
<link rel="StyleSheet" href="estilos.css" type="text/css">
</head>
<body>
<div id="cabecera">
Blog del Programador
</div>
</body>
</html>
Estilos:
#cabecera {
width:100%;
height:100px;
background-color:#ffee00;
color:#0000aa;
text-align:center;
font-family:Times New Roman;
font-size:50px;
font-weight:bold;
}

Problema:

Crear una pgina HTML que muestre dos prrafos, a uno de ellos
aplicarle el siguiente estilo:
.parrafoestrecho {
width:200px;
text-align:justify;
}

Recordar que para aplicar esta clase a un prrafo debemos inicializar la


propiedad class del elemento p (ej. <p class="margenestrecho">bla
bla</p>)

Você também pode gostar