La propiedad CSSborder-image está en la actualidad sólo en fase CR -Candidate Recommendation, candidata a recomendación- dentro delW3C. Esto quiere decir que ha sido suficientemente revisada y satisface los requisitos por sus grupos de trabajo, pero también que no se considera un estándar definitivo.Como cualquier otra novedad no funcionará en todas las versiones de navegadores sino sólo en las más modernas -excepción hecha de Internet Explorer- y además no todos sus valores estarán desarrollados, aunque sí los principales.Lo que hace esta propiedad es añadir un borde gráfico con el soporte de una imagen a cualquier tipo de elemento, permitiéndonos recortar de esa imagen la parte que nos interese y presentándola a modo debackground mediante diversos tipos de repetición. Su nomenclatura de manera abreviada es esta:border-image: url(direccion_imagen)recorte repeticion;
- direccion_imagen: la dirección de la imagen que servirá como marco; la imagen de fondo
- recorte: la porción de imagen de fondo que tomaremos en píxeles, medida desde sus extremos; lo veremos con más detalle después
- repeticion: la manera en que va a ser tratada la imagen de fondo para rellenar el espacio reservado para el borde cuando las medidas de esta y de la imagen principal no coincidan; a priori, casi siempre. Puede tomar estos cuatro valores:
- stretch: se escala la imagen de fondo (deformándose)
- repeat: se repite la imagen de fondo igual que hace background
- round: idem pero si con un número entero de repeticiones no se rellena del todo, los trozos se redimensionarán
- space: idem pero si con un número entero de repeticiones no se rellena del todo, se aumentarán los espacios, no deformando la imagen de fondo
Aunque en los ejemplos seguiremos usando la forma abreviada, los distintos apartados de este post irán precedidos con el título de la propiedad específica que desarrollemos. Empezamos por...border-image-source
Esta propiedad hace sólo referencia a la imagen que usaremos de fondo. No requiere mucha explicación pues sólo es necesario añadirURL y entre paréntesis la dirección de dicha imagen.El CSS necesario para enmarcar con una clase que llamaremos en este ejemploborderimg1sería este:.borderimg1 img {border: 60px solid black;border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwzGtUwiRJ0seyYpHfiSfWKh7MUFgC6svQTl5b795f7VrFysvyDjdU-5cLJxDqnntbVpv2IGuk7S4KaqlrCtYIuL5y8oKsDRu7agqU_lLrjylXZ_lfee5J3BWk-jl77l82EWfMSm80tygH/s1600/marco300.gif) 36 stretch;}
border-image-repeat
Lo que hemos llamado al principiorepetición, se controla individualmente con la propiedadborder-image-repeat. En el esquema inicial hemos indicado que existían cuatro posibilidades. Como el anterior borde lo montamos constretch, veamos ahora qué ocurre si usamosrepeat:¿Nada? No. Lo que ocurre es que el marco por estar hecho en un color plano (sin degradados) y con tanta floritura, se presta a que los empalmes no sean demasiado evidentes y sirva esto de aviso para que se usen los distintos modos de repetición según el tipo de imagen de fondo que se escoja.Con una de mayor tamaño elrepeat no hubiera actuado y no habría existido diferencia constretch. Tampoco se hubiera deformado tanto perdiendo precisión y es que aquí, el tamaño sí importa.En el ejemplo usé un fondo con un ancho sensiblemente menor al de la imagen principal para poder ilustrar lo anterior, pero lo razonable hubiera sido usar una imagen mayor que las que pensaba enmarcar.En esta captura comparativa se puede ver con detalle qué ha ocurrido (arriba constretch- abajo conrepeat):Cuando se indica un solo valor, el modo de repetición se aplica simultáneamente en horizontal y vertical, pero también se pueden poder dos valores para que esto funcione de manera independiente.En caso de indicar dos valores distintos, el primero se aplicará a los bordes horizontales (arriba-abajo) y el segundo a los verticales (izquierda-derecha). Con esta imagen con la que W3C ilustra estos valores de repetición, seguramente se vea más claro: | |  |
stretch | | repeat |
 | |  |
