curso html 5 & jquery - leccion 10

63
HTML

Upload: emmanuel-ortiz-gutierrez

Post on 14-Apr-2017

144 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: Curso HTML 5 & jQuery - Leccion 10

HTML

Page 2: Curso HTML 5 & jQuery - Leccion 10

CSS

Sombras

Page 3: Curso HTML 5 & jQuery - Leccion 10

La estructura de las sombras aplicadas a cajas (box-shadow) o a texto (text-shadow) tiene 4 valores : DesplazamientoHorizontal DesplazamientoVertical Difuminado Color.

EjemploBox-shadow: 3px 6px 2px black;Box-shadow: 3px -6px 2px black;Box-shadow: -20px -15px 20px black;

Text-shadow: 0px 0px 25px #80ff00; Si no posee desplazamiento horizonta y vertical pero si tiene

un difuminado grande y colo claro en fondo oscuro, creamos un efecto de brillo

Sombra - Efecto Brillo

Page 4: Curso HTML 5 & jQuery - Leccion 10

Añadiendo el valor "inset" como primer valor del conjunto box-shadow seguido de la estructura común, establecemos la sombra de forma interna en el elemento al que se la queramos asignar.

EjemploBox-shadow: inset 10px 10px 5px gray;

Recomendación:◦ Valores horizontales y verticales pequeños◦ Valores difuminado mayor

Sombreado Interno

Page 5: Curso HTML 5 & jQuery - Leccion 10

Para usar múltiples sombras aplicadas al mismo elemento solo hay que separar cada sombra con una coma (,) y respetar la estructura básica.

Ejemplotext-shadow: 1px 1px 0px #585858,

2px 2px 0px #585858,3px 3px 0px #585858,4px 4px 0px #585858,5px 5px 0px black;

Efectos 3D

Page 6: Curso HTML 5 & jQuery - Leccion 10

CSS

Transformaciones

Page 7: Curso HTML 5 & jQuery - Leccion 10

Estructura◦ Transform: tipo(cantidad)◦ Transform: tipoX(cantidad)◦ Transform: tipoY(cantidad)◦ Transform: tipo(cantidadX, cantidadY)

Estructura y sintaxis

Page 8: Curso HTML 5 & jQuery - Leccion 10

Rotar caja.

SintaxisTransform: rotate();

Rotar teniendo como posición origen el centro del elemento Ejemplo

◦ Transform: rotate(10deg);

Rotar teniando como posicion origen esquina superior izquierda Ejemplo

◦ Transform-origin: left top;◦ Transform: rotate(10deg);

Transformación - Rotate

Page 9: Curso HTML 5 & jQuery - Leccion 10

Deformar la caja .

SintaxisTransform: skew();

Por defecto se aplica en sentido horizontal. Ejemplo

◦ Transform: skew(5deg);◦ Transform: skewX(5deg);◦ Transform: skewX(-5deg);◦ Transform: skewY(5deg);◦ Transform: skewX(5deg) skewY(10deg);◦ Transform: skew(5deg, 10deg);

Transformación - Skew

Page 10: Curso HTML 5 & jQuery - Leccion 10

Incrementar el tamaño de la caja.

SintaxisTransform: scale();

Ejemplo◦ Transform: scale(0.5);◦ Transform: scaleX(0.5);◦ Transform: scaleY(0.5);◦ Transform: scale(0.5, 0.8);

Transformación - Scale

Page 11: Curso HTML 5 & jQuery - Leccion 10

Trasladar un elemento de la pagina.

SintaxisTransform: translate();

Por defecto se aplica en sentido horizontal. Ejemplo

◦ Transform: translate(10px);◦ Transform: translateX(10px);◦ Transform: translateX(-10px);◦ Transform: translateY(10px);

Transformación - Translate

Page 12: Curso HTML 5 & jQuery - Leccion 10

Si se define valores diferentes para un mismo atributo, el CSS reconoce como valido el ultimo definido.◦ Transform: rotate(10deg);◦ Transform: skew(5deg);

