7. El modelo de cajas

Versión para imprimir.

En esta lección se presenta el concepto de excepciones y como procesarlas.

A. Longitudes en CSS

B. El modelo de cajas

Margen
Borde
Relleno
contenido
Margen

Es un espacio transparente que separa un elemento de otro.

Borde

Es una línea (que puede ser una figura con adornos) alrededor de un elemento.

Relleno

Es una espacio entre el contenido y el borde. Su color de fondo es el mismo que el color de fondo del contenido.

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width">
 <title>Modelo de cajas</title>
 <style>
  div {
   margin1.5rem;
   borderthick solid burlywood;
   background-colorgreenyellow;
  }
 </style>
</head>
<body>
 <div>Contenido</div>
</body>
</html>

C. Margen (margin)

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width">
 <title>Márgenes</title>
 <style>
  h1 {
   margin-top0.5rem;
   margin-left1rem;
   margin-bottom1.5rem;
   margin-right2rem;
   background-colorcyan;
  }

  p {
   margin0.5rem 2rem;
   background-coloryellow;
  }

  div {
   margin1rem;
   background-colorred;
  }

  footer {
   margin:
    0.5rem 1rem 3rem 2rem;
   background-color:
    yellowgreen;
  }
 </style>
</head>
<body>
 <h1>Márgenes</h1>
 <p>Párrafo</p>
 <div>Div</div>
 <footer>Footer</footer>
 <hr>
</body>
</html>

D. Relleno (padding)

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width">
 <title>Relleno</title>
 <style>
  h1 {
   padding-top0.5rem;
   padding-left1rem;
   padding-bottom1.5rem;
   padding-right2rem;
   background-colorcyan;
  }

  p {
   padding0.5rem 2rem;
   background-coloryellow;
  }

  div {
   padding1rem;
   background-colorred;
  }

  footer {
   padding:
    0.5rem 1rem 3rem 2rem;
   background-color:
    yellowgreen;
  }
 </style>
</head>
<body>
 <h1>Relleno</h1>
 <p>Párrafo</p>
 <div>Div</div>
 <footer>Footer</footer>
</body>
</html>

E. Borde (border)

Partes de un Borde

Ancho

Puede expresarse como un tamaño o con alguno de estos valores:

thin
Borde delgado.
medium
Borde de ancho mediano.
thick
Borde grueso.

Si no se pone, su valor por omisión es: medium.

Estilo

Puede expresarse con alguno de estos valores:

none

Sin borde.

dotted

El borde es una serie de puntos redondos.

dashed

El borde es una serie de guiones de esquinas cuadradas.

solid

El borde es una sola línea sólida.

double

El borde consiste en 2 líneas sólidas paralelas con espacio entre ellas.

La suma del ancho de las líneas y espacio debe ser igual al ancho del borde.

groove

El borde parece como si estuviera tallado dentro de la superficie.

ridge

El borde parece como si saliera de la superficie.

inset

Parece como si el contenido dentro del borde estuviera hundido en la superficie.

outset

Parece como si el contenido dentro del borde saliera de la superficie.

Si no se pone, su valor por omisión es: none.

Color

Se especifica como un color cualquiera.

Si no se pone, su valor por omisión es el color del texto del elemento.

Propiedades para Bordes

Estilo Detallado

border-top-width

Ancho del borde en la parte superior de la caja.

border-top-style

Estilo del borde en la parte superior de la caja.

border-top-color

Color del borde en la parte superior de la caja.

border-bottom-width

Ancho del borde en la parte inferior de la caja.

border-bottom-style

Estilo del borde en la parte inferior de la caja.

border-bottom-color

Color del borde en la parte inferior de la caja.

border-left-width

Ancho del borde en el lado izquierdo de la caja.

border-left-style

Estilo del borde en el lado izquierdo de la caja.

border-left-color

Color del borde en el lado izquierdo de la caja.

border-right-width

Ancho del borde en el lado derecho de la caja.

border-right-style

Estilo del borde en el lado derecho de la caja.

border-right-color

Color del borde en el lado derecho de la caja.

Combinando las Partes del Borde

