Junto a HTML, CSS es el lenguaje más im­po­r­ta­n­te para el diseño web. Quien quiera crear páginas web modernas no podrá pasar por alto las famosas hojas de estilo en cascada (Cascading Style Sheets). De la misma forma, contar con co­no­ci­mie­n­tos básicos en CSS resulta de gran ayuda a la hora de trabajar con editores gráficos HTML, sistemas modulares de diseño web o sistemas de gestión de co­n­te­ni­dos. Este tutorial de CSS abarca todo lo que necesitas saber, casi como un curso in­tro­du­c­to­rio a los conceptos básicos del lenguaje de hojas de estilo en cascada.

La se­pa­ra­ción del contenido y el diseño

CSS se utiliza en co­m­bi­na­ción con HTML para separar contenido y diseño. El lenguaje de marcas de hi­pe­r­te­x­to o Hypertext Markup Language (HTML) se utiliza para en­ri­que­cer un documento de texto con la in­fo­r­ma­ción necesaria para es­tru­c­tu­rar se­má­n­ti­ca­me­n­te sus elementos de texto. En otras palabras, este lenguaje de marcado permite crear la base de toda página web: el código HTML. Este describe aquellos elementos que componen una página web (p. ej., <body> o contenido, <header> o en­ca­be­za­do, <footer> o pie de página) y cómo in­te­r­pre­tar­los (p.ej., título <h1>, bloque de texto <p>, espacio <br>, enlace <a>, imagen <img>, vídeo <video>). Por sí solo, este lenguaje permite que los na­ve­ga­do­res web puedan mostrar do­cu­me­n­tos HTML como páginas web. Sin embargo, desde una pe­r­s­pe­c­ti­va actual, el resultado no es muy atractivo. Una web en HTML carece de un elemento crucial: un formato pe­r­so­na­li­za­do.

Ori­gi­na­l­me­n­te, HTML también ofrecía unas in­s­tru­c­cio­nes ru­di­me­n­ta­rias de diseño que quedaron obsoletas con la aparición de HTML5, lo que hizo que dejaran uti­li­zar­se. En su lugar se utiliza el lenguaje de hojas de estilo CSS para gestionar, por separado, los elementos de diseño y vi­sua­li­za­ción. Ahora bien ¿qué es exac­ta­me­n­te CSS?

¿Qué es CSS?

Al igual que HTML, CSS se registra por escrito. Esto se puede hacer di­re­c­ta­me­n­te en el documento HTML (en línea para cada documento o en el en­ca­be­za­do HTML). Sin embargo, por lo general, los di­se­ña­do­res web trabajan en do­cu­me­n­tos CSS in­de­pe­n­die­n­tes para dar formato a las páginas web. El resultado es un código fuente claro en el que, gracias a hojas de estilo separadas, se evitan in­s­tru­c­cio­nes re­du­n­da­n­tes de diseño. Así, cuanto más bajo sea el número de re­pe­ti­cio­nes, más liviano será el código fuente, lo que se verá reflejado en una reducción en los tiempos de carga y, por lo tanto, en un mejor re­n­di­mie­n­to. Adi­cio­na­l­me­n­te, CSS facilita el ma­n­te­ni­mie­n­to de una página web: cualquier ajuste de diseño que sea menester se realiza di­re­c­ta­me­n­te en los archivos CSS centrales, lo que evita revisar cada uno de los do­cu­me­n­tos HTML y adaptarlo por separado.   CSS es de­sa­rro­lla­do de forma continua por el World Wide Web Co­n­so­r­tium (W3C), con CSS3, se encuentra ac­tua­l­me­n­te en su tercera versión. Mientras que, desde hace ya un tiempo, las versiones CSS1 y 2 están in­te­gra­das en los na­ve­ga­do­res web más populares, las pro­pie­da­des CSS re­cie­n­te­me­n­te in­tro­du­ci­das (las llamadas pro­pe­r­ties) de la tercera versión no son so­po­r­ta­das en su totalidad. w3schools.com ofrece una visión general del soporte de pro­pie­da­des por parte de los na­ve­ga­do­res más comunes, es decir, Microsoft Internet Explorer, Mozilla Firefox, Google Chrome, Apple Safari y Opera.

Es­tru­c­tu­ra básica: la sintaxis CSS

La tarea principal de CSS es definir el diseño de una página web. Para ello, y con la ayuda de las pro­pie­da­des del lenguaje de hojas de estilo (pro­pe­r­ties), se asocian ciertos valores a los elementos HTML su­b­ya­ce­n­tes. Así, la es­tru­c­tu­ra básica de una in­s­tru­c­ción de diseño se ve de la siguiente manera:

Selector { Declaración }

El selector es una re­pre­se­n­ta­ción del elemento HTML al que se refiere la in­s­tru­c­ción de diseño. La de­cla­ra­ción se compone de la co­m­bi­na­ción entre propiedad y valor, citada a co­n­ti­nua­ción entre corchetes. Toda de­cla­ra­ción termina con un punto y coma:

Elemento HTML { Propiedad: Valor; }

De acuerdo con este esquema, para asignar un color a un título se usaría, por ejemplo, la siguiente sintaxis:

h2 { color: red; }

El selector h2 re­pre­se­n­ta a los titulares en segundo orden. La de­cla­ra­ción incluye la propiedad “color” y el valor “red” (rojo). En una página web con esta in­s­tru­c­ción de diseño, todos los segmentos <h2> en el código apa­re­ce­rán en rojo. La co­n­fi­gu­ra­ción de color también se puede definir de forma más detallada uti­li­za­n­do códigos de color he­xa­de­ci­ma­les (en­co­n­tra­rás más in­fo­r­ma­ción al respecto en el capítulo acerca de los colores en CSS).

h2 { color: #ff0000; }

Los di­se­ña­do­res web tienen la opción de asignar una única propiedad al selector o de definir extensos conjuntos de reglas que incluyen in­s­tru­c­cio­nes de­ta­lla­das de diseño. Con el afán de lograr mayor claridad, se es­ta­ble­ció un tipo de escritura en el que todas las pro­pie­da­des de un conjunto de reglas se enumeran de la siguiente manera:

Selector {
    Propiedad1: Valor;
    Propiedad2: Valor;
    Propiedad3: Valor;
}

En la práctica, un conjunto de pro­pie­da­des se vería así:

h2 { 
    color: #ff0000; 
    font-family: Helvetica, sans-serif; 
    font-size: 19px; 
    font-weight: bold;
    text-align: center; 
}

En este ejemplo, las co­m­bi­na­cio­nes propiedad-valor entre corchetes definen el color (color), la fuente (font-family), el tamaño de fuente (font-size), las ace­n­tua­cio­nes (bold) y la ali­nea­ción del texto (text-align). Más adelante en este tutorial en­co­n­tra­rás una de­s­cri­p­ción detallada de las pri­n­ci­pa­les pro­pie­da­des CSS.

Un conjunto de reglas puede es­pe­ci­fi­car varios se­le­c­to­res. En este caso se muestran separados por comas antes de la de­cla­ra­ción:

Selector1, Selector2 { Declaración }

Se­le­c­to­res CSS

CSS soporta di­fe­re­n­tes se­le­c­to­res que permiten una asi­g­na­ción pe­r­so­na­li­za­da de in­s­tru­c­cio­nes de diseño. Sin embargo, para comenzar es su­fi­cie­n­te con fa­mi­lia­ri­zar­se con los se­le­c­to­res de ID, de clases, de tipo o etiqueta y uni­ve­r­sa­les.

Tipo de selector Notación CSS De­s­cri­p­ción
Selector de tipo o etiqueta Elemento HTML (p.ej., h2) El selector de tipo co­rre­s­po­n­de al nombre del elemento al que se refiere. El formato se aplica a todos los elementos HTML del mismo tipo.
Selector de clases .ejemplo El selector de clases se dirige a todos los elementos de una clase es­pe­cí­fi­ca. Los se­le­c­to­res de clases se forman con un punto (.) y con el nombre de la clase deseada: .ejemplo. Las clases se asignan a los elementos HTML a través del atributo de clase (class="ejemplo").
Selector de ID #ejemplo Un selector de ID define a un elemento con un ide­n­ti­fi­ca­dor único. La in­te­gra­ción del código fuente GRML se realiza uti­li­za­n­do el atributo ID (id="ejemplo").
Selector universal * El selector universal asterisco (*) se dirige a todos los elementos HTML de un documento.

Para demostrar cómo se im­ple­me­n­tan los di­fe­re­n­tes tipos de se­le­c­to­res se pueden utilizar varios ejemplos. El siguiente código muestra el selector de tipo o etiqueta h2 con su de­cla­ra­ción:

h2 { 
    color: #305796; 
    font-family: Helvetica, sans-serif; 
}

El formato hace re­fe­re­n­cia a todos los elementos HTML del tipo h2 (titulares en segundo orden).

Otra forma de aplicar formato utiliza un selector de clase. Esto permite a los di­se­ña­do­res web in­te­r­pre­tar elementos HTML con las mismas in­s­tru­c­cio­nes de diseño in­de­pe­n­die­n­te­me­n­te del tipo.

.content { 
    color: #ff0000; 
    font-family: Helvetica, sans-serif; 
}

En este caso, el formato se aplica a todos los elementos HTML a los que se asignó la clase .content. Esta asi­g­na­ción se realiza siguiendo el siguiente esquema:

<p class="special-text">Texto de ejemplo</p>
Consejo

En HTML los nombres de clase se escriben sin punto (.).

Si una de las in­s­tru­c­cio­nes de diseño se refiere solo a un único elemento en el código fuente HTML, se utiliza el selector de ID. El siguiente ejemplo muestra el formato de un área de na­ve­ga­ción:

#navigation {
    font-family: Helvetica, sans-serif; 
    background-color: #8ad8d4;
    border: 2px solid #448278;
}