Para que CSS reconozca todas las variaciones se deben colocar una a continuación de la otra separadas por espacio, no por coma.◦ Transform: rotate(10deg) skew(5deg) translate(-

5px) scaleX(0.8);

Combinar Transformaciones

Page 13: Curso HTML 5 & jQuery - Leccion 10

CSS

Transiciones

Page 14: Curso HTML 5 & jQuery - Leccion 10

A que atributos deseamos aplicar la transición?Transition-property: all;

Cuanto tiempo va a tardar la transición en completarse?Transition-duration: 1s

Cual es la progresión que toma la transición?Transition-timing-function: linear; (todo con la misma velocidad)Valores de aceleración

◦ Ease◦ Ease-in◦ Ease-out◦ Ease-in-out

Cuanto retardo se desea aplicar para comenzar la transicion?Transition-delay: 1s;

Aplicar todas las transiciones en una sola línea.Transition: all 0.3s ease 0.2s;

Div:hover{Transition: all 0.3s ease 0.2s;}

Sintaxis

Page 15: Curso HTML 5 & jQuery - Leccion 10

CSS

Animaciones Keyframe

Page 16: Curso HTML 5 & jQuery - Leccion 10

Los valores de la animación son: ◦ animation-name: indica el nombre que tendrá el keyframe que

se añadirá a continuación◦ animation-duration: tiempo total de la animación◦ animation-iteration-count: veces que se repetirá. Para que sea

en bucle pondremos el valor "infinite" (en el video el nombre de esta propiedad lo dije mal).

◦ animation-delay: retardo con el que comenzará a aplicarse la reproducción de la animación

EjemploDiv:hover{Animation: nombre 1.5s 1}

Valores de la Animación

Page 17: Curso HTML 5 & jQuery - Leccion 10

@keyframe nombre{0%{Transform: sacle(0.5);}50%,80%{Background: yellow;}60%{Background: green;}

}

Keyframes

Page 18: Curso HTML 5 & jQuery - Leccion 10

@keyframe nombre{from{

Transform: rotate(30deg);}

to{ Transform: translate(20px);}

}

Keyframes

Page 19: Curso HTML 5 & jQuery - Leccion 10

CSS

Filtros de Imágenes

Page 20: Curso HTML 5 & jQuery - Leccion 10

Si no saben manejar Photoshop o cualquier otro editor gráfico y desean dar efectos a las imágenes para sus sitios webs, pueden aplicar filtros a imágenes con CSS3 sin tener que hacer nada en la imagen que quieren usar. Simplemente con una sola línea de código CSS pueden aplicar sus efectos a las imágenes, sin saber diseño gráfico, sin saber programar.

En los siguientes ejemplos verán la imagen original sin ningún efecto aplicado y a continuación cómo quedaría esa imagen tras aplicarle el efecto fotográfico con CSS.

Efectos Fotográficos

Page 21: Curso HTML 5 & jQuery - Leccion 10

Efecto Desenfoque

Page 22: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="desenfoque">    <img src="imagen.jpg"

class="blur" alt=""> </figure> Código CSS:-webkit-filter: blur(Npx); figure .blur{   -webkit-filter:

blur(1.3px); } Se recomienda usar cantidades de píxeles no superiores a 4,

ya que el efecto resultante es tal que puede desconcertar al usuario al no quedar absolutamente nada claro qué es lo que hay en esa zona de la página en la que nosotros queremos que haya una imagen distorsionada. Pero eso lo sabes tú, el resto verá un borrón y no entenderá que ocurre, por eso si quieres usar diferentes grados de desenfoque en cantidades entre 0 y 4 puedes valerte de decimales

Efecto Desenfoque

Page 23: Curso HTML 5 & jQuery - Leccion 10

Efecto Brillo

Page 24: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="brillo">    <img src="imagen.jpg"

class="brightness" alt=""> </figure>Código CSS:

-webkit-filter: brightness(N); figure .brightness{ -webkit-filter: brightness(1.5); }

Se recomienda usar cantidades no superiores a 3 por la misma razón que en el caso anterior.

Efecto Brillo

Page 25: Curso HTML 5 & jQuery - Leccion 10