Combina las tres partes de un borde. Las partes pueden ir en cualquier orden y 1 o 2 de los valores pueden faltar, en cuyo caso se toman los valores por omisión (medium, none y color actual).

border-top

Ancho, estilo y color del borde en la parte superior de la caja.

border-bottom

Ancho, estilo y color del borde en la parte inferior de la caja.

border-left

Ancho, estilo y color del borde en el lado izquierdo de la caja.

border-right

Ancho, estilo y color del borde en el lado derecho de la caja.

border

Ancho, estilo y color del borde único en las partes izquierda, derecha, superior e inferior de la caja.

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width">
 <title>Bordes</title>
 <style>
  h1 {
   border-top-widththin;
   border-top-stylesolid;
   border-top-colorcyan;
   border-left:
    medium dashed red;
   border-right:
    thick dotted green;
   border-bottom:
    thick double blue
  }

  nav {
   borderthick groove cyan
  }

  p {
   borderthick ridge pink
  }

  div {
   borderthick inset yellowgreen
  }

  footer {
   borderthick outset orange
  }
 </style>
</head>
<body>
 <h1>Bordes</h1>
 <nav>Groove</nav>
 <p>Ridge</p>
 <div>Inset</div>
 <footer>Outset</footer>
</body>
</html>

F. Esquinas redondas (border-radius)

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width,
       initial-scale=1.0">
 <title>border-radius</title>
 <style>
  body {
   color:yellow
  }

  h1 {
   background-colorblue;
   border-top-right-radius10px;
   border-top-left-radius5px;
   border-bottom-right-radius:
    20px;
   border-bottom-left-radius:
    2rem
  }

  div {
   background-colorroyalblue;
   padding0.5rem 1rem;
   border-radius30px
  }

  p {
   background-colorblueviolet;
   padding0.5rem 1.5rem;
   border-radius:
    10px 20px 30px 40px;
  }
 </style>
</head>
<body>
 <h1>border-radius</h1>
 <div>Esquinas</div>
 <p>Redondas</p>
</body>
</html>

G. Propiedades para tamaños

width

Ancho de un elemento. Se indica usando un número decimal, opcionalmente fraccionario, seguido de la unidad.

Solo aplica para para los elementos con display block o inline-block.

Ejemplo:

width: 100%

height

Altura de un elemento. Se indica usando un número decimal, opcionalmente fraccionario, seguido de la unidad.

Solo aplica para para los elementos con display block o inline-block.

Ejemplo:

height: 3em

box-sizing

Indica como calcular el tamaño de un componente. Aplica para las propiedades width y height.

Los valores que puede tomar esta propiedad son:

content-box

El tamaño es solo el tamaño del contenido. Cuando en se especifica esta propiedad para un elemento, este es el valor que se utiliza (valor por omisión).

border-box

El tamaño incluye el tamaño del contenido, más el espacio ocupado por los bordes y el relleno.

Ejemplo

Salida

Ábrelo en otra pestaña.

Revísalo en gilpgedit.

<!DOCTYPE html>
<html lang="es">
<head>
 <meta charset="UTF-8">
 <meta name="viewport"
   content="width=device-width,
       initial-scale=1.0">
 <title>box-sizing</title>
 <style>
  main {
   width50%;
   height15rem;
   background-colororange;
   padding-top1rem;
   padding-bottom1rem;
  }

  h1 {
   width100%;
   background-colorlightgreen;
   margin0;
   font-size1rem;
   padding1em;
   borderthick solid green;
  }

  nav {
   box-sizingcontent-box;
   width100%;
   background-colorpink;
   padding1em;
   borderthick solid red;
  }

  p {
   box-sizingcontent-box;
   width100%;
   background-colorviolet;
   margin0;
  }

  div {
   box-sizingborder-box;
   width100%;
   background-colorlightblue;
   padding1em;
   borderthick solid blue;
  }
 </style>
</head>
<body>
 <main>
  <h1>por omisión</h1>
  <nav>content-box</nav>
  <p>content-box 2</div>
  <div>border-box</div>
 </main>
</body>
</html>

H. Resumen