CSS 2: Interface de usuario

La propiedad cursor

La propiedad cursor permite especificar el icono que se muestra al situar el cursor sobre un elemento. Los posibles valores son auto, crosshair, default, help, move, pointer, progress, n-resize, ne-resize, e-resize, se-resize, s-resize, sw-resize, w-resize, nw-resize, text y wait.

Los valores predefinidos son los siguientes:

p {
  cursor: auto;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: text.

p {
  cursor: crosshair;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: crosshair.

p {
  cursor: default;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: default.

p {
  cursor: help;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: help.

p {
  cursor: move;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: move.

p {
  cursor: pointer;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: pointer.

p {
  cursor: progress;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: progress.

p {
  cursor: n-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: n-resize.

p {
  cursor: ne-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: ne-resize.

p {
  cursor: e-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: e-resize.

p {
  cursor: se-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: se-resize.

p {
  cursor: s-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: n-resize.

p {
  cursor: sw-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: ne-resize.

p {
  cursor: w-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: e-resize.

p {
  cursor: nw-resize;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: se-resize.

p {
  cursor: text;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: text.

p {
  cursor: wait;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a uno parecido a éste: Icono cursor: wait.


También pueden utilizarse cursores personalizados, indicando la dirección de la imagen que se quiera emplear. Se puede escribir una lista de cursores separados por comas para que el navegador utilice el primero disponible

Correcto en Firefox Incorrecto en Internet Explorer Correcto en Chrome
p {
  cursor: url("../img/exclamacion.png"), wait;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a un signo de exclamación en color rojo (o a un reloj de arena si no se puede mostrar la exclamación).

p {
  cursor: url("../img/exclamacion.cur"), wait;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a un signo de exclamación en color rojo (o a un reloj de arena si no se puede mostrar la exclamación).

p {
  cursor: url("../img/exclamacion.ico"), wait;
}

Al situar el cursor del ratón sobre este párrafo, la forma del cursor debe cambiar a un signo de exclamación en color rojo (o a un reloj de arena si no se puede mostrar la exclamación).

Nota: Internet Explorer solamente admite cursores en formato ICO o CUR (ICO es el formato de los iconos de Windows y CUR es el formato de los cursores no animados de Windows, prácticamente idéntico al formato ICO), como se comenta en la página de diferencias entre Firefox e Internet Explorer.

Contornos

Un contorno es como un segundo borde, pero que no se tiene en cuenta al calcular el tamaño del elemento y que no tiene por qué ser rectangular.

La propiedad compuesta outline

La propiedad compuesta outline permite establecer un contorno a un elemento, indicando como en caso del borde, el color, el grosor y el estilo del contorno.

p {
  outline: red 3px solid;
}

Esto es un párrafo con contorno de estilo solid.

Un elemento puede tener simultáneamente borde y contorno, como muestra el ejemplo siguiente:

p {
  outline: red 3px solid;
  border: black 3px solid;
}

Esto es un párrafo con borde y contorno de estilo solid.


El contorno se diferencia del borde en que el contorno no se tiene en cuenta al calcular el tamaño del elemento, mientras que el borde sí, como muestran los ejemplos siguientes:

p.con-border {
  border: black 10px solid;
}

Esto es un párrafo normal y corriente.

Esto es un párrafo con borde de estilo solid.

Esto es un párrafo normal y corriente.

p.con-outline {
  outline: black 10px solid;
}

Esto es un párrafo normal y corriente.

Esto es un párrafo con contorno de estilo solid.

Esto es un párrafo normal y corriente.

Esta diferencia es más evidente si el contorno se genera cuando el ratón pasa por encima del elemento. En el caso del borde, al añadirse el borde, los elementos siguientes se desplazan, pero en el caso del contorno, al generarse el contorno, los elementos siguientes no se desplazan.

p.con-border:hover {
  border: black 10px solid;
}

Esto es un párrafo normal y corriente.

Cuando el ratón pasa por encima, se muestra un borde de estilo solid.

Esto es un párrafo normal y corriente.

p.con-outline:hover {
  outline: black 10px solid;
}

Esto es un párrafo normal y corriente.

Cuando el ratón pasa por encima, se muestra un contorno de estilo solid.

Esto es un párrafo normal y corriente.


El contorno se diferencia también del borde en que el borde es siempre rectangular, mientras que el contorno no tiene por qué serlo.

span.con-border {
  border: black 3px solid;
}

Esto es un párrafo normal y corriente. Esta frase tiene un borde de estilo solid y para ver la diferencia entre borde y contorno, debería ocupar varias líneas. Esta frase ya no tiene ni borde ni contorno.

span.con-outline {
  outline: black 3px solid;
}

Esto es un párrafo normal y corriente. Esta frase tiene un contorno de estilo solid y para ver la diferencia entre borde y contorno, debería ocupar varias líneas. Esta frase ya no tiene ni borde ni contorno.

Nota: Firefox no muestra el contorno de un elemento en-línea de la misma manera que Internet Explorer o Google Chrome, como se comenta en la página de diferencias entre Firefox e Internet Explorer.


La propiedad outline admite como color el valor invert. Con este valor, el contorno toma el color opuesto al color de fondo del elemento.

Incorrecto en Firefox Correcto en Internet Explorer Correcto en Chrome
body {
  background-color: white;
}

p {
  outline: invert 3px solid;
}

Esto es un párrafo con contorno de estilo solid.

Incorrecto en Firefox Correcto en Internet Explorer Correcto en Chrome
body {
  background-color: black;
  color:white;
}

p {
  outline: invert 3px solid;
}

Esto es un párrafo con contorno de estilo solid.

Incorrecto en Firefox Correcto en Internet Explorer Correcto en Chrome
body {
  background-color: red;
  color:yellow;
}

p {
  outline: invert 3px solid;
}

Esto es un párrafo con contorno de estilo solid.

Nota: Firefox no muestra el valor invert desde la versión FF3.0, como se comenta en la página de diferencias entre Firefox e Internet Explorer. En la página de bugs de Firefox se explica qué motivos dan los desarrolladores de Firefox para no hacerlo.

Las propiedades outline-color, outline-width y outline-style

Las propiedades outline-color, outline-width y outline-style permiten establecer, respectivamente, el color, el grosor y el estilo de los cuatro contornos de un elemento y se utilizan de la misma manera que las propiedades border-color, border-width y border-style.

p {
  outline-color: black;
  outline-style: solid;
  outline-width: 3px;
}

Esto es un párrafo con contorno de estilo solid.


La propiedad outline-color admite el valor invert. Con este valor, el contorno toma el color opuesto al color de fondo del elemento.

Incorrecto en Firefox Correcto en Internet Explorer Correcto en Chrome
body {
  background-color: black;
  color:white;
}

p {
  outline-color: invert;
  outline-style: solid;
  outline-width: 3px;
}

Esto es un párrafo con contorno de estilo solid.

Nota: Firefox no muestra el valor invert desde la versión FF3.0, como se comenta en la página de diferencias entre Firefox e Internet Explorer. En la página de bugs de Firefox se explica qué motivos dan los desarrolladores de Firefox para no hacerlo.