Efecto Contraste

Page 26: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="contraste">    <img src="imagen.jpg"

class="contrast" alt=""> </figure>Código CSS:

-webkit-filter: contrast(N); figure .contrast{   -webkit-filter: contrast(1.3); }

En este caso, no hay un límite recomendado, ya que en cantidades elevadas a efectos visuales no hay diferencia entre ponerle un contrast(20) que un contrast(500), así que la cantidad que le indiques depende de lo que quieras lograr.

Efecto Contraste

Page 27: Curso HTML 5 & jQuery - Leccion 10

Efecto Escala de Grises

Page 28: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="escala_grises">    <img src="imagen.jpg"

class="grayscale" alt=""> </figure> Código CSS:-webkit-filter: grayscale(N%); figure .grayscale{   -

webkit-filter: grayscale(70%); }

Al aplicar un 100% volvemos la imagen a blanco y negro de forma absoluta en escala de grises, así que de nuevo en este efecto el porcentaje que se tenga que aplicar es en función del objetivo que se desea.

Efecto Escala de Grises

Page 29: Curso HTML 5 & jQuery - Leccion 10

Efecto Rotación de Color

Page 30: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="rota_color">    <img src="imagen.jpg" class="huerotate"

alt=""> </figure> Código CSS:-webkit-filter: hue-rotate(Ndeg); figure .huerotate{   -webkit-filter: hue-

rotate(90deg); }

Este efecto es muy interesante y para entenderlo hay que observar la rueda de color de la imagen de abajo. La explicación es la siguiente: observen como ejemplo el color rojo del símbolo de la taza de HTML5, y vean dónde se encuentra ese rojo en la rueda de color. Tras aplicarle una rotación de color de 90 grados, ésta rotación siempre se hará hacia la derecha, es decir, en el sentido opuesto a las agujas del reloj. 90 grados a la derecha en esa dirección en la rueda de color nos lleva al verde señalado. Pues bien, es ése verde el que sustituye el rojo inicial, y esa misma transformación se hace con el resto de colores.

Efecto Rotación de Color

Page 31: Curso HTML 5 & jQuery - Leccion 10

Efecto Rotación de Color

Si le aplicáramos una rotación de 180 grados, la imagen tendría los opuestos en la rueda de color.

Page 32: Curso HTML 5 & jQuery - Leccion 10

Efecto Inversión

Page 33: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="inversion">    <img

src="imagen.jpg" class="invert" alt=""> </figure>

Código CSS:-webkit-filter: invert(N%); figure .invert{   -webkit-

filter: invert(80%); }

Al aplicar un 100% logramos una inversión total en los colores (no confundir con la rotación de color del efecto anterior).

Efecto Inversión

Page 34: Curso HTML 5 & jQuery - Leccion 10

Efecto Opacidad

Page 35: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="opacidad">    <img src="imagen.jpg"

class="opacity" alt=""> </figure> Código CSS:-webkit-filter: opacity(N%); figure .opacity{   -webkit-

filter: opacity(30%); }

Este efecto que también se puede usar con CSS con "opacity: 0.3;" puede utilizarse como filter usando porcentajes, con la misma lógica que con opacity, es decir, un 0% sería totalmente transparente y un 100% no tendría transparencia alguna.

Efecto Opacidad

Page 36: Curso HTML 5 & jQuery - Leccion 10

Efecto Saturación

Page 37: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="saturacion">    <img src="imagen.jpg"

class="saturate" alt=""> </figure> Código CSS:-webkit-filter: saturate(N); figure .saturate{   -webkit-

filter: saturate(7); }}

La saturación de una imagen es un efecto básico que debe usarse con cuidado. En este ejemplo se usa una saturación de 7, si se usaran saturaciones más elevadas la imagen comenzaría a pixelarse notoriamente, y quizás el resultado se aleje de nuestro gusto.

Efecto Saturación

Page 38: Curso HTML 5 & jQuery - Leccion 10

Efecto Sepia

Page 39: Curso HTML 5 & jQuery - Leccion 10

