CSS permite modificar el aspecto de cada uno de los cuatro bordes de la caja de un elemento. Para cada borde se puede establecer su anchura o grosor, su color y su estilo, por lo que en total CSS define 20 propiedades relacionadas con los bordes.
4.3.1. Anchura
La anchura de los bordes se controla con las cuatro propiedades siguientes:
Propiedades | border-top-width, border-right-width, border-bottom-width, border-left-width |
---|---|
Valores | ( unidad de medida | thin | medium | thick ) | inherit |
Se aplica a | Todos los elementos |
Valor inicial | Medium |
Descripción | Establece la anchura de cada uno de los cuatro bordes de los elementos |
La anchura de los bordes se indica mediante una medida (en cualquier unidad de medida absoluta o relativa) o mediante las palabras clave thin
(borde delgado), medium
(borde normal) y thick
(borde ancho).
La unidad de medida más habitual para establecer el grosor de los bordes es el píxel, ya que es la que permite un control más preciso sobre el grosor. Las palabras clave apenas se utilizan, ya que el estándar CSS no indica explícitamente el grosor al que equivale cada palabra clave, por lo que pueden producirse diferencias visuales entre navegadores. Así por ejemplo, el grosor medium
equivale a 4px
en algunas versiones de Internet Explorer y a 3px
en el resto de navegadores.
El siguiente ejemplo muestra un elemento con cuatro anchuras diferentes de borde:
Las reglas CSS utilizadas se muestran a continuación:
div {
border-top-width: 10px;
border-right-width: 1em;
border-bottom-width: thick;
border-left-width: thin;
}
Si se quiere establecer de forma simultánea la anchura de todos los bordes de una caja, es necesario utilizar una propiedad "shorthand" llamada border-width
:
Propiedad | border-width |
---|---|
Valores | ( unidad de medida | thin | medium | thick ) {1, 4} | inherit |
Se aplica a | Todos los elementos |
Valor inicial | Medium |
Descripción | Establece la anchura de todos los bordes del elemento |
La propiedad border-width
permite indicar entre uno y cuatro valores. El significado de cada caso es el habitual de las propiedades "shorthand":
p { border-width: thin } /* thin thin thin thin */
p { border-width: thin thick } /* thin thick thin thick */
p { border-width: thin thick medium } /* thin thick medium thick */
p { border-width: thin thick medium thin } /* thin thick medium thin */
Si se indica un solo valor, se aplica a los cuatro bordes. Si se indican dos valores, el primero se aplica al borde superior e inferior y el segundo valor se aplica al borde izquierdo y derecho.
Si se indican tres valores, el primero se aplica al borde superior, el segundo se aplica al borde izquierdo y derecho y el tercer valor se aplica al borde inferior. Si se indican los cuatro valores, el orden de aplicación es superior, derecho, inferior e izquierdo.
4.3.2. Color
El color de los bordes se controla con las cuatro propiedades siguientes:
Propiedades | border-top-color, border-right-color, border-bottom-color, border-left-color |
---|---|
Valores | color | transparent | inherit |
Se aplica a | Todos los elementos |
Valor inicial | - |
Descripción | Establece el color de cada uno de los cuatro bordes de los elementos |
El ejemplo anterior se puede modificar para mostrar cada uno de los bordes de un color diferente:
Las reglas CSS necesarias para mostrar los colores anteriores son las siguientes:
div {
border-top-color: #CC0000;
border-right-color: blue;
border-bottom-color: #00FF00;
border-left-color: #CCC;
}
CSS incluye una propiedad "shorthand" llamada border-color
para establecer de forma simultánea el color de todos los bordes de una caja:
Propiedad | border-color |
---|---|
Valores | ( color | transparent ) {1, 4} | inherit |
Se aplica a | Todos los elementos |
Valor inicial | - |
Descripción | Establece el color de todos los bordes del elemento |
En este caso, al igual que sucede con la propiedad border-width
, es posible indicar de uno a cuatro valores y las reglas de aplicación son idénticas a las de la propiedad border-width
.
4.3.3. Estilo
Por último, CSS permite establecer el estilo de cada uno de los bordes mediante las siguientes propiedades:
Propiedades | border-top-style, border-right-style, border-bottom-style, border-left-style |
---|---|
Valores | none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset | inherit |
Se aplica a | Todos los elementos |
Valor inicial | none |
Descripción | Establece el estilo de cada uno de los cuatro bordes de los elementos |
El estilo de los bordes sólo se puede indicar mediante alguna de las palabras reservadas definidas por CSS. Como el valor por defecto de esta propiedad es none
, los elementos no muestran ningún borde visible a menos que se establezca explícitamente un estilo de borde.
Siguiendo el ejemplo anterior, se puede modificar el estilo de cada uno de los bordes:
Las reglas CSS necesarias para mostrar los estilos anteriores son las siguientes:
div {
border-top-style: dashed;
border-right-style: double;
border-bottom-style: dotted;
border-left-style: solid;
}
El aspecto con el que los navegadores muestran los diferentes tipos de borde se muestra a continuación:
Los bordes más utilizados son solid
y dashed
, seguidos de double
y dotted
. Los estilos none
y hidden
son idénticos visualmente, pero se diferencian en la forma que los navegadores resuelven los conflictos entre los bordes de las celdas adyacentes en las tablas.
Para establecer de forma simultánea los estilos de todos los bordes de una caja, es necesario utilizar la propiedad "shorthand" llamada border-style
:
Propiedad | border-style |
---|---|
Valores | (none | hidden | dotted | dashed | solid | double | groove | ridge | inset | outset ) {1, 4} | inherit |
Se aplica a | Todos los elementos |
Valor inicial | - |
Descripción | Establece el estilo de todos los bordes del elemento |
Como es habitual, la propiedad permite indicar de uno a cuatro valores diferentes y las reglas de aplicación son las habituales de las propiedades "shorthand".
4.3.4. Propiedades shorthand
Como sucede con los márgenes y los rellenos, CSS define una serie de propiedades de tipo "shorthand" que permiten establecer todos los atributos de los bordes de forma simultánea. CSS incluye una propiedad "shorthand" para cada uno de los cuatro bordes y una propiedad "shorthand" global.
Propiedades | border-top, border-right, border-bottom, border-left |
---|---|
Valores | ( unidad de medida_borde || color_borde || estilo_borde ) | inherit |
Se aplica a | Todos los elementos |
Valor inicial | - |
Descripción | Establece el estilo completo de cada uno de los cuatro bordes de los elementos |
El significado de cada uno de los valores especiales es el siguiente:
<medida_borde>
: una medida CSS o alguna de las siguientes palabras clave:thin
,medium
,thick
.<color_borde>
: un color de CSS o la palabra clavetransparent
<estilo_borde>
: una de las siguientes palabras clave:none
,hidden
,dotted
,dashed
,solid
,double
,groove
,ridge
,inset
,outset
.
Las propiedades "shorthand" permiten establecer alguno o todos los atributos de cada borde. El siguiente ejemplo establece el color y el tipo del borde inferior, pero no su anchura:
h1 {
border-bottom: solid red;
}
En el ejemplo anterior, la anchura del borde será la correspondiente al valor por defecto (medium
). Este otro ejemplo muestra la forma habitual utilizada para establecer el estilo de cada borde:
div {
border-top: 1px solid #369;
border-bottom: 3px double #369;
}
Por ultimo, CSS define una propiedad de tipo "shorthand" global para establecer el valor de todos los atributos de todos los bordes de forma directa:
Propiedad | border |
---|---|
Valores | ( unidad de medida_borde || color_borde || estilo_borde ) | inherit |
Se aplica a | Todos los elementos |
Valor inicial | - |
Descripción | Establece el estilo completo de todos los bordes de los elementos |
Las siguientes reglas CSS son equivalentes:
div {
border-top: 1px solid red;
border-right: 1px solid red;
border-bottom: 1px solid red;
border-left: 1px solid red;
}
div { border: 1px solid red; }
Como el valor por defecto de la propiedad border-style
es none
, si una propiedad shorthand no establece explícitamente el estilo de un borde, el elemento no muestra ese borde:
/* Sólo se establece el color, por lo que el estilo es
"none" y el borde no se muestra */
div { border: red; }
/* Se establece el grosor y el color del borde, pero no
su estilo, por lo que es "none" y el borde no se muestra */
div { border-bottom: 5px blue; }
Cuando los cuatro bordes no son idénticos pero sí muy parecidos, se puede utilizar la propiedad border
para establecer de forma directa los atributos comunes de todos los bordes y posteriormente especificar para cada uno de los cuatro bordes sus propiedades particulares:
h1 {
border: solid #000;
border-top-width: 6px;
border-left-width: 8px;
}
Ejercicio 4