border-image
Baseline
Ampliamente disponible
Esta característica está consolidada y funciona en muchos dispositivos y versiones de navegador. Está disponible en todos los navegadores desde julio de 2015.
Resumen
La propiedad de CSS border-image permite utilizar una imágen para definir los bordes de los elementos. Esto hace que dibujarlos sea más simple y elimina la necesidad de utilizar muchas cajas en algunos casos.
La propiedad border-image es usada en lugar de la sentencia border-style. Por eso es muy importante tener en cuenta el valor dado por la sentencia border-image-source, que se puede establecer ya sea por la propiedad border-image-source o la abreviatura border-image, en caso de que su valor sea nulo (none), o si la imágen no se puede visualizar, se utilizarán los estilos de borde.
| Valor inicial | as each of the properties of the shorthand:
|
|---|---|
| Applies to | all elements, except internal table elements when border-collapse is collapse. It also applies to ::first-letter. |
| Heredable | no |
| Percentages | as each of the properties of the shorthand:
|
| Valor calculado | as each of the properties of the shorthand:
|
| Animation type | as each of the properties of the shorthand:
|
Sintaxis
Etiquetado formal:border-image =
<'border-image-source'> ||
<'border-image-slice'> [ / <'border-image-width'> | / <'border-image-width'>? / <'border-image-outset'> ]? ||
<'border-image-repeat'>
<border-image-source> =
none |
<image>
<border-image-slice> =
[ <number [0,∞]> | <percentage [0,∞]> ]{1,4} &&
fill?
<border-image-width> =
[ <length-percentage [0,∞]> | <number [0,∞]> | auto ]{1,4}
<border-image-outset> =
[ <length [0,∞]> | <number [0,∞]> ]{1,4}
<border-image-repeat> =
[ stretch | repeat | round | space ]{1,2}
<image> =
<url> |
<image()> |
<image-set()> |
<cross-fade()> |
<element()> |
<gradient>
<length-percentage> =
<length> |
<percentage>
<image()> =
image( <image-tags>? [ <image-src>? , <color>? ]! )
<image-set()> =
image-set( <image-set-option># )
<cross-fade()> =
cross-fade( <cf-image># )
<element()> =
element( <id-selector> )
<image-tags> =
ltr |
rtl
<image-src> =
<url> |
<string>
<image-set-option> =
[ <image> | <string> ] [ <resolution> || type( <string> ) ]?
<cf-image> =
[ <image> | <color> ] &&
<percentage [0,100]>?
<id-selector> =
<hash-token>
Valores
A continuación vea las respectivas propiedades para los diferentes valores.
Ejemplos
>Bitmap repeated (repeat)
La imágen es cortada para rellenar el area del borde, repitiendose si es necesario.
.example {
border: 30px solid transparent;
-moz-border-image: url("/files/4127/border.png") 30 30 repeat; /* Old firefox */
-webkit-border-image: url("/files/4127/border.png") 30 30 repeat; /* Safari */
-o-border-image: url("/files/4127/border.png") 30 30 repeat; /* Opera */
border-image: url("/files/4127/border.png") 30 30 repeat;
}
Resultado:

Bitmap repeated (round)
La opción 'round' es una variación de la opción 'repeat', la cual distribuye las partes de tal manera que los extremos se conecten bién.
.example {
border: 30px solid transparent;
-moz-border-image: url("/files/4127/border.png") 30 30 round; /* Old firefox */
-webkit-border-image: url("/files/4127/border.png") 30 30 round; /* Safari */
-o-border-image: url("/files/4127/border.png") 30 30 round; /* Opera */
border-image: url("/files/4127/border.png") 30 30 round;
}
Resultado:

Bitmap stretched
La opción 'stretch' estira la imágen para rellenar todo el borde del área
.example {
border: 30px solid transparent;
-moz-border-image: url("/files/4127/border.png") 30 30 stretch; /* Old firefox */
-webkit-border-image: url("/files/4127/border.png") 30 30 stretch; /* Safari */
-o-border-image: url("/files/4127/border.png") 30 30 stretch; /* Opera */
border-image: url("/files/4127/border.png") 30 30 stretch;
}
Resultado:

Especificaciones
| Especificación |
|---|
| CSS Backgrounds and Borders Module Level 3> # border-image> |