Código HTML:<figure id="sepia">    <img src="imagen.jpg"

class="sepia" alt=""> </figure> Código CSS:-webkit-filter: sepia(N%); figure .sepia{   -webkit-filter:

sepia(80%); }

Este efecto es uno de los que más reclamo tiene, incluso muchas cámaras fotográficas lo tienen incluido en el modo de toma de imágenes. El funcionamiento es igual que la escala de grises, pero aplicándole el toque sepia, es decir un 100% sería totalmente con escala de sepia y un 0% sería la imagen original.

Efecto Sepia

Page 40: Curso HTML 5 & jQuery - Leccion 10

Todos estos efectos pueden combinarse, pero recuerden que esta combinación ha de hacerse en una sola línea de código, es decir si quieren aplicarle a una imagen escala de grises y desenfoque, no funcionará si escriben:

◦ figure .combinacion{   -webkit-filter: grayscale(80%);   -webkit-filter: blur(2px); }

Combinaciones de efectos fotográficos con CSS3

Page 41: Curso HTML 5 & jQuery - Leccion 10

En tales casos, sólo se aplicaría el último efecto listado, es decir, el desenfoque. Por eso el modo correcto es el siguiente:

◦ figure .combinacion{   -webkit-filter: grayscale(80%)  blur(2px); }

Se deben poner todos consecutivamente sin necesidad de separarlos por comas. Pero recuerden que según como hagan las combinaciones unos efectos pueden anular a otros, es decir si por ejemplo, usan una rotación de color y después le aplican un filter sepia al 100%, lógicamente, no habrá colorido aunque hayamos hecho el efecto de rotación de color.

Combinaciones de efectos fotográficos con CSS3

Page 42: Curso HTML 5 & jQuery - Leccion 10

Algo muy interesante de estos efectos es que igualmente pueden aplicarse a videos, y también combinarse unos con otros. El código sería el siguiente:

Código HTML:<video controls width="570" height="321" class="video-

filter" id="video">    <source src="video.mp4" video/mp4; codecs="avc.h264,avc.42E01E,mp4a.40.2"/> </video>

Código CSS:.video-filter{      -webkit-filter: saturate(6) brightness(0.5); }

En este caso a un video le hemos aplicado una saturación algo elevada y un leve aumento del brillo.

Efectos de color en videos

Page 43: Curso HTML 5 & jQuery - Leccion 10

Como conclusión recuerden que el uso de estos efectos debe hacerse de forma coherente y por supuesto en la medida justa, sin abusar. Si se emplean con habilidad pueden ser muy efectivos y útiles para la navegación de usuario.

Por ejemplo, si alguna sección de su sitio web tiene diferentes partes, cada una representada por alguna imagen o logo, para saber cuál de todas las partes es la que el usuario está viendo pueden valerse de tales efectos. Las imágenes que representen las partes que el usuario no está viendo podrían quedarse desenfocadas y en blanco y negro, y la imagen de la zona visible en ese momento en color y resaltada quizás con algo de contraste. Esto mismo puede emplearse en el evento :hover.

Consejos de uso de filtros

Page 44: Curso HTML 5 & jQuery - Leccion 10

Aquí tienen un ejemplo: Código HTML:<figure id="combinado">    <img src="imagen.jpg"

class="combinaciones" alt=""> </figure> Código CSS:figure .combinaciones{   -webkit-filter: blur(2px) grayscale(100%);  

-webkit-transition: all 0.4s ease; } figure .combinaciones:hover{   -webkit-filter: blur(0px) grayscale(0%) contrast(4);   border-radius: 50%;   border: 8px solid green; }

En este caso al posar el rato en la imagen se le quita el desenfoque, también se le quita el escalado de grises y por último se le aplica un contraste y se adorna con un borde redondeado del 50% convirtiendo la imagen en un círculo, si sus dimensiones son cuadradas.

Consejos de uso de filtros

Page 45: Curso HTML 5 & jQuery - Leccion 10

Así que recuerden hacer un uso moderado de estos efectos, emplearlos teniendo en cuenta qué efecto y sensaciones provocará en el usuario.Con habilidad y buen gusto seguro que hará más cool el resultado.