stretch repeat | | repeat stretch |
Las otros dos valores (round yspace) no he podido probarlas en los navegadores de los que dispongo, asumiendo estos siempre el valor por defectostretch.En esteejemplo interactivo de Nora Brown Design podéis experimentar online con los resultados de realizar distintas variaciones de estos valores sobre cinco fondos distintos.border-image-slice
Habréis observado que las esquinas parecían ajenas a cualquier modo de repetición y esto tiene su explicación por el tratamiento que sobre las imágenes de fondo ofrece elrecorte que al principio del todo mencionaba. Esto lo hace la propiedad denominadoborder-image-slice, que he dejado para el final porque normalmente es la menos sencilla de entender.En el ejemplo hemos usado una sola dimensión (36), pero también se puede indicar de manera independiente para las cuatro direcciones (arriba-derecha-abajo-izquierda), de manera similar a como lo hacemos enmargin opadding.Como veis en el dibujo de la derecha, ese 36 ha recortado la imagen de fondo de manera que por todo el perímetro se han tomado 36px. Esto ha podido ser así porque esa imagen esta diseñada ex-profeso para que los cuatro lados tengan el mismo ancho.Sin embargo no siempre es así y a veces necesitamos o queremos usar una imagen bastante menos regular, por ejemplo la siguiente (aquí redimensionada al 25% de su tamaño real).En ese caso necesitaríamos individualizar los recortes según la dirección y siguiendo con esta imagen, hemos decidido que la parte que nos interesa es 39px por arriba, 20px por la derecha, 44px por abajo y 17px por la izquierda. Además queremos que el borde tenga un ancho arriba y abajo de 30px y por los laterales de sólo 10px.La forma de indicarle al navegador esto sería:.borderfilm img {border-width: 30px 10px;border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgGClb8Rghp7P8AlOdHnVezbnwNdSQb9659dCSB4BWWGZberMZY79-xIydgyiPJ3MHyoMSMtWULtXXEzZRW4nr5ExleybQHzSSLLT_S4Qn3ev8BttXqfHEkuDvhMfH2fuCeeuZAMo1XqFQE/s1600/film.jpg)39204417 stretch;}
Esquemáticamente, esto es lo que produciría en la imagen esos valores para elslice deborder-image:Y este sería el resultado de aplicarlo a una imagen. Comparando podréis comprobar cómo se correlacionan los recortes en el esquema con los mostrados en el borde de la imagen y como los bordes horizontales y verticales tienen el ancho indicado porborder:Y en este punto ya podemos volver al tema de las esquinas. Inicialmente podíamos pensar que sólo crearíamos 4 recortes, uno para cada lado, pero realmente lo que creamos con cuatro líneas es un bonito tablero de 3 en raya con nueve secciones.Las cuatro esquinas siempre serán respetadas tal cual estén en la imagen original y sólo se redimensionarán en función del ancho de borde elegido. Si hacemos coincidir este con el tamaño del recorte saldrán idénticas. Si es mayor se extenderán proporcionalmente y si es menor, a la inversa.Este otro gráfico que encontré enOnextrapixel creo que resume bastante bien cómo funciona todo esto. La forma en que se disponen los círculos rosas sería para la opciónrepeat de la propiedad. Si se hubiera construído simulando unstretch, veríamos en los lados un sólo óvalo muy estirado.Para el que no se haya percatado, los valores en píxeles van sin la unidad de medida (px), ya que esta propiedad está definida así.También se admiten valores en % que producirían los cortes siguiendo los porcentajes indicados sobre el ancho/alto total. En elejemplo interactivo mencionado en el anterior apartado también se puede experimentar con esto.Nótese que un ancho del 50% nos daría sólo cuatro porciones y que el valor 100% nos daría sólo una.
.borderimg img {border-width: 60px;border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjNIeThmOAJ_0ElDGVPExtJRxCGETEEcReBe9Cv42JN-IhimC0nrWk70EkaClA-mez4ZJoxKJ1SY698ogNPWzxClFp0JjmFYLzM5D8FNir0RDkoI24V-dWzLQy8SpTCKNxCCdwwlXug5Bae/s400/florituras.jpg) 70 stretch;}
 |  |
Con estas nuevas propiedades siempre es conveniente usar los kits de compatibilidad de los diferentes navegadores:.marcocss3 img {border-width: 78px;-webkit-border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQA7IM0MhJZcvcK5zqAMn_2CsUt70BneuOUe6f-0jZWzBIm5aKxsC2hQPmzwTBgsg6zfHJpS_ciU_R24pDOAjKJo5WUPhGUxJ27E-mY11_CXoUekKxCyMRPfN-7wB7zOkqZqiDZg7VzZJP/s1600/marco.png) 78 stretch;-moz-border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQA7IM0MhJZcvcK5zqAMn_2CsUt70BneuOUe6f-0jZWzBIm5aKxsC2hQPmzwTBgsg6zfHJpS_ciU_R24pDOAjKJo5WUPhGUxJ27E-mY11_CXoUekKxCyMRPfN-7wB7zOkqZqiDZg7VzZJP/s1600/marco.png) 78 stretch;border-image: url(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQA7IM0MhJZcvcK5zqAMn_2CsUt70BneuOUe6f-0jZWzBIm5aKxsC2hQPmzwTBgsg6zfHJpS_ciU_R24pDOAjKJo5WUPhGUxJ27E-mY11_CXoUekKxCyMRPfN-7wB7zOkqZqiDZg7VzZJP/s1600/marco.png) 78 stretch;}
Más información sobre la propiedadborder-image en W3C y aquí ungenerador online con el mismo nombre que la propiedad.Donate Car To Charity CALIFORNIA DONATE CAR FOR TAX CREDITDONATE CARS IN MADONATE YOUR CAR SACRAMENTOHOW TO DONATE A CAR IN CALIFORNIA DONATE YOUR CAR FOR KIDS,CAR INSURANCE QUOTES COLORADO ,NUNAVUT CULTURE,DAYTON FREIGHT LINESHARDDRIVE DATA RECOVERY SERVICES,DONATE A CAR IN MARYLAND,MOTOR REPLACEMENTS,CHEAP DOMAIN REGISTRATION HOSTING,DONATING A CAR IN MARYLANDMundial Football history FIFA World Cup,smart,huge/big,scienciemedia,blog spot and amazes,unites pero for you gives ,, inspires and future now help and pero mas aya del visita and Mesothelioma law firm CHEAP CAR INSURANCE IN VIRGINIA,Selling annuity payments for cashSelling annuity payments for cash,Sell my structured settlement,Sell structured settlement,Structured settlement,Structured settlement companies,Sell my annuity payments lump sum,Car accident lawyer Denver,Accident injury attorneys,Sell my annuity