Propiedades css3
Propiedades css3
Propiedades css3
Propiedades CSS3
CSS3 se ha dividido en "módulos". Contiene la "antigua especificación CSS" (que
se ha dividido en piezas más pequeñas). Además, se añaden nuevos módulos.
Bordes redondeados
Los bordes podrán ser redondos con posibilidad de indicar el radio de curvatura.
Si especifica sólo un valor para la propiedad border-radius, este radio se
aplicará a las 4 esquinas. Sin embargo, puede especificar cada esquina por
separado si lo desea:
#rcorners4 {
border-radius: 15px 50px 30px 5px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners5 {
border-radius: 15px 50px 30px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
#rcorners6 {
border-radius: 15px 50px;
background: #73AD21;
padding: 20px;
width: 200px;
height: 150px;
}
<p>Four values - border-radius: 15px 50px
30px 5px:</p>
<p id="rcorners4"></p>
<p>Three values - border-radius: 15px 50px
30px:</p>
<p id="rcorners5"></p>
<p>Two values - border-radius: 15px
50px:</p>
<p id="rcorners6"></p>
Border-image: --valores--;
En realidad border-image es el método shorthand de las propiedades:
• border-image-source
• border-image-slice
• border-image-width
• border-image-ouset
• border-image-repeat
Así que vamos a ver cada una de las propiedades que forman a border-image.
border-image-source
Esta propiedad la utilizamos para establecer la ruta de la imagen que vamos a
establecer como fondo del borde, puede ser una ruta absoluta o relativa.
Utilizamos la función url() y como argumento colocamos la ruta especifica.
O también podemos colocar el valor none, y se mostrará el borde del elemento por
defecto.
#elemento{
border-image-source: url(imagen-borde.png);
Otra cosa también que debemos de tener en cuenta es que tenemos que definir la
propiedad borde como base de la propiedad border-image.
#elemento {
margin: 100px auto;
height: 150px;
width: 150px;
border: 30px solid;
border-image-source: url(http://tutosytips.com/wp-
content/ejemplos/border-image.png);
}
Si solo definimos border-image-source como en el código
CSS anterior obtendremos:
border-image-slice
#elemento{
border-image-slice: /* Valor */);
}
Lo que hace esta propiedad es dividir o cortar la
imagen que especificamos en border-image-source en 9
partes. En las 4 esquinas de la imagen, los 4 lados y
la parte central de la imagen.
En esta propiedad podemos especificar como valores:
Números: Representa píxeles para imágenes de mapa de bits y para las imágenes
vectoriales coordenadas.
Fill: Esta palabra clave obliga al uso de la corte de la imagen central para que
se muestre como fondo del elemento.
Inherit: Es una palabra clave que indica que los cuatro valores se heredan de
elemento calculado del valor de sus padres.
Una vez definamos el valor a utilizar podemos utilizar Hasta cuatro valores
diferentes se pueden especificar, en el siguiente orden: top, right, bottom,
left.
#elemento {
margin: 100px auto;
height: 150px;
width: 150px;
border: 30px solid;
border-image-source: url(border-image.png);
border-image-slice: 30 20 30 20;
}
border-image-width
border-image-width: /*valor*/ ;
Con border-image-width determinamos el ancho de la imagen que se está aplicando
al borde del elemento. El valor de esta propiedad lo podemos especificar en
cualquier medida de longitud ya sea relativa o absoluta, si utilizamos
porcentajes (%) el valor se aplicara a la anchura y altura de la zona del borde
border-image-repeat
border-image-repeat: /*Valor*/ ;
Stretch: que hace estirar la imagen para ocupar y llenar todo el espacio del
borde.
Repeat: va a repetir los cortes para llenar y ocupar todo el espacio del borde.
Round: con este valor lo que hacemos es que los cortes de la imagen del borde se
distribuyan en el espacio que le genera el borde llenándolo todo.
Space: hace casi igual lo que hace round, solo que esta vez lo que se va a
distribuir para llenar el borde son los espacios y no los cortes de la imagen.
border-image-outset
border-image-outset: /* valor */ ;
Esta propiedad nos ayuda a especificar hasta que punto fuera del elemento y del
borde del elemento padre se debe de colocar la imagen aplicada en el border-
image-source. Es decir cuánto espacio hacia a afuera debe de haber entre el
elemento y la imagen del borde.
Podemos indicar cualquier valor ya sea relativo o absoluto.
#elemento {
margin: 100px auto;
height: 150px;
width: 150px;
border: 10px solid;
border-image-source: url(border-image.png);
border-image-slice: 40;
border-image-width: 20px;
border-image-outset: 40px;
background: #75c8d3;
}
Seguimos con el mismo ejemplo y esta vez le decimos que aleje el border-image
40px desde su lugar inicial en su elemento padre con la propiedad border-image-
outset: 40px;
border-image (Shorthand)
Y por último, decir que podemos reunir todas las propiedades anteriores en una
sola declaración, y esto lo hacemos dentro de la propiedad border-image:;
La propiedad abreviada:
#elemento {
margin: 100px auto;
height: 150px;
width: 150px;
border: 10px solid;
background: #75c8d3;
border-image: url(http://tutosytips.com/wp-
content/ejemplos/border-image.png) 40 / 20px / 40px
stretch;
}
Fondos:
background-image
Entre las principales características destacan que se podrá agregar múltiples
fondos a un objeto. La declaración de la propiedad es la misma de la anterior
versión de css, solo que ahora añadimos múltiples imágenes a la propiedad
background-image y la separamos por medio de comas.
div{
height:400px;
width: 635px;
background-image:
url(sol.png),
url(vaca.png),
url(paisaje.jpg);
background-repeat: no-
repeat;
background-position:
left top,
right bottom,
0 0;}
background-size
Cover: Escala la imagen para el tamaño más pequeño de tal manera que su anchura
y su altura puede caber dentro del área de contenido.
Contain: Escala la imagen al tamaño más grande de tal manera que su anchura y su
altura puede caber dentro del área de contenido.
div{
height:400px;
width: 635px;
background:url(paisaje.jpg)
0 0 no-repeat;
background-size: 50% 400px;
border: 1px solid #777;
}
Con esa regla el resultado seria
el siguiente:
Background-origin
Background-clip
Colores
CSS admite nombres de color, hexadecimal y colores RGB.
Además, CSS3 también introduce:
Colores HSLA #p3 {background-color: hsla(120, 100%, 25%, 0.3);} /* dark green with opacity */
Gradientes
Esta propiedad permite definir fondo con gradientes, lineales y radiales. Para
ello necesitaremos definir una dirección, un color y luego diferentes “paradas”
que seran los colores hacia los que se harán los gradientes:
Ejemplos lineales:
* de izquierda a derecha:
#grad {
background: red; /* para navegadores que no lo soportan */
background: -webkit-linear-gradient(left, red , yellow); /* For Safari 5.1 to
6.0 */
background: -o-linear-gradient(right, red, yellow); /* For Opera 11.1 to 12.0
*/
background: -moz-linear-gradient(right, red, yellow); /* For Firefox 3.6 to 15
*/
background: linear-gradient(to right, red , yellow); /* Standard syntax */
}
usar ángulos
background: linear-gradient(-90deg, red, yellow);
múltiples paradas
background: linear-gradient(red, yellow, green);
transparencias
background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1));
Ejemplos radiales:
#grad {
background: red; /* para navegadores que no lo soportan */
background: -webkit-radial-gradient(red, yellow, green); /* Safari 5.1 to 6.0
*/
background: -o-radial-gradient(red, yellow, green); /* For Opera 11.6 to 12.0
*/
background: -moz-radial-gradient(red, yellow, green); /* For Firefox 3.6 to 15
*/
background: radial-gradient(red, yellow, green); /* Standard syntax */
}
Sombras
Podemos definir sombras, tanto para texto, text-shadow como para cajas, box-
shadow.
text-shadow
El primer valor define el valor horizontal y el segundo el vertical. El tercer
valor corresponde al difuminado, y el cuarto al color. Estos valores son
optativos.
h1 {
color: white;
text-shadow: 2px 2px 4px
#000000;
}
box-shadow
De igual manera que con text-shadow
div {
box-shadow: 10px 10px 5px grey;
}
Texto
CSS3 contiene varias nuevas características:
Desbordamiento de texto
Ajuste de línea
Ruptura de palabras
La propiedad de desbordamiento de texto CSS3 especifica cómo se debe señalar al
usuario el contenido desbordado que no se muestra (se ha de acompañar con
overflow:hidden;).
Se puede recortar:text-overflow: clip;
O se puede representar como una elipsis (...):text-overflow: ellipsis;
Fuentes
Con css podemos importar fuentes y renombrarlas para un uso más semántico. Para
ello deberemos importar la fuente.
@font-face {
font-family: myFirstFont;
src: url(sansation_light.woff);
}
div { font-family: myFirstFont; }
Residimensionar
Contornos
Estructura multi-columna
Ahora será más sencillo crear diseños con múltiples columnas sin etiquetas
adicionales. En el primer ejemplo, vemos la implementación de esta opción en la
versión actual de CSS. Para este caso, debemos crear dos clases CSS y dos
objetos DIV para simular la multi-columna.
<div class="entry-content">
<div class="col first"> </div>
<div class="col"> </div>
</div>
.entry-content .col {
float: left;
width: 467px;
margin-left: 30px;
height: 300px;
background:gray; }
.entry-content {
column-count: 2;
column-gap: 30px;
}
.newspaper {
-moz-column-count: 3; /* Firefox */
column-count: 3;
column-gap: 40px;
Transiciones
Con esta nueva propiedad de CSS3 vamos a poder aplicar efectos de transiciones
para cambiar de un estilo a otro sin tener que utilizar la tecnología flash o
Javascript, solamente CSS3.
Primero tienes que saber que esta propiedad no es acogida por los navegadores de
una manera estándar, si no que vamos a tener que utilizar los prefijos de cada
navegador.
la utilizamos para listar las propiedades que se cambiarán, ya sea una o varias
separadas por comas.
transición. Esta propiedad cuenta con varios valores de comportamiento, que son
los siguientes:
Veamos un ejemplo de cada uno de los valores donde aplicamos a cada barra un
valor diferente, Claro que debemos asignarle los prefijos de cada navegador
Estas propiedades también tienen una forma acortada o resumida para declarar
todas o algunas de ellas lo que llamamos (Shorthand), que lo que hacemos es
combinar las 4 propiedades, que seria algo asi.
Animaciones
Las animaciones CSS3 permiten la animación de la mayoría de los elementos HTML
sin usar JavaScript o Flash!
¿Qué son las animaciones CSS3?
Puede cambiar la cantidad de propiedades CSS que desee, tantas veces como desee.
La regla @keyframes
Cuando se especifican estilos CSS dentro de la regla @keyframes, la animación
cambiará gradualmente del estilo actual al nuevo estilo en determinados
momentos.
@keyframes ejemplo {
from {background-color: red;}
to {background-color: yellow;}
}
/* El elemento al que se le aplica la animación */
div {
width: 100px;
height: 100px;
background-color: red;
animation-name: ejemplo;
animation-duration: 4s;
}
Nota: Si la propiedad animation-duration no está especificada, la animación no
tendrá ningún efecto, ya que el valor predeterminado es 0.
/* El código de la animación */
@keyframes example {
0% {background-color: red;}
25% {background-color: yellow;}
50% {background-color: blue;}
100% {background-color: green;}
}
Hacer que la animación se ejecute primero hacia adelante, luego hacia atrás y
luego hacia delante animation-direction: alternate;
Propiedad abreviada
div {
animation-name: example;
animation-duration: 5s;
animation-timing-function: linear;
animation-delay: 2s;
animation-iteration-count: infinite;
animation-direction: alternate;
div {
Imágenes
Una muestra de lo que se puede hacer con imágenes con un poco de ingenio.
Una imagen como link y aplicando una transición al borde durante el hoover:
a {
display: inline-block;
border-radius: 4px;
padding: 5px;
transition: 0.3s;
Imágenes responsivas:
img { max-width: 100%; height: auto; }
Filtros en imágenes:
La propiedad de filtro CSS agrega efectos visuales (como desenfoque y
saturación) a un elemento.
Ejemplo, cambiar el color de todas las imágenes a blanco y negro (100% gris):
img {
filter: grayscale(100%);
Transformaciones 2D
La propiedad Transform en CSS3 nos va a permitir hacer cambios a los objetos del
documento al que le apliquemos este estilo, esta propiedad nos va permitir hacer
las siguientes transformaciones a los elementos: translate (traducir), rotate
(rotar), scale (escalar) o skew (sesgar), efectos que antes era imposible hacer
con css y para usarlos en la web teníamos que utilizar flash o javascript. Bueno
damos gracias que ya CSS3 podemos hacer estas funciones. Bueno antes de comenzar
miremos el soporte de cada navegador sobre esta propiedad.
translate
o Transformación de Posición:
Esta propiedad de CSS3 nos permite mover elementos a la izquierda, derecha,
arriba o abajo mediante la función translation, esta función es similar al
comportamiento de position que trabajábamos en css2: position: relative; donde
se declaraba su posición en superior e izquierdo por ejemplo. Cuando se emplea
una función de Translation a un objeto lo podemos mover sin afectar el flujo de
trabajo del documento.
transform: translate(x,y);
Esta función también la podemos usar con valores negativos, es decir (x,y) = (-
30px , -10px), y así podemos darle la ubicación deseada.
scale
o Transformación de Escala:
Otra función de la propiedad transform es scale, esta función nos va a permitir
escalar un elemento tanto horinzontal como verticalmente entorno a su origen y
lo hacemos por medio de su (x,y ).
rotate
o Transformación de Rotación:
Otra gran novedad de CSS3, esta función nos va a permitir rotar ya sea un texto,
un div u otro elemento del documento HTML, solamente tenemos que indicar los
div {
background: #ccc;
box-shadow: 2px 2px 3px #777;
margin: 0 auto;
transform: rotate(10deg);
-moz-transform: rotate(10deg);
-ms-transform: rotate(10deg);
-o-transform: rotate(10deg);
-webkit-transform: rotate(10deg);
width: 350px;
}
h1{
transform: rotate(15deg);
-moz-transform: rotate(15deg);
-ms-transform: rotate(15deg);
-o-transform: rotate(15deg);
-webkit-transform: rotate(15deg);
}
y este codigo HTML: <div> <h1>Transform – Rotate</h1> </div>
skew
o Transformación de Inclinación:
Esta función nos va a permitir inclinar o aplicar un tipo de perspectiva a un
elemento en el documento HTML, como los demás tenemos que especificar las
coordenadas de sus ángulos para su inclinación, (X, Y) el primero X que se
aplica Horizontalmente y Y que se aplica verticalmente.
Transformaciones 3D
El cuadrado de
la izquierda
muestra los ejes
x e y en un
entorno 2D, y el
cubo de la
derecha
incorpora el eje
z en un entorno
3D.
• perspective
• perspective-origin
• transform-style
• backface-visibility
• transform (Esta propiedad contiene las funciones que nos permitirán rotar,
escalar, mover, sesgar, los elementos tanto en entornos 2D como 3D.)
Perspective
sintaxis
perspective: longitud|none;
.contenedor {
perspective: 600px;
-webkit-perspective: 600px; /* Chrome, Safari, Opera */}
En el gráfico anterior podemos ver varias cosas, primero el papel que juega el
eje Z y segundo que mientras menor sea el valor que indiquemos en la perspectiva
mayor profundidad visual tendremos en los elementos y entre mayor valor menor
profundidad y mas llana será las modificaciones tridimensionales.
Perspective-origin
sintaxis
perspective-origin: eje-x eje-y| valor_inicial | heredado;
Define el origen base donde un elemento 3D basa sus ejes X e Y y por ende
determina la posición del observador. Su valor inicial es 50% 50% lo que sitúa
el punto origen en el centro del elemento.
Esta propiedad define dos valores, uno para el eje X y el otro para el eje Y, en
ellos podemos colocar valores porcentuales que definirán un punto en el elemento
o colocar las palabras claves top, right, bottom, left o center para definir los
lados o esquinas del elemento.
Por ejemplo:
.contenedor {
perspective-origin: 0 0; /* top left */
}
.contenedor {
perspective-origin: 50% 0; /* top center */
}
.contenedor {
perspective-origin: 100% 0; /* top right */
}
Recordemos que en los dos valores que podemos colocar en su argumento vamos a
especificar primero el origen X y el segundo valor es para el eje Y.
transform-style
sintaxis
transform-style: flat|preserve-3d;
Veamos un ejemplo, tenemos este HTML básico con un div principal y dos divs
anidados, con sus respectivos estilos:
<div class=”padre”>
<div class=”hijo”>
<div class=”nieto”>
</div>
</div>
</div>
.padre {
perspective: 300px;
}
hijo {
transform: rotateX(45deg);
}
.nieto {
transform: rotate(20deg); /* No se vera afectado por el entorno 3D */
}
El elemento con clase .nieto no se verá afectado por que no es hijo directo del
elemento que tiene la perspectiva. Pero si aplicamos la propiedad transform-
style y como valor preserve-3d En el elemento hijo, este preservará el entorno
3D que hereda de su elemento padre para así poder afectar el elemento nieto.
.padre {
perspective: 300px;
}
.hijo {
transform: rotateX(45deg);
transform-style: preserve-3d;
}
.nieto {
transform: rotateX(20deg); /* Ahora si tendrá modificaciones 3D */
}
backface-visibility
sintaxis
backface-visibility: visible|hidden;
posterior de un elemento va a ser mostrado cuando este sea girado, sus valores
son hidden y visible ( que es valor por defecto ) y hace que se muestre la parte
posterior del elemento.
Y ahí es donde
aprovechamos para mostrar otro elemento con un lado con una imagen o contenido
diferente, lo que conocemos como el efecto “flip” en CSS3. Ver aquí su
resultado http://codepen.io/tutosytips/pen/kfjal.
Box-Sizing
La propiedad box-sizing se usa para modificar las propiedades por defecto del
CSS box model que calculan el alto y el ancho de los elementos . De hecho es
posible usarla para emular el comportamiento de los navegadores que no soportan
las especificaciones del CSS box model.
Se aplica a todos a todos los elementos que acepten la propiedad width no siendo
heredable. Puede adoptar diferentes valores:
content-box
padding-box
border-box
El width y el height incluyen el padding y el border, pero no el margin.
Volviendo al primer ejemplo, si usaramos border-box en el elemento .box
{width: 300px; border: 10px solid black; padding: 10px; -moz-box-sizing:
border-box; box-sizing: border-box; } tendrá un width de 300px después de
ser interpretado por el navegador.
Como ejemplo, teniendo los siguientes estilos que se aplican sobre estos
elementos html:
Cajas flexibles
Display:flex
.flex-item {
background-color: cornflowerblue;
width: 100px;
height: 100px;
margin: 10px;
}
flex-direction
El siguiente ejemplo muestra el resultado del uso del valor de fila inversa:
.flex-item {
background-color: cornflowerblue;
width: 100px;
height: 100px;
margin: 10px;
}
.flex-item {
background-color: cornflowerblue;
width: 100px;
height: 100px;
margin: 10px;
}
Justify-content
Ejemplos al utilizar los diferentes valores soobre estos elementos con estas
reglas:
align-items
Ejemplos al utilizar los diferentes valores sobre los elementos del ejemplo
anterior:
flex-wrap
Ejemplos al utilizar los diferentes valores sobre los elementos del ejemplo
anterior aplicando también un height de 100px a .flex-item:
align-content
Orden
.first {
-webkit-order: -1;
order: -1;
}
Margen
Centrado perfecto
Alineado
Propiedad flex
Las consultas de medios se pueden utilizar para comprobar muchas cosas, tales
como:
El uso de consultas de medios es una técnica popular para entregar una hoja de
estilos adaptada a tabletas y teléfonos.
Sintaxis
Una media query consiste en un tipo de medio que puede contener una o más
expresiones, que se resuelven a true o false.
A menos que utilice los operadores not o only, el tipo de medio es opcional y el
tipo all se usará por defecto.
Ejemplos:
Una forma de usar consultas de medios es tener una sección CSS alternativa
dentro de su hoja de estilo.
@media screen and (max-width: 699px) and (min-width: 520px), (min-width: 1151px)
{
ul li a {
padding-left: 30px;
background: url(email-icon.png) left center no-repeat;
}
}
Selectores:
CSS3 introduce algunos selectores avanzados:
http://www.tutosytips.com/