Nota:Estos efectos quizás sólo funcionen al 100% en Google Chrome, con el tiempo se implementarán de forma completa en el resto de navegadores. Por eso notarán que el código css lleva el prefijo -webkit- únicamente. Cuando otros navegadores también reconozcan estos efectos simplemente habría que usarse el prefijo que correspondiese.

Consejos de uso de filtros

Page 46: Curso HTML 5 & jQuery - Leccion 10

CSS

Responsive Design

Page 47: Curso HTML 5 & jQuery - Leccion 10

Manera de orientar el cambio según el tamaño del dispositivo orientado a smartphones.

En primera instancia se debe pensar en un diseño que se adapte a dispositivos mobiles y a partir de ahí desarrollar la pagina para que tome el tamaño de pantallas mas grandes.

Mobile First

Page 48: Curso HTML 5 & jQuery - Leccion 10

Teléfonos en posición horizontal@media screen and (min-width: 480px){

Div{Backgrund: red;}

} Tablet@media screen and (min-width: 767px){

Div{Backgrund: red;}

}

Pantallas de escritorios grandes@media screen and (min-width: 950px){

Div{Backgrund: red;}

}

Responsive Design

Page 49: Curso HTML 5 & jQuery - Leccion 10

CSS

Propiedades Avanzadas

Page 50: Curso HTML 5 & jQuery - Leccion 10

Las variables CSS añaden dos nuevas funcionalidades a los archivos CSS tradicionales:◦ Permiten asignar cualquier valor a una propiedad cuyo nombre podemos elegir

libremente.◦ Permiten reutilizar esos valores en cualquier otra propiedad gracias a la función