En el código fuente HTML, la asi­g­na­ción de formato se realiza sin la al­moha­di­lla (#):

<div id="navigation">
    <ul>
        <li><a href="index.htm">Página de inicio</a></li>
        <li><a href="impressum.htm">Aviso legal</a></li>
    </ul>
</div>

La ventaja de los se­le­c­to­res de ID es que se pueden ide­n­ti­fi­car a simple vista aquellos pasajes únicos del código fuente. Además, durante la asi­g­na­ción de estilos los se­le­c­to­res de ID tienen prioridad. En caso de que un elemento cuente con una clase y un ID co­n­tra­di­c­to­rios, predomina el selector ID. Asimismo, las clases tienen prioridad sobre los se­le­c­to­res de tipo o etiqueta.

Tanto las clases como los ide­n­ti­fi­ca­do­res pueden ser nombrados li­bre­me­n­te. Sin embargo, algo que debe co­n­si­de­rar­se es que los se­le­c­to­res CSS son sensibles a las ma­yú­s­cu­las y mi­nú­s­cu­las, in­te­r­pre­tá­n­do­las como clases distintas (por ejemplo: na­ve­ga­tion vs. Na­ve­ga­tion). Los espacios y ca­ra­c­te­res es­pe­cia­les están prohi­bi­dos, así como la diéresis.

En caso de una in­s­tru­c­ción de diseño re­la­cio­na­da con todos los elementos de HTML, se utiliza el asterisco (*):

*  { 
    font-family: Helvetica, sans-serif; 
}

Todos los elementos de texto de la página web se re­pre­se­n­ta­rán en el estilo de fuente Helvetica.

Integrar CSS en HTML

Para que un navegador pueda co­n­si­de­rar el formato CSS como parte de la es­tru­c­tu­ra de la página web, las in­s­tru­c­cio­nes de diseño deben estar vi­n­cu­la­das al código fuente HTML. Para ello, los usuarios cuentan con las si­guie­n­tes tres po­si­bi­li­da­des:

  • su in­te­gra­ción en las etiquetas HTML
  • su inclusión en el en­ca­be­za­do HTML
  • el en­la­za­mie­n­to a una hoja de estilo externa

Esta última opción es co­n­si­de­ra­da la más idónea: en la práctica las hojas de estilo se crean ge­ne­ra­l­me­n­te como archivos de texto externos y son in­te­gra­das po­s­te­rio­r­me­n­te.

Incluir la de­cla­ra­ción de CSS en las etiquetas HTML

En caso de que una de­cla­ra­ción CSS solo tenga que definir el formato de una única ubicación del texto fuente, se puede añadir di­re­c­ta­me­n­te en la etiqueta HTML del elemento co­rre­s­po­n­die­n­te con la ayuda del atributo style. Aquí se habla entonces de “Inline Style”.

<h2 style="color: red;">Subtítulo</h2>

Esto implica varias ventajas: se trata de una asi­g­na­ción de alta prioridad, no hay que crear una hoja de estilo separada y se elimina el selector. Solo cuando ha de uti­li­zar­se un conjunto de reglas, este tipo de formato se vuelve confuso y re­du­n­da­n­te.

<h2 style="color: #ff0000; font-family: 'Helvetica Neue', sans-serif; font-size: 19px; font-weight: bold; text-align: center;">Subtítulo</h2>

Es por esto que esta in­te­gra­ción de las in­s­tru­c­cio­nes de diseño se re­co­mie­n­da (de ser necesario) solo para páginas web pequeñas con un formato mínimo.

Incluir CSS en el en­ca­be­za­do HTML

Las de­cla­ra­cio­nes CSS en las etiquetas HTML resultan in­e­fi­cie­n­tes cuando una única in­s­tru­c­ción de diseño debe aplicarse varias veces para el mismo elemento (p.ej., para todos los h2 de la página web) dentro de un documento HTML. En su lugar, tiene sentido definir dichas in­s­tru­c­cio­nes usando el elemento style ya en la cabecera del documento HTML:

<!DOCTYPE html>
    <html lang="es">
        <head>
            <style>
                h2 {
                    color: #ff0000; 
                    font-family: 'Helvetica Neue', sans-serif; 
                    font-size: 19px; 
                    font-weight: bold;
                    text-align: center; 
                }
            </style>
        </head>
        <body>
            <h2>Subtítulo1</h2>
            […]
            <h2>Subtítulo2</h2>
            […]
        </body>
</html>

El conjunto de reglas dentro del elemento style se aplica au­to­má­ti­ca­me­n­te a todos los elementos h2 po­s­te­rio­res. Ahora bien ¿qué sucede si el elemento h2 también debe uti­li­zar­se con las mismas in­s­tru­c­cio­nes de diseño en otras páginas del mismo proyecto? En este caso, el ad­mi­ni­s­tra­dor de la página web tendría que integrar las in­s­tru­c­cio­nes de diseño en el bloque de código de cada página HTML e im­ple­me­n­tar in­di­vi­dua­l­me­n­te los cambios. Con un archivo central CSS se puede evitar ele­ga­n­te­me­n­te este problema.

Enlazar a una hoja de estilo externa

Si las in­s­tru­c­cio­nes de diseño se definen en una hoja de estilo separada, hay que in­te­grar­la en el documento HTML su­b­ya­ce­n­te. Esto se consigue uti­li­za­n­do el elemento HTML <link> que, al igual que style, es un hijo del elemento head.

<link rel="stylesheet" href="ejemplo.css">

El elemento link incluye los atributos obli­ga­to­rios rel y href y, op­cio­na­l­me­n­te, puede co­m­ple­me­n­tar­se con los atributos type y media.

Atributos del elemento link De­s­cri­p­ción
rel El atributo rel define el tipo de relación del elemento. El valor st­y­le­sheet indica que se debe integrar una hoja de estilo.
href El atributo href hace re­fe­re­n­cia al archivo que debe ser integrado como hoja de estilo.
type El atributo opcional type describe el tipo de archivo que se va a integrar. En el caso de CSS, “text/css”.
media Con el atributo media los ad­mi­ni­s­tra­do­res web pueden definir que la hoja de estilo a la que se enlaza solo se utilice en un medio de salida (di­s­po­si­ti­vo) de­te­r­mi­na­do. Esto hace posible definir varias hojas de estilo para di­fe­re­n­tes te­r­mi­na­les. Los posibles valores son, por ejemplo, screen o print.

In­di­ca­cio­nes de color en CSS

Como se mencionó en el capítulo in­tro­du­c­to­rio, las asi­g­na­cio­nes de color en CSS se pueden hacer a través de las palabras en inglés para los colores (p. ej., red, blue, green). Sin embargo, en la práctica estas in­s­tru­c­cio­nes de diseño no suelen ser muy comunes, siendo el modelo RGB el más utilizado. Esto pro­po­r­cio­na un número de gra­da­cio­nes si­g­ni­fi­ca­ti­va­me­n­te mayor y, por lo tanto, permite a los gestores de páginas web hacer los ajustes de color pe­r­ti­ne­n­tes. Los códigos co­rre­s­po­n­die­n­tes se pueden conseguir a través de un selector de color. Google, por ejemplo, ofrece este modelo en forma de Quick Answer (respuesta rápida).

El modelo RGB

En el modelo RGB los colores se definen con precisión basándose en su pro­po­r­ción de los colores primarios rojo (R), verde (G) y azul (B).

En el modelo RGB los co­m­po­ne­n­tes de color se definen por valores decimales entre 0 y 255. Mientras que un valor de 0 significa que un color no cuenta con ningún co­m­po­ne­n­te de dicho color primario, el valor de 255 re­pre­se­n­ta una pro­po­r­ción máxima.

La notación de los valores de color en RGB se co­rre­s­po­n­de con el siguiente esquema (los espacios no son obli­ga­to­rios):

rgb(Valor rojo, Valor verde, Valor azul)

De esta manera, el modelo RGB permite definir alrededor de 16,7 millones de colores di­fe­re­n­tes para el diseño de tu página web. La siguiente tabla muestra los valores RGB para el estándar negro, blanco, rojo, azul, verde, amarillo, magenta, cian, morado y naranja:

Desde CSS3 se puede añadir un cuarto valor al código RGB, el llamado canal alfa (a). Este indica la opacidad del color y se define por valores entre 0 y 1 (p.ej., 0.8).

rgba(Valor rojo, Valor verde, Valor azul, Opacidad)

Por ejemplo, el color azul que se muestra arriba se obtiene con los si­guie­n­tes colores y una tra­n­s­pa­re­n­cia del 50 por ciento.

rgba(0, 0, 255, 0.5)

La siguiente imagen muestra un área de color azul tra­n­s­pa­re­n­te que se superpone a una su­pe­r­fi­cie de color rojo.

Como al­te­r­na­ti­va a la notación decimal, los valores he­xa­de­ci­ma­les se han co­n­so­li­da­do en Internet para dar in­di­ca­cio­nes de color.

Códigos he­xa­de­ci­ma­les de color

Los códigos he­xa­de­ci­ma­les definen los valores de color a partir de un sistema de nu­me­ra­ción por posición tomando el 16 como base (sistema he­xa­de­ci­mal, Hex). A di­fe­re­n­cia del sistema decimal, aquí no se utilizan 10 sino 16 cifras con la siguiente secuencia: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, a, b, c, d, e, f.

El esquema básico de un código de colores he­xa­de­ci­mal se compone de una etiqueta de al­moha­di­lla (#) seguida de seis números he­xa­de­ci­ma­les, cada uno re­pre­se­n­ta­n­do un color del espacio de colores RGB (rojo, verde, azul):

#RRGGBB

La sa­tu­ra­ción de los co­m­po­ne­n­tes de color se indica por el valor numérico de las cifras he­xa­de­ci­ma­les. En este caso 00 re­pre­se­n­ta un valor que carece de color y FF (decimal: 255) la mayor sa­tu­ra­ción. Cada color se basa en una mezcla aditiva de los colores primarios. Para los ejemplos de color en RGB pre­se­n­ta­dos an­te­rio­r­me­n­te re­su­l­ta­rían los si­guie­n­tes valores Hex:

Además de RGB, CSS también es co­m­pa­ti­ble con el modelo de color HSL. En el futuro también será posible que los di­se­ña­do­res web realicen ajustes de color a través de CMYK.

Las pri­n­ci­pa­les pro­pie­da­des de CSS (pro­pe­r­ties)

CSS pone a di­s­po­si­ción de los usuarios unas 420 pro­pie­da­des, con las que pueden definirse las in­s­tru­c­cio­nes de diseño para los elementos HTML. Cada propiedad acepta uno de los conjuntos de valores es­ta­ble­ci­dos en la es­pe­ci­fi­ca­ción. Para mayor claridad, las pro­pie­da­des CSS se dividen en áreas de apli­ca­ción. De gran im­po­r­ta­n­cia son el tipo de letra, los ajustes de color, el formato de texto y el diseño, uti­li­za­n­do el modelo de cajas CSS y el po­si­cio­na­mie­n­to de las cajas CSS. Nuestro curso intensivo para aprender CSS se centra en las pro­pie­da­des más im­po­r­ta­n­tes a la hora de comenzar a utilizar las Cascading Sytle Sheets y demuestra la creación de conjuntos de reglas CSS por medio de ejemplos de código prácticos. Para obtener una lista completa de todas las pro­pie­da­des de CSS, visita la página web de W3C.

Tipo de letra

Una de las ca­ra­c­te­rí­s­ti­cas clave de todo proyecto online es su ti­po­gra­fía. CSS incluye di­fe­re­n­tes opciones para dar formato a los elementos escritos de una página HTML. Las pro­pie­da­des más im­po­r­ta­n­tes, en lo que respecta al formato de la fuente, son:

  • font-family
  • font-style
  • font-variant
  • font-size
  • line-height
  • font-weight

font-family

En caso de que se quiera definir una fuente de­te­r­mi­na­da (font) para los elementos de texto de una página web, se utiliza la propiedad CSS font-family. Esto permite crear las llamadas pilas de fuentes (font stack), que no son otra cosa que una lista prio­ri­za­da de las fuentes apro­pia­das. Las pilas de fuentes están es­tru­c­tu­ra­das de tal forma que primero se nombra la fuente deseada seguida de una lista con al­te­r­na­ti­vas de vi­sua­li­za­ción:

.content {
    font-family: Georgia, Garamond, serif;
}

El ejemplo muestra una in­s­tru­c­ción de diseño para la clase .content en el archivo CSS. Este será abordado en el documento HTML por el atributo class y el nombre de clase content:

<p class=“content”>Example text</p>

Georgia se define como fuente prio­ri­ta­ria y Garamond como fuente al­te­r­na­ti­va. Con esto, se está indicando al navegador web que, en caso de que la fuente Georgia no esté instalada en el sistema, tendrá que presentar el texto usando Garamond.

Ahora bien ¿qué sucede si ninguna de las al­te­r­na­ti­vas me­n­cio­na­das an­te­rio­r­me­n­te está di­s­po­ni­ble? En tal caso, es aco­n­se­ja­ble definir una familia genérica de fuentes como mecanismo de reserva. Tanto Georgia como Garamond pe­r­te­ne­cen a la familia serif. Si esta última se añade como última al­te­r­na­ti­va en la de­cla­ra­ción, el navegador web re­pre­se­n­ta­rá el texto en alguna de las fuentes di­s­po­ni­bles de dicha familia, como la ge­ne­ra­li­za­da Times New Roman. De esta forma se puede asegurar que la intención del autor de la hoja de estilo se mantiene al menos en lo básico.

Otras familias genéricas son sans-serif o sin serifa (Arial, Trbuchet, Verdana) y monospace (Courier, Courier New, Andale Mono). Las fuentes cuyos nombres constan de varias palabras se colocan entre comillas simples o dobles en la de­cla­ra­ción CSS.

.content {
    font-family: 'Trebuchet MS', 'Liberation Sans', sans-serif;
}
Consejo

Las familias genéricas son palabras clave que no pueden ser escritas entre comillas.

font-style

La propiedad CSS font-style se refiere al estilo de letra de un párrafo de texto y ofrece la opo­r­tu­ni­dad de definir in­s­tru­c­cio­nes de diseño para el grado de in­cli­na­ción de la fuente.

Valores para la in­cli­na­ción del texto De­s­cri­p­ción
normal estilo de letra normal (por defecto)
italic letra cursiva
oblique fuente inclinada

El siguiente ejemplo muestra una in­s­tru­c­ción de diseño para el estilo de fuente cursiva:

.special-content {
    font-family: Arial; 
    font-style: italic;
}
<p class="special-content ">Texto de ejemplo</p>

Por lo general, los valores italic y oblique suelen re­pre­se­n­tar­se de la misma forma en el navegador web. El valor oblique no suele uti­li­zar­se mucho y su di­fe­re­n­cia con el valor italic reside en que esta inclina cualquier fuente incluso si esta no tiene una variante cursiva.

font-variant

La propiedad CSS font-variant se utiliza para definir las variantes de una fuente.

Valor de la variante De­s­cri­p­ción
normal variante de tipo normal (por defecto)
small-caps ve­r­sa­li­tas para letras pequeñas
all-small-caps ve­r­sa­li­tas para letras grandes y pequeñas

Los si­guie­n­tes ejemplos muestran las variantes de fuente small-caps y all-small-caps:

.content {
    font-family: Arial;
    font-variant: small-caps;
}
<p class="content ">Texto de ejemplo</p>

El valor small-caps indica al navegador que debe mostrar todas las letras pequeñas en versales (es decir, la mayúscula debe ser de la misma altura que las letras mi­nú­s­cu­las).

.content {
    font-family: Arial;
    font-variant: all-small-caps;
}
<p class="content;">Texto de ejemplo</p>

El valor all-small-caps indica al navegador que muestre todas las letras como ve­r­sa­li­tas.

font-size

La propiedad font-size define el tamaño de vi­sua­li­za­ción de los elementos de texto. Esto puede hacerse con valores absolutos o en relación con el entorno de los elementos. El dato a in­tro­du­cir es la altura de los ca­ra­c­te­res, es decir, el tamaño de la fuente. Para ello, los di­se­ña­do­res web tienen a su di­s­po­si­ción di­fe­re­n­tes co­n­ve­n­cio­nes y unidades.

Las unidades absolutas están basadas en las me­di­cio­nes de longitud físicas. Sin embargo, en la pantalla, los na­ve­ga­do­res co­n­vie­r­ten estas unidades en píxeles (px) y se remiten a una re­so­lu­ción base de 96 dpi. Así, por ejemplo, en un moderno ordenador portátil o en un sma­r­t­pho­ne, un ce­n­tí­me­tro parecerá mucho más pequeño de lo que realmente es. A excepción de los píxeles, no existe otra unidad absoluta que juegue un papel relevante para el diseño web y tienen valor es­pe­cia­l­me­n­te a la hora de imprimir, cuando el navegador emula los tamaños reales.

Unidades absolutas:

Unidad Notación en CSS De­s­cri­p­ción
Píxel px La unidad px fue diseñada es­pe­cí­fi­ca­me­n­te para CSS y co­rre­s­po­n­de al tamaño de un elemento en píxeles. En la pantalla, los píxeles se vi­sua­li­zan con relación a la densidad de puntos (p.ej., puntos por pulgada o dots per inch, dpi). Se trata de una unidad absoluta. Hoy en día, 1 px no re­pre­se­n­ta ne­ce­sa­ria­me­n­te un píxel de pantalla. Para evitar que los elementos del texto se vean muy pequeños, para las pantallas de alta re­so­lu­ción, los na­ve­ga­do­res trabajan con una es­ca­la­bi­li­dad en px. Así, un píxel CSS es re­pre­se­n­ta­do por varios píxeles de pantalla de­pe­n­die­n­do de la re­so­lu­ción de la misma. La medida utilizada para la escala es: 1 píxel CSS = 1/96 pulgadas. El usuario puede cambiar la asi­g­na­ción de la unidad a píxeles de di­s­po­si­ti­vo haciendo zoom en el navegador.
Ce­n­tí­me­tros cm Tamaño en ce­n­tí­me­tros
Mi­lí­me­tros mm Tamaño en mi­lí­me­tros
Pulgadas in Tamaño en pulgadas (1 in = 2,54 cm)
Puntos pt Tamaño en puntos (1 pt equivale a 1/72 pulgadas)
Pica pc Tamaño en pica (1 pica son 12 puntos)

Las unidades relativas hacen re­fe­re­n­cia al tamaño de la fuente en relación a un tamaño de fuente ya es­pe­ci­fi­ca­do. Los elementos HTML heredan su tamaño de fuente de sus elementos padres. Las re­fe­re­n­cias para un tamaño relativo de fuente también puede usar como guía técnica el tamaño de la pantalla del terminal o un valor por defecto fijado por el navegador web.

Unidades relativas:

Unidad Notación CSS De­s­cri­p­ción
Po­r­ce­n­ta­je % La unidad de medida % es­pe­ci­fi­ca el tamaño de fuente en pro­po­r­ción po­r­ce­n­tual al tamaño de la fuente heredada. En un tamaño heredado de 16 px, una font-size de 75 % equivale a un tamaño de fuente de 12 px.
em (altura de la fuente) em La unidad em también está re­la­cio­na­da con el elemento padre. En este caso, 1 em re­pre­se­n­ta el 100 % de la fuente heredada. Si el tamaño de una fuente es de 20 px, un valor de 0.8 em será el 80 %, es decir, 16 px. Si no se define un tamaño de fuente para el elemento padre, se utilizará el tamaño de fuente pre­de­te­r­mi­na­do para el di­s­po­si­ti­vo.
Altura x ex El valor de re­fe­re­n­cia para la unidad de medida ex es la altura de la letra “x” minúscula de la fuente elegida. Si no se define la altura x de una fuente, se considera que 1 ex = 0.5 em.
Root em rem La unidad de medida rem hace re­fe­re­n­cia al elemento root de un documento (p.ej., el elemento HTML). 1 rem co­rre­s­po­n­de al 100 % del tamaño de la fuente es­ta­ble­ci­da para el elemento raíz.
Ancho del viewport vw La unidad vw se refiere al ancho de la pantalla (viewport) del di­s­po­si­ti­vo de salida, donde 1 vw = 1 % del ancho del viewport.
Altura del viewport vh La unidad vh está orientada a la altura del área de vi­sua­li­za­ción (pantalla) de un di­s­po­si­ti­vo, donde 1 vh = 1 % de la altura del viewport.

Adi­cio­na­l­me­n­te, el tamaño de la fuente se puede definir sobre la base de palabras clave relativas o absolutas. Como valor guía se utiliza el tamaño de fuente estándar del navegador, es decir, font-size:medium).

Palabras clave absolutas:

Absoluta De­s­cri­p­ción Ejemplo
xx-small diminuto 9 px
x-small muy pequeño 10 px
small pequeño 13 px
medium medio (tamaño de fuente pre­de­te­r­mi­na­do del navegador) 16 px
large grande 19 px
x-large muy grande 24 px
xx-large enorme 32 px

Palabras clave relativas:

Relativa De­s­cri­p­ción
smaller El elemento actual se muestra más pequeño que su elemento padre.
larger El elemento actual se muestra más grande que su elemento padre.

Para asegurar una re­pre­se­n­ta­ción óptima del tamaño de fuente en di­fe­re­n­tes di­s­po­si­ti­vos se re­co­mie­n­da utilizar unidades relativas como em o %. La opción preferida por la gran mayoría de di­se­ña­do­res web en caso de que la entrada tenga que ser absoluta, es px. El código CSS del esquema básico del tamaño de fuente se verá entonces de la siguiente manera:

.content {
    font-size: 19px;
}
<h2 class="content">Texto de ejemplo</h2>

La siguiente imagen muestra tres tamaños de fuente di­fe­re­n­tes: 16 px, 19 px y 21 px:

line-height

La propiedad CSS line-height se utiliza para definir la altura del renglón en un párrafo de texto y se puede es­pe­ci­fi­car en números o en la unidad co­rre­s­po­n­die­n­te. Para ello se usan las mismas unidades que para el font-size del texto co­rre­s­po­n­die­n­te. Otros de los posibles valores son normal (por defecto) e inherit (heredado del elemento padre). Un valor line-height de 1.5 co­rre­s­po­n­de, por ejemplo, a una altura del 150 por ciento de la re­s­pe­c­ti­va fuente o a 1.5 em.

.content {
    line-height: 1.5;
}
<p class="content">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>

La siguiente imagen muestra bloques de texto con una altura de renglón de 100, 120 y 150 por ciento:

font-weight

La propiedad CSS font-weight define el grosor de la línea de un elemento de texto. Los di­se­ña­do­res web la utilizan para resaltar de­te­r­mi­na­das partes del texto. Los valores pueden ser absolutos o relativos a sus elementos padre.

Valores absolutos para la propiedad De­s­cri­p­ción
100 extrafina
200 muy delgada
300 delgada
400 normal (por defecto)
500 medio
600 medio gruesa
700 gruesa
800 muy gruesa
900 ex­tra­grue­sa
normal anchura del trazo normal (co­rre­s­po­n­de al valor de 400)
bold negrita (se co­rre­s­po­n­de con el valor 700)

Los valores absolutos de la propiedad font-weight se muestran de manera diferente de­pe­n­die­n­do del tipo de letra. El problema es que se requieren di­fe­re­n­tes estilos de letra para di­fe­re­n­tes grosores de línea. No­r­ma­l­me­n­te, las fuentes solo tienen a di­s­po­si­ción normal, cursiva, negrita y cursiva negrita. Cuando solo se definen dos grosores, el navegador toma para los valores 100, 200, 300, 400 y 500 los valores más finos y para valores más altos la variante más gruesa. Re­le­va­n­tes son las unidades numéricas úni­ca­me­n­te para fuentes web. Por regla general es su­fi­cie­n­te si se definen dos grosores di­fe­re­n­tes: normal y bold.

.content {
    font-weight: normal;
}
.content {
    font-weight: bold;
}

Los valores relativos de la propiedad CSS font-weight definen el ancho de la línea de un elemento de texto con respecto a la anchura de la línea heredada del elemento padre.

Valores relativos para la propiedad De­s­cri­p­ción
bolder más gruesa que el elemento padre
lighter más delgada que el elemento padre

Formato de texto

Además del formato de fuente, también se dispone de diversas pro­pie­da­des CSS para el formato del texto. Esto hace que sea posible realizar ajustes en la ali­nea­ción del texto y en el espaciado entre ca­ra­c­te­res y palabras o añadir elementos de­co­ra­ti­vos al texto. Algunas de las pro­pie­da­des:

  • text-align
  • hyphens
  • word-spacing
  • letter-spacing
  • text-indent
  • text-de­co­ra­tion
  • text-transform

text-align

La propiedad CSS text-align se encarga del centrado del texto y de los elementos en línea, es decir, aquellos elementos incluidos en el flujo del texto, como imágenes o botones. Los valores ha­bi­tua­les son left (ju­s­ti­fi­ca­do a la izquierda), right (ju­s­ti­fi­ca­do a la derecha), center (centrado), justify (ju­s­ti­fi­ca­do) o inherit (elemento heredado). El siguiente código centra el texto de ejemplo:

.content {
    text-align: center;
}
<p class="content">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>

La siguiente imagen re­pre­se­n­ta otras opciones de ali­nea­ción de texto:

Otros valores para la propiedad text-align definen la ali­nea­ción del texto en relación con la dirección del texto (direction).

Valores para la ali­nea­ción relativa De­s­cri­p­ción
start El texto se alinea al lado donde comienza. En la dirección de izquierda a derecha { direction: ltr; } el valor start hace re­fe­re­n­cia al valor left. En una ali­nea­ción de derecha a izquierda { direction: rtl; } el valor start re­pre­se­n­ta al valor right.
end El texto se alinea al lado donde termina. En la dirección de izquierda a derecha { direction: ltr; } el valor end hace re­fe­re­n­cia al valor right. En una dirección de derecha a izquierda { direction: rtl; } el valor end se refiere al valor left.

El valor start es un valor estándar.

La mayoría de los na­ve­ga­do­res alinea au­to­má­ti­ca­me­n­te la última línea del párrafo a la izquierda. Si el deseo es hacerlo de otra forma, puede fo­r­ma­tear­se de forma in­de­pe­n­die­n­te con la propiedad CSS text-align-last. Los valores posibles para esta función son los mismos que para la propiedad text-align.

hyphens

La propiedad hyphens CSS3 ofrece la opo­r­tu­ni­dad de co­n­fi­gu­rar una se­pa­ra­ción de sílabas au­to­má­ti­ca. El lenguaje de hojas de estilo pro­po­r­cio­na los si­guie­n­tes valores para la propiedad hyphens:

Valores para la propiedad De­s­cri­p­ción
manual Se­pa­ra­ción manual de sílabas: en la se­pa­ra­ción silábica a final de línea se tienen en cuenta los guiones blandos &shy o &#173 (valor por defecto para la propiedad hyphens).
none Ninguna se­pa­ra­ción de sílabas: no se tienen en cuenta los guiones blandos (&shy o &#173). La nueva línea se consigue úni­ca­me­n­te con el espaciado.
auto Se­pa­ra­ción au­to­má­ti­ca de sílabas: la se­pa­ra­ción de palabras se lleva a cabo de acuerdo con las reglas del idioma, definidas con el atributo HTTP lang.
inherit Los ajustes se co­rre­s­po­n­den con el elemento padre.
Consejo

La propiedad CSS hyphens aún no es co­m­pa­ti­ble con todos los na­ve­ga­do­res.

word-spacing

La propiedad CSS word-spacing controla el espacio entre las palabras dentro de un elemento de texto. Los ad­mi­ni­s­tra­do­res web tienen la po­si­bi­li­dad de definir el espacio entre las palabras según su tamaño. Para ello se utilizan las mismas unidades de font-size, a excepción del po­r­ce­n­ta­je. Otros posibles valores para la propiedad word-spacing son normal (por defecto) e inherit (heredado del elemento padre).

El siguiente ejemplo de código define una distancia entre palabras de 2 em. Este se añade al espaciado por defecto entre palabras (el valor estándar sería word-spacing: 0;).

.content {
    word-spacing: 2em;
}
<p class="content">Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>

letter-spacing

En caso de que no se quiera editar la distancia entre palabras sino el espaciado entre las letras, se utilizará entonces la propiedad CSS letter-spacing. En este caso también se puede optar por di­fe­re­n­tes es­pe­ci­fi­ca­cio­nes de tamaño, excluida la po­r­ce­n­tual, así como por los valores normal e inherit.

El siguiente ejemplo de código muestra un apartado de texto en el que una de las palabras resalta con un espaciado entre letras de 1 em. La clase special-content se otorga a través de un elemento span.

.special-content {
    letter-spacing: 1em;
}
<p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna <span class="special-content">aliquyam</span> erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.</p>

text-indent

Con la propiedad CSS text-indent tienes la po­si­bi­li­dad de definir las sangrías solo para la primera línea de un párrafo. Los posibles valores son positive y negative, así como las cifras po­r­ce­n­tua­les del párrafo co­rre­s­po­n­die­n­te en relación a su anchura.

El siguiente fragmento de código define una sangría del 5 por ciento para el primer renglón:

.content {
    text-indent: 5%;
}
<p class="content"> Etiam rhoncus. Maecenas tempus, tellus eget condimentum rhoncus, sem quam semper libero, sit amet adipiscing sem neque sed ipsum. Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem.</p>

Para definir apartados dentro de un párrafo es posible añadir un valor negativo a la propiedad text-indent.

text-de­co­ra­tion

La propiedad CSS text-de­co­ra­tion permite añadir un di­s­ti­n­ti­vo, como un subrayado, a de­te­r­mi­na­dos elementos de texto. Los posibles valores son:

Valores para la propiedad text-de­co­ra­tion De­s­cri­p­ción
none Texto sin de­co­ra­ción.
underline Cada renglón del texto se­le­c­cio­na­do será subrayado.
overline Se colocará una línea sobre cada elemento de texto.
line-through Cada renglón del párrafo será tachado con una línea.
inherit El decorado del texto se co­rre­s­po­n­de con el del elemento padre.

El siguiente ejemplo define el subrayado para grupos de palabras se­le­c­cio­na­dos dentro de una parte del texto. La clase content-underline se asigna en HTML mediante elementos span.

.content-underline {
    text-decoration: underline;
}
<p>Nullam quis ante. Etiam sit amet orci eget eros <span class="content-underline">faucibus tincidunt</span>. Duis leo. Sed <span class="content-underline">fringilla mauris sit</span> amet nibh. Donec sodales sagittis magna.</p>

text-transform

La propiedad text-transform permite tra­n­s­fo­r­mar el texto con CSS. Es así como algunas áreas de texto se pueden vi­sua­li­zar en ma­yú­s­cu­las o mi­nú­s­cu­las sin tener que retocar el texto original. Esta propiedad facilita las si­guie­n­tes tra­n­s­fo­r­ma­cio­nes:

Valores para la propiedad text-transform De­s­cri­p­ción
ca­pi­ta­li­ze La primera letra de cada palabra se muestra como una letra más grande.
uppercase Toda la selección de texto se muestra en letras grandes.
lowercase Toda la selección de texto se muestra en letras pequeñas.
none No tiene lugar ninguna tra­n­s­fo­r­ma­ción.
inherit La tra­n­s­fo­r­ma­ción es heredada de los elementos padres.

Si la primera letra de una sección se muestra en ma­yú­s­cu­las in­de­pe­n­die­n­te­me­n­te del texto original, se ofrecen los si­guie­n­tes formatos.

.content {
    text-transform: capitalize;
}
<p class="content">Aenean vulputate eleifend tellus. Aenean leo ligula, porttitor eu, consequat vitae, eleifend ac, enim.</p>

La siguiente gráfica muestra una co­m­pa­ra­ción entre distintos tipos de tra­n­s­fo­r­ma­ción con CSS:

Tipo de letra y colores de fondo

Para la elección del color de la fuente y del fondo los di­se­ña­do­res se basan en los códigos decimales o he­xa­de­ci­ma­les an­te­rio­r­me­n­te me­n­cio­na­dos. Para ello suelen utilizar las pro­pie­da­des CSS color y ba­c­k­grou­nd-color. Con la opción ba­c­k­grou­nd-image es posible, además, integrar imágenes de fondo.

color

La propiedad CSS color se utiliza para asignar color a una fuente y se hace co­mú­n­me­n­te en valores RGB, códigos he­xa­de­ci­ma­les o entradas HSL. El valor tra­n­s­pa­re­nt permite hacer invisible un de­te­r­mi­na­do elemento. De acuerdo a las re­co­me­n­da­cio­nes del W3C, tra­n­s­pa­re­nt equivale al valor rgba(0,0,0,0) (negro tra­n­s­pa­re­n­te). El siguiente ejemplo de código muestra el formato de color uti­li­za­n­do el código he­xa­de­ci­mal:

.content {
    font-family: Arial;
    font-size: 5em;
    color: #d82451;
}
<p class="content">Texto de ejemplo</p>

ba­c­k­grou­nd-color

La propiedad CSS ba­c­k­grou­nd-color se utiliza cuando se quiere asignar un color de fondo a un elemento. Los posibles valores son los mismos que para la propiedad color.

El ejemplo de código a co­n­ti­nua­ción muestra un texto con un color de fondo diferente:

.content {
    font-family: Arial;
    font-size: 5em;
    color: #d82451;
    background-color: #24d8ab;
}
<p class="content">Beispieltext</p>

Esta in­s­tru­c­ción indica al navegador que todos los elementos de la clase content deben ser re­pre­se­n­ta­dos en rojo pardo (#d82451) con un fondo azul turquesa (#24d8ab).

ba­c­k­grou­nd-image

Como al­te­r­na­ti­va a un color de fondo, también es posible utilizar una imagen de fondo para un elemento. Para ello, los di­se­ña­do­res web utilizan la propiedad ba­c­k­grou­nd-image, que contiene la ruta de acceso a la imagen de la siguiente forma:

.content {
    background-image: 
        url (Ruta de acceso al archivo de la imagen);
}

En lugar de ba­c­k­grou­nd-image o ba­c­k­grou­nd-color, también puedes utilizar la forma corta ba­c­k­grou­nd.

Adi­cio­na­l­me­n­te, CSS3 ofrece la po­si­bi­li­dad de definir gra­die­n­tes como fondos. Otros posibles valores son las funciones linear-gradient(), radial-gradient(), repeating-linear-gradient() y repeating-radial-gradient().

Gra­die­n­tes CSS De­s­cri­p­ción
linear-gradient() La función linear-gradient() crea un gradiente lineal.
radial-gradient() La función radial-gradient() crea un gradiente radial.
repeating-linear-gradient() La función repeating-linear-gradient() genera un gradiente lineal re­pe­ti­ti­vo.
repeating-radial-gradient() La función repeating-radial-gradient() crea un gradiente radial re­pe­ti­ti­vo.

Si quieres conocer más in­fo­r­ma­ción sobre los gra­die­n­tes, puedes visitar la página web del W3C. En este tutorial CSS nos co­n­ce­n­tra­mos en la función linear-gradient(). Para lograr que un elemento tenga un gradiente lineal se utiliza la función linear-gradient() como valor para la propiedad ba­c­k­grou­nd. Este espera al menos contar con dos entradas de color como ar­gu­me­n­tos. El diseñador web es quien decide la notación en la que se definirán los valores de color. Para hacerlo más evidente, usaremos los nombres de los colores en nuestro siguiente ejemplo:

.content {
    width: 400px;  
    height: 400px;  
    background: linear-gradient( green, yellow );
}

Por defecto, un navegador web re­pre­se­n­ta el linear-gradient( green, yellow ) como gradiente vertical con pro­po­r­cio­nes iguales de verde y amarillo:

Op­cio­na­l­me­n­te, los di­se­ña­do­res web tienen la opción de de­te­r­mi­nar la dirección del gradiente y su posición de forma in­di­vi­dual. La dirección se define como medida angular o es­pe­ci­fi­ca­n­do un borde (to top, to bottom, to left, to right) o una esquina (to right top, to right bottom, to left bottom, to left top).

.border {
    width: 400px;
    height: 400px;
    background: linear-gradient( to left top , green, yellow );
}

Una medida estándar para el gradiente es el valor de­te­r­mi­na­do (to bottom) en el sentido de las ma­ne­ci­llas del reloj. Algunas de las posibles unidades son deg (grado), grad (hace re­fe­re­n­cia a la medida de anchura angular gon y no a los grados) y rad (radiantes). Así, se aplica lo siguiente:

to bottom = 180deg = 200grad = 3.1416rad

Los di­se­ña­do­res web utilizan la llamada in­s­tru­c­ción color-stop para de­te­r­mi­nar la posición de un gradiente. Por lo general, estos se indican en el eje del gradiente con un valor entre 0 y 100 por ciento. Las po­si­cio­nes por defecto de un gradiente con dos colores son 0 por ciento y 100 por ciento. El área entre estos la calcula el navegador como un degradado de color y la presenta en matices.

Los color-stops permiten que el eje de degradado del gradiente comience o termine en cua­l­quie­ra que sea la posición elegida. El siguiente gráfico compara dos gra­die­n­tes con di­fe­re­n­tes in­s­tru­c­cio­nes de Color-Stop:

ba­c­k­grou­nd: linear-gradient( 90deg, red 0%, yellow 100% );

ba­c­k­grou­nd: linear-gradient( 90deg, red 25%, yellow 75% );

El primer ejemplo muestra un gradiente de 0 a 100 por ciento. En el segundo ejemplo, el degradado comienza sobre el 25 por ciento y termina en el 75 por ciento. Los gra­die­n­tes CSS permiten combinar el número de colores que elija el usuario y, si se quiere, también niveles de tra­n­s­pa­re­n­cia.

Bordes

CSS también permite añadir bordes a los elementos HTML. Esto se re­co­mie­n­da, sobre todo, para los llamados block level elements (elementos en bloque), tales como títulos (h1-6), párrafos (p), elementos div o tablas (table), que se en­cue­n­tran dentro del elemento body. Sin formato adicional, estos bloques de contenido se extienden sobre la anchura di­s­po­ni­ble y se so­bre­po­nen unos ante otros. Algunos elementos en bloque como <p> o <h1> ya cuentan con un marco pree­s­ta­ble­ci­do. 

En este punto, cabe resaltar que los block level elements no se deben confundir con los llamados inline elements como, por ejemplo, <b>, <i>, <a> o <span>. Los elementos en línea solo están presentes dentro de los elementos en bloque. La anchura de un elemento en línea está de­te­r­mi­na­da ex­clu­si­va­me­n­te por su propio contenido.

Para enmarcar un elemento en bloque completo o delimitar un elemento en línea, se utiliza la propiedad borders. Al­te­r­na­ti­va­me­n­te, también es posible es­pe­ci­fi­car el diseño del marco para cada uno de los lados de un elemento in­di­vi­dual.

Pro­pie­da­des para bordes De­s­cri­p­ción
border Define las pro­pie­da­des de borde para todos los lados del elemento.
border-top Define las ca­ra­c­te­rí­s­ti­cas del borde superior.
border-right Define las ca­ra­c­te­rí­s­ti­cas del borde derecho.
border-bottom Define las ca­ra­c­te­rí­s­ti­cas del borde inferior.
border-left Define las ca­ra­c­te­rí­s­ti­cas del borde izquierdo.

Tanto la propiedad border como las pro­pie­da­des para los lados del marco se pueden es­pe­ci­fi­car en términos de tipo (border-style), anchura (border-width) y color (border-color). Los valores co­rre­s­po­n­die­n­tes se escriben separados por espacios según el esquema, justo después de la propiedad:

.content {
    border: style width color;
}
.content {
    border: solid 4px #ff0000;
}

Además, la propiedad border-radius ofrece la po­si­bi­li­dad de redondear los bordes del marco.

Tipo de borde

Al elegir un tipo de borde, estarás de­fi­nie­n­do el marco de­co­ra­ti­vo para dicho elemento en bloque o en línea. Algunos tipos de borde solo son válidos cuando se se­le­c­cio­na la anchura adecuada para el marco.

Posibles valores para el tipo de borde De­s­cri­p­ción
none Sin marco
hidden No muestra ningún borde y lo suprime incluso en las celdas de las tablas
dotted Define un borde punteado
dashed Define un borde con una línea di­s­co­n­ti­nua
solid Define un marco con una línea continua
double Define un marco doble
groove, ridge, inset, outset Estos valores permiten im­ple­me­n­tar di­fe­re­n­tes marcos 3D

La siguiente imagen muestra los di­fe­re­n­tes tipos de borde en CSS:

Es obli­ga­to­rio es­pe­ci­fi­car el tipo de borde. Si no se elige un diseño de marco, el navegador web no re­pre­se­n­ta­rá ningún borde, incluso cuando disponga de los valores para el ancho o el color.

Anchura del borde

El ancho del borde define el grosor de la línea del marco.

Posibles valores para la anchura del borde De­s­cri­p­ción
Es­pe­ci­fi­ca­ción de la longitud Para es­pe­ci­fi­car el ancho del borde se utilizan las mismas medias es­pe­ci­fi­ca­das para font-size. La anchura del borde no puede ser expresada en po­r­ce­n­ta­jes.
thin delgado
medium medio grueso
thick grueso

Color del borde

Los valores de color para las pro­pie­da­des border-color co­rre­s­po­n­den a los de las pro­pie­da­des color y ba­c­k­grou­nd-color.

Posibles valores para los colores del borde De­s­cri­p­ción
In­fo­r­ma­ción de color El color del borde se puede es­pe­ci­fi­car usando palabras clave (p.ej., red) o como valor he­xa­de­ci­mal, RGB o HSL.
tra­n­s­pa­re­nt Define al borde como invisible.

El siguiente ejemplo de código combina la propiedad border con formatos de color de texto y de fondo. En un documento CSS, esta regla se uti­li­za­ría para definir la clase borde:

.border {
    font-family: Arial;
    font-size: 5em;
    color: #d82451;
    background-color: #24d8ab;
    border: 10px ridge #d82451;
}

A web browser displays such fo­r­ma­t­ti­ng as follows:

border-radius

La propiedad border-radius permite redondear las esquinas del marco en forma de círculo o de elipse. En caso de que el elemento cuente con una imagen o color de fondo, este será cortado a lo largo de la curva definida. Esto funciona incluso cuando el elemento no tiene marco. Esta función también permite pe­r­so­na­li­zar el borde con formas geo­mé­tri­cas simples.

Los posibles valores para la propiedad border son cuatro tamaños, cada uno de los cuales cuenta con in­fo­r­ma­ción para una de las esquinas del marco. La asi­g­na­ción puede ser su­s­ti­tui­da op­cio­na­l­me­n­te por uno, dos, tres o cuatro valores.

Valores para la propiedad border-radius De­s­cri­p­ción
Un valor definido El valor se aplica a las cuatro esquinas.
Dos valores definidos El primer valor define las esquinas superior izquierda e inferior derecha. El segundo valor define las esquinas superior derecha e inferior izquierda.
Tres valores definidos El primer valor define la esquina superior izquierda. El segundo valor define las esquinas superior derecha e inferior izquierda. El tercer valor define la esquina inferior derecha.
Cuatro valores definidos Cada esquina se define por su propio valor siguiendo la dirección de las ma­ne­ci­llas del reloj: superior izquierda, superior derecha, inferior derecha, inferior izquierda.

Los valores in­di­vi­dua­les para el radio del marco se separan por espacios y se ubican después de enunciar la propiedad border-radius. De este modo, su de­cla­ra­ción se verá de la siguiente manera (los valores numéricos son ejemplos):

border-radius: 4em 2em 3em 1em;

La propiedad border-radius puede ubicarse en el mismo conjunto de reglas que la propiedad border o definirse en clases separadas. El siguiente conjunto de reglas define a un marco con un border-radius de 2 em:

.border {
    height: 100px;
    width: 600px;
    border: solid 10px #d82451;
    border-radius: 2em;
}

Al­te­r­na­ti­va­me­n­te, se pueden definir valores di­fe­re­n­tes para cada una de las cuatro esquinas:

.border {
    height: 100px;
    width: 600px;
    border: solid 10px #d82451;
    border-radius: 2em 1em 3em 4em;
}

En ambos casos, las esquinas del marco son re­do­n­dea­das. Si se quiere que el re­do­n­dea­do sea elíptico, se necesitan dos valores di­fe­re­n­tes para cada esquina. Así, la de­cla­ra­ción de un marco elíptico puede estar compuesta por hasta ocho valores:

border-radius: 1em 4em 1em 4em / 4em 1em 4em 1em;

Los valores antes de la barra inclinada (/) definen el radio para el eje ho­ri­zo­n­tal de la elipse, mientras que las cifras después de la barra definen el eje vertical.

.border {
    height: 100px;
    width: 600px;
    border: solid 10px #d82451;
    border-radius: 1em 4em / 4em 1em;
}

En caso de que el elemento tenga fondo, este se ajustará au­to­má­ti­ca­me­n­te a la forma del marco.

.border {
    height: 100px;
    width: 600px;
    border: solid 10px #d82451;
    border-radius: 2em; 
    background-color: #24d8ab;
}

Esto se aplica tanto a los colores de fondo como a las imágenes, mas no a los elementos de texto.

El modelo de cajas CSS

Para alinear elementos de texto, imágenes y otros elementos de diseño en una página web, CSS utiliza una es­tra­te­gia basada en la apli­ca­ción de formato a las su­pe­r­fi­cies re­c­ta­n­gu­la­res que resultan de los diversos elementos en bloque y en línea. Es aquí donde se habla del modelo de cajas o box model de CSS.

Cada elemento HTML se visualiza como un área re­c­ta­n­gu­lar en el frontend de una página web, la llamada caja. Las pro­pie­da­des de dichas cajas, más es­pe­cí­fi­ca­me­n­te su flujo y su extensión, son las que ese­n­cia­l­me­n­te de­te­r­mi­nan el diseño de una página web.

El po­si­cio­na­mie­n­to de las cajas in­di­vi­dua­les se determina por el llamado flujo de do­cu­me­n­tos (“document flow”). Este sigue un esquema no­r­ma­li­za­do en el que, a menos que se indique otro formato, cada elemento se vi­sua­li­za­rá, en la mayor medida posible, hacia la izquierda, co­me­n­za­n­do con el primer elemento en el código HTML. Todos los elementos que le siguen se ubicarán a su derecha. En caso de que no haya más espacio, la siguiente caja se moverá a un nuevo reglón.

En este ámbito, CSS di­fe­re­n­cia aquí entre dos tipos de cajas:

  • Cajas de bloque: los elementos en bloque (p. ej., p o div) generan cajas de bloque. Los na­ve­ga­do­res web las re­pre­se­n­tan de tal manera que su anchura re­pre­se­n­ta a la totalidad del elemento padre. Esta ca­ra­c­te­rí­s­ti­ca hace que sean ellas quienes co­n­s­tru­yan los párrafos, de­s­li­za­n­do au­to­má­ti­ca­me­n­te a los elementos po­s­te­rio­res a la siguiente línea. La altura de una caja de bloque está de­te­r­mi­na­da por el contenido del elemento o de cualquier formato. Las cajas de bloque pueden contener elementos en bloque y en línea por igual.
  • Cajas de línea: las cajas de línea están co­m­pue­s­tas de elementos en línea como, por ejemplo, i o span, son generadas dentro de una caja de bloque y no conforman párrafos por sí solas. La anchura y altura de un elemento en línea son de­te­r­mi­na­dos úni­ca­me­n­te por su contenido.

La siguiente imagen re­pre­se­n­ta el flujo de los elementos con cajas de bloque y de línea:

En caso de que no haya otro formato di­s­po­ni­ble, las cajas de bloque se re­pre­se­n­tan, in­de­pe­n­die­n­te­me­n­te de su contenido, con la anchura máxima. Cada cuadro se inicia con un nuevo párrafo y se extiende por la anchura del elemento padre. En el ejemplo, esto se indica con un marco gris. Cabe señalar que los na­ve­ga­do­res web suelen asignar au­to­má­ti­ca­me­n­te un margen (default margin) a algunos elementos en bloque como <p>.

Las cajas de línea dentro de una caja de bloque no crean un nuevo párrafo y, en cambio, son re­pre­se­n­ta­das “inline” dentro del flujo del texto.

El ejemplo muestra una caja de línea en donde la frase “co­n­se­c­te­tuer adi­pi­s­ci­ng elit” se resalta dentro de un recuadro verde.

Debido a la pre­di­s­po­si­ción para crear bloques, el diseño de la página web depende, en primer lugar, del formato de las cajas de bloque. Estas no tienen que consistir ne­ce­sa­ria­me­n­te en elementos de contenido como los en­ca­be­za­mie­n­tos o los párrafos de texto. A menudo, los elementos HTML se­má­n­ti­ca­me­n­te vacíos como <div> se utilizan para agrupar a otros elementos y crear así un área que pueda fo­r­ma­tear­se con CSS.

Este formato se logra uti­li­za­n­do el modelo de cajas de CSS. En este, cada elemento HTML puede de­s­cri­bi­r­se por cuatro cajas anidadas que se pueden ajustar in­de­pe­n­die­n­te­me­n­te a las ideas de diseño deseadas. Se distingue pri­n­ci­pa­l­me­n­te entre content-box, padding-box, border-box y margin-box.

Niveles del modelo de caja De­s­cri­p­ción
Contenido (content-box) La caja de contenido re­pre­se­n­ta un área cuya extensión está de­te­r­mi­na­da por la cantidad de texto o las di­me­n­sio­nes de un gráfico. Para los elementos en bloque, la altura y anchura pueden definirse in­di­vi­dua­l­me­n­te a través de las pro­pie­da­des height y width. Este formato no está di­s­po­ni­ble para los elementos en línea.
Relleno (padding-box) La caja de relleno (padding =“relleno”) define la distancia entre content-box y border-box.
Bordes (border-box) La border-box define el marco.
Margen (margin-box) La margin-box define la distancia entre el elemento actual y su elemento padre o elementos ad­ya­ce­n­tes. A di­fe­re­n­cia de padding y border, la propiedad margin puede usar valores negativos.

Si los cuatro bordes de una caja tienen el mismo formato, se utilizan las pro­pie­da­des relleno, borde y margen. Tanto la distancia interior y exterior como el marco se pueden formatear por separado para cada uno de los lados de una caja CSS. Las re­s­pe­c­ti­vas pro­pie­da­des se en­cue­n­tran entonces en la siguiente tabla:

Margen Borde Relleno
Arriba padding-top border-top margin-top
Abajo padding-bottom border-bottom margin-bottom
Derecha padding-left border-left margin-left
Izquierda padding-right border-right margin-right

Los posibles valores de las pro­pie­da­des enu­me­ra­das an­te­rio­r­me­n­te son es­pe­ci­fi­ca­cio­nes de tamaño y ca­ra­c­te­rí­s­ti­cas heredadas del elemento padre (inherit). Los márgenes se pueden definir con el valor auto. La siguiente imagen muestra el diseño es­que­má­ti­co de una caja CSS.

Im­ple­me­n­ta­ción del modelo de cajas CSS

El modelo de cajas se puede ilustrar como un cuadro de contenido al que se añaden capas una a una. El punto de partida es un breve fragmento de texto que se formatea con el selector de clases content:

<p class="content">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctusest Lorem ipsum dolor sit amet.</p>

El siguiente conjunto de reglas es­pe­ci­fi­ca las di­me­n­sio­nes 150 px x 150 px para la content-box. Adi­cio­na­l­me­n­te, se define el formato de texto negro (color: #000000;) sobre un fondo blanco (ba­c­k­grou­nd-color: #ffffff;) y se justifica el texto (text-align: justify;):

.content {
     height: 150px;
     width: 150px;
     color: #000000;
     text-align: justify;
    background-color: #ffffff;
}

Al aplicar estas in­s­tru­c­cio­nes de diseño al texto, el navegador web entrega lo siguiente:

De acuerdo con el principio del flujo de los elementos, el texto aparece en la esquina superior izquierda de su elemento padre (en la imagen la sección gris de fondo). El texto y el color de fondo blanco comienzan sin espacio en la parte izquierda de la ventana del navegador y llenan el espacio di­s­po­ni­ble (150px x 150px). El fondo blanco comprende la misma área del cuerpo del texto.

Este tipo de diseño es poco atractivo y, a su vez, difícil de leer. La propiedad padding permite a los di­se­ña­do­res web definir un margen para evitar que los elementos gráficos y de texto toquen los bordes.

.content {
     height: 150px;
     width: 150px;
    color: #000000;
    background-color: #ffffff;
    text-align: justify;
    padding: 10px; 
}

Si se incluye la de­cla­ra­ción padding: 20px; al conjunto de reglas se vi­sua­li­za­rá de esta forma:

El navegador web añade a cada lado de la caja de contenido un margen de 20px. Por lo tanto, el elemento mide ahora 190px x 190px. Como elemento adicional de diseño se puede co­n­fi­gu­rar un borde.

.content {
     height: 150px;
     width: 150px;
     color: #000000;
     background-color: #ffffff;
     text-align: justify;
     padding: 10px;
    border: 5px solid #d82451;
}

En el código de ejemplo, a la propiedad border se le asignan los valores 5px solid #d82451. En la vista de navegador, este formato arroja como resultado un marco continuo en rojo pardo que rodea a la padding-box.

El valor padding es el encargado de separar al contenido del margen.

De acuerdo con el flujo natural de los elementos, esta caja se ubica au­to­má­ti­ca­me­n­te sin ningún espacio en la esquina superior izquierda del elemento padre. La propiedad margin permite relajar un poco el diseño de una página web por medio de un margen.

Para ello, solo es necesario añadir la siguiente de­cla­ra­ción al conjunto de reglas:

.content {
    height: 150px;
    width: 150px;
    color: #000000;
    background-color: #ffffff;
    text-align: justify;
    padding: 20px;
    border: 5px solid #d82451;
    margin: 40px;
}

En el navegador web, un margen de 40 px se verá de la siguiente manera:

Ahora, la caja en bloque <p> se posiciona li­bre­me­n­te dentro del elemento padre.

Como al­te­r­na­ti­va a un valor es­pe­cí­fi­co para la propiedad margin, se le puede asignar el valor auto. En este caso, la caja se centra au­to­má­ti­ca­me­n­te dentro del elemento padre. Cabe resaltar que, en orie­n­ta­ción vertical, el valor auto no tiene ningún efecto.

.content {
    width: 150px;
    color: #000000;
    background-color: #ffffff;
    text-align: justify;
    padding: 20px;
    border: 5px solid #d82451;
    margin: auto; 
}

Calcular la altura y anchura de una caja de CSS

Los re­que­ri­mie­n­tos de espacio de una caja CSS pueden ser de­te­r­mi­na­dos sumando todos los valores re­le­va­n­tes de sus co­m­po­ne­n­tes. Se haría entonces la siguiente cuenta:

El elemento mide 200 px x 200 px, el espacio requerido es de 280 px x 280 px.

Float

En caso de que la caja que se tenga que editar sea una block-box, las si­guie­n­tes cajas se de­s­pla­za­rán au­to­má­ti­ca­me­n­te a la siguiente fila.

En la práctica, el salto de línea au­to­má­ti­co después de una caja en bloque no siempre es deseable y se puede evitar con la ayuda de la propiedad float. Esta se encarga de separar las cajas de bloque del flujo normal de elementos y las posiciona en la ubicación deseada. De acuerdo con las es­pe­ci­fi­ca­cio­nes de CSS, float acepta cuatro valores:

Valores para la propiedad float De­s­cri­p­ción
none No hay ningún de­s­pla­za­mie­n­to del elemento. El valor float: none; es el valor pre­de­te­r­mi­na­do para una caja CSS.
left La caja de bloque se situará en el borde interior izquierdo del elemento padre.
right La caja de bloque se ubicará en el borde derecho interno del elemento padre.
inherit El valor float es heredado del elemento padre.

Una caja editada con float se llama float.

Si hay varios float se ubicarán en el orden en el que aparecen en el código fuente HTML y se po­si­cio­na­rán de izquierda a derecha (float: left) o de derecha a izquierda (float: right).

El siguiente ejemplo de código muestra un conjunto de reglas para .content, in­clu­ye­n­do la propiedad float:

.content {
    height: 150px;
    width: 150px;
    color: #000000;
    background-color: #ffffff;
    text-align: justify;
    padding: 20px;
    border: 5px solid #d82451;
    margin: 40px; 
    float: left; 
}

Si se aplica a dos elementos HTML, estos serán sacados del flujo de elementos y alineados uno a la izquierda del otro:

<p class="content">At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctusest Lorem ipsum dolor sit amet.</p>
<p class="content">Nam quam nunc, blandit vel, luctus pulvinar, hendrerit id, lorem. Maecenas nec odio et ante tincidunt tempus.</p>

El gran espacio es co­n­se­cue­n­cia de la suma de ambos márgenes, cada uno de 40 px. Sin float, los elementos ad­ya­ce­n­tes se tocarían entre sí. Si la anchura total de la suma de ambos márgenes supera al ancho del elemento padre, todos los elementos po­s­te­rio­res pro­ce­de­n­tes de este se de­s­pla­za­rán a la siguiente fila.

Esta regla no se aplica al primer float: si es más grande que su elemento padre sobresale de este.

Como al­te­r­na­ti­va a la propiedad float, las cajas CSS también se pueden destacar por la in­fo­r­ma­ción de po­si­cio­na­mie­n­to del flujo natural de elementos y alinearse in­di­vi­dua­l­me­n­te.

Po­si­cio­na­mie­n­to

La propiedad CSS position se utiliza para extraer una caja del flujo de elementos y colocarla en cualquier parte de la página web. Otras cajas, in­de­pe­n­die­n­te­me­n­te de si están in­co­r­po­ra­das en el flujo de elementos o po­si­cio­na­das en otro lugar, no tienen ninguna in­flue­n­cia sobre la posición de una caja fo­r­ma­tea­da de esta manera.

La propiedad position puede tener los cinco posibles valores absolute, fixed, relative, static y sticky y puede es­pe­ci­fi­car­se con las pro­pie­da­des left, right, top y bottom y con valores es­pe­cí­fi­cos de medida. Por lo general, dos valores son su­fi­cie­n­tes para de­te­r­mi­nar la posición (p. ej., top y left).

Valores para la propiedad position De­s­cri­p­ción
absolute La caja se aísla del flujo de elementos y se coloca en una posición definida por alguna de las pro­pie­da­des top, bottom, left y right. Estos valores están re­la­cio­na­dos con el elemento padre es­pe­ci­fi­ca­do también a través de la propiedad position. Si no existe un elemento de este tipo, se toma como punto de re­fe­re­n­cia al elemento raíz <html>. Las cajas con la de­cla­ra­ción position: absolute no tienen ninguna in­flue­n­cia sobre la posición de otros elementos ni tampoco pueden so­bre­sa­lir o so­bre­po­ne­r­se sobre estos.
relative Si se utiliza la de­cla­ra­ción position: relative, la caja se mantiene dentro del flujo de elementos, pero se puede alinear con la in­fo­r­ma­ción de po­si­cio­na­mie­n­to top, bottom, left y right. Con esto, el cuadro se alinea consigo mismo. Los elementos previos y po­s­te­rio­res en el flujo se comportan como si la caja no se hubiera movido.
fixed Cuando una caja se posiciona con position: fixed, la posición se define en relación al espacio de vi­sua­li­za­ción. Una caja fijada de esta manera aparece siempre en el mismo lugar de la pantalla, incluso si un visitante se desplaza a través de la página web. Por lo tanto, los elementos de na­ve­ga­ción como menús o botones para “volver” o “ir al sitio de inicio” pe­r­ma­ne­cen en el campo visual del usuario.
static La caja asume su posición natural dentro del flujo del texto. Si se escoge la de­cla­ra­ción position: static, las in­di­ca­cio­nes top, bottom, left y right no tienen ningún efecto. El valor static es el valor por defecto de la propiedad position.
sticky La posición se calcula de acuerdo con el flujo normal de elementos y se comporta como un elemento con la de­cla­ra­ción position: relative, siempre y cuando se encuentre dentro del área de vi­sua­li­za­ción. Sin embargo, si amenaza con des­apa­re­cer de la zona de la pantalla, se separa del flujo de elementos y se “pega” (posiciona fijamente) en un lugar definido por el diseñador web. Así, el valor sticky puede verse como una co­m­bi­na­ción entre relative y fixed.

Po­si­cio­na­mie­n­to absoluto

Los si­guie­n­tes conjuntos de reglas contienen el po­si­cio­na­mie­n­to absoluto de las cajas roja, azul y verde, dentro del elemento padre ba­c­k­grou­nd.

.background {
    height: 500px; 
    width: 500px;
    border: solid grey 
}
.roja {
    height: 150px;
    width: 150px;
    background-color: rgba(255,0,0,0.5);
    position: absolute;
    top: 100px;
    left: 100px;
}
.azul {
    height: 150px;
    width: 150px;
    background-color: rgba(0,0,255,0.5);
    position: absolute;
    top: 150px;
    left: 150px;
}
.verde {
    height: 150px;
    width: 150px;
    background-color: rgba(0,255,0,0.5);
    position: absolute;
    top: 200px;
    left: 200px;
}

Las cajas de contenido roja, azul y verde se han definido como su­pe­r­fi­cies se­mi­tra­n­s­pa­re­n­tes con di­me­n­sio­nes 150 px x 150 px. La caja de contenido ba­c­k­grou­nd con las di­me­n­sio­nes 500 px x 500 px está rodeada por un marco gris.

Las in­s­tru­c­cio­nes de diseño se integran en el código HTML con clases.

<div class="background">
    <p class="roja"> </p>
    <p class="azul"> </p>
    <p class="verde"> </p>
</div>

La vista del navegador muestra el diferente po­si­cio­na­mie­n­to de las cajas <p> dentro del elemento <div>. Los elementos se compensan en 50 px hacia la parte inferior derecha. La co­lo­ra­ción tra­n­s­pa­re­n­te ilustra la po­si­bi­li­dad de un so­la­pa­mie­n­to en la posición absoluta.

Po­si­cio­na­mie­n­to relativo

En la posición relativa, la ali­nea­ción de cajas in­di­vi­dua­les se realiza a partir del flujo normal de elementos. Los elementos en nivel de bloque sin formato float se pre­se­n­ta­rán una debajo de la otra.

El margen encima de cada elemento co­rre­s­po­n­de al valor para elementos <p>. 

Para alinear una caja en función de su posición en el flujo de elementos, se utiliza el conjunto de reglas para la de­cla­ra­ción position: relative, y se co­m­ple­me­n­ta con la in­fo­r­ma­ción de po­si­cio­na­mie­n­to deseada.

El siguiente bloque de código lo demuestra usando el ejemplo de la caja azul:

.content2 {
    height: 150px;
    width: 150px;
    background-color: rgba(0,0,255,0.5);
    position: relative;
    left: 50px;
}

Junto a la in­s­tru­c­ción de diseño position: relative, la in­di­ca­ción de posición left: 50px genera un de­s­pla­za­mie­n­to de 50 px a la derecha de la caja azul en el navegador.

De la misma forma, el po­si­cio­na­mie­n­to relativo también se puede aplicar a los elementos flotantes:

.content2 {
     height: 150px;
     width: 150px;
     background-color: rgba(0,0,255,0.5);
     position: relative;
    top: 50px;
    float: left;
}

Cajas CSS fijas

La ali­nea­ción de cajas fijas es similar al po­si­cio­na­mie­n­to absoluto ajeno al flujo de elementos. Todos los datos de po­si­cio­na­mie­n­to están re­la­cio­na­dos con el área de vi­sua­li­za­ción del usuario.

El siguiente conjunto de reglas le indica al navegador web que debe fijar una pequeña caja roja en la esquina inferior izquierda del área de vi­sua­li­za­ción.

.content1 {
    height: 50px;
    width: 150px;
    background-color: rgba(255,0,0,0.5);
    position: fixed;
    bottom: 10px;
    left: 15px;
}

La caja roja se mantiene en el punto definido por la in­fo­r­ma­ción de po­si­cio­na­mie­n­to dentro de la ventana del navegador (bottom: 10px; left: 15px;), incluso cuando otros elementos, como el cuadro de texto azul, permiten el de­s­pla­za­mie­n­to hacia abajo.

De pri­n­ci­pia­n­te a experto

El objetivo de nuestro tutorial era demostrar las po­si­bi­li­da­des de CSS para los menos ex­pe­ri­me­n­ta­dos. Sin embargo, un curso de CSS básico no es su­fi­cie­n­te para describir de­ta­lla­da­me­n­te todas las ca­ra­c­te­rí­s­ti­cas del lenguaje de hojas de estilo. En caso de que este tutorial CSS haya de­s­pe­r­ta­do tu interés, te re­co­me­n­da­mos fuentes de do­cu­me­n­ta­ción como la Wiki SELFHTML o la comunidad Mozilla Developer Network. En este artículo de nuestra guía en­cue­n­tras una selección de útiles trucos CSS para usuarios avanzados.

Ir al menú principal