var() Este ejemplo sencillo muestra cómo definir y usar una variable CSS::root { --color-principal: #06c; }   #foo h1 { color: var(--color-principal); } --color-principal es una propiedad CSS definida arbitrariamente por el

creador de esta hoja de estilos y cuyo valor es #06c. Aunque puedes elegir cualquier nombre para las variables, estos siempre tienen que empezar con dos guiones medios (--).

La función var() obtiene el valor de la propiedad cuyo nombre se indica y lo inserta en el lugar donde se llama a la función. De esta manera, el ejemplo anterior es equivalente a:

#foo h1 { color: #06c; }

Variables

Page 51: Curso HTML 5 & jQuery - Leccion 10

Variables – Navegadores Soportados

Page 52: Curso HTML 5 & jQuery - Leccion 10

Definición--color_principal: #FF0800;--distancia: 50px;

InvocaciónVar(--color_principal);Var(--distancia);

Variables - Sintaxis

Page 53: Curso HTML 5 & jQuery - Leccion 10

La función var() obtiene el valor de la propiedad indicada. Su sintaxis completa es la siguiente:

var(<nombre-propiedad> [, <valor-por-defecto> ]? )

El primer argumento (<nombre-propiedad>) es el nombre completo de la propiedad cuyo valor se quiere obtener. El segundo argumento (<valor-por-defecto>) es opcional y es el valor utilizado cuando la propiedad no existe.

Variables

Page 54: Curso HTML 5 & jQuery - Leccion 10

La función var() también tiene algunas limitaciones. En primer lugar, las variables no se pueden usar como nombre de la propiedad CSS. Por eso el siguiente ejemplo no es equivalente al estilo margin-top: 20px; y el navegador mostraría un mensaje de error:

.foo { --lado: margin-top; var(--lado): 20px; } Igualmente, no puedes usar el valor de una variable

como parte del valor de una propiedad. Por eso el siguiente ejemplo tampoco es equivalente a margin-top: 20px y el navegador mostraría un mensaje de error:

.foo { --separacion: 20; margin-top: var(--separacion)px; } En este último caso, la solución sería utilizar otra

función llamada calc().

Variables

Page 55: Curso HTML 5 & jQuery - Leccion 10

La función calc() es muy útil para realizar cálculos al definir los valores de las propiedades CSS. Todos los navegadores modernos la soportan sin problemas y se puede combinar con las variables CSS.

Ejemplo:.foo { --separacion: 20; margin-top: calc(var(--separacion) * 1px); }

Funcion Calc()

Page 56: Curso HTML 5 & jQuery - Leccion 10

Para empezar hay que saber que ésta propuesta viene desde Microsoft, por lo que actualmente sólo es soportado en Internet Explorer 11 y 12 y el nuevo Microsoft Edge.

Pero si somos Chrome Addicts, podemos utilizarlo en Chrome (no toda la especificación) en nuestro navegador favorito si activamos una determinada flag, vamos a ello.

Grid Layout

Page 57: Curso HTML 5 & jQuery - Leccion 10

Procura tener instalada la última versión de Chrome, y dirígete a la URL chrome://flags

Dentro de las numerosas funcionalidades que nos ofrece, debemos activar la que dice Enable experimental Web Platform features.

Después de activarla, reiniciamos Chrome y ya tendremos habilitada esa funcionalidad.

Grid Layout

Page 58: Curso HTML 5 & jQuery - Leccion 10

Con CSS Grid Layout no importa el orden que ocupen los bloques en el HTML, pues el módulo a través de sus propiedades se encarga de colocarlo en la posición que queramos.

Pero tenemos que ser prácticos y lo más habitual y recomendado es escribir el HTML en el orden semántico, de cara también a mantenibilidad, rastreo de buscadores e indexabilidad en los mismos.

https://css-tricks.com/snippets/css/complete-guide-grid/https://hacks.mozilla.org/2015/09/the-future-of-layout-with-css-grid-layouts/

Grid Layout

Page 59: Curso HTML 5 & jQuery - Leccion 10

Flexbox consiste en contenedores flexibles y elementos de flexión.

Un contenedor de flexión se declara mediante el establecimiento de la propiedad de presentación de un elemento a cualquiera de flexión (traducido como un bloque) o en línea-flex (traducido como en línea).

Dentro de un recipiente flex hay uno o más elementos de flexión.

Nota: Todo fuera de un contenedor de flexión y en su interior un elemento de flexión se representa como de costumbre. Flexbox define el número de elementos de la flexión se colocan dentro de un contenedor flexible.

https://css-tricks.com/snippets/css/a-guide-to-flexbox/http://www.w3schools.com/css/css3_flexbox.asphttps://developer.mozilla.org/es/docs/Web/CSS/CSS_Flexible_Box_Layout/Usando_las_cajas_flexibles_CSS

FlexBox Layout

Page 60: Curso HTML 5 & jQuery - Leccion 10

La propiedad flex-direction especifica la dirección de los elementos flexibles en el interior del recipiente flexible. El valor por defecto de flex-direction es la fila (de izquierda a derecha y de arriba a abajo).

Los otros valores son los siguientes:◦ row - Si el sistema de escritura es vertical, los elementos de

flexión será expuesto horizontalmente.◦ row-reverse- Si la escritura en modo (dirección) es de

izquierda a derecha, los elementos de flexión será expuesto derecha a izquierda.

◦ column - Si el sistema de escritura es horizontal, los elementos de flexión será expuesto verticalmente.

◦ column-reverse - Igual que la columna, pero a la inversa.

Flex-Dirección

Page 61: Curso HTML 5 & jQuery - Leccion 10

La propiedad flex-wrap especifica si los elementos de flexión debe envolver o no, si no hay suficiente espacio para ellos en una línea de flexión.

Los valores posibles son los siguientes:◦ nowrap - El valor por defecto. Los elementos flexibles no

envolver – Se muestran en una sola línea.◦ wrap - Los elementos flexibles se envuelva en caso

necesario – Múltiples líneas◦ wrap-invertir - Los elementos flexibles se envuelva, si es

necesario, en orden inverso – Múltiples líneas invertidas

Flex-Contenido

Page 62: Curso HTML 5 & jQuery - Leccion 10

¿Preguntas?

Page 63: Curso HTML 5 & jQuery - Leccion 10

Emmanuel OrtizConsultor [email protected]  / gtalkemmanueltizSkype