lunes, 5 de octubre de 2015

Aprende cómo hacer un formulario con Validaciones

En este tutorial crearemos un formulario con validaciones en varios de los campos y estilo usando HTML5 y CSS3. Si bien el formulario no será funcional, ya estará listo para aplicarle código serverside y manipular sus datos. Lo primero que haremos es crear el HTML básico de nuestra página. Crearemos la forma y le agregaremos varios fieldsets. Este es el código:
<!doctype html>
<html>
    <head>
        <title>Formulario HTML5 y CSS3</title>
    </head>
    <body>
        <form id="orderForm" action="" method="get">
            <h3>Formulario de Compra</h3>
            <fieldset>
                <legend>Orden</legend>
                <ul>
                </ul>
            </fieldset>
            <fieldset>
                <legend>Datos de Contacto</legend>
                <ul>
                </ul>
            </fieldset>
            <fieldset>
                <legend>Datos de pago</legend>
                <ul>
                </ul>
            </fieldset>
            <input type="submit" name="ordenar" value="Ordena ahora" />
        </form>
    </body>
</html>
A continuación agregamos el código para crear los campos que deseamos en nuestra forma (ver ejemplo). El resultado ahora es el siguiente:
Para crear esta forma si usamos varias funcionalidades nuevas en HTML5. En primer lugar nuestro input para el campo cantidad es de tipo number, eso significa que sólo aceptará números en su contenido. Este tipo de campo aún no funciona en todos los navegadores, por los momentos Safari, IE y Chrome si lo soportan, pero Firefox no. El código para crear el campo es este:
<input type="number" name="cantidad" id="cantidad" placeholder="Cantidad" required="required" min="1" max="10" maxlength="2" autofocus="autofocus" />
Aquí además del tipo usamos varios atributos nuevos en HTML5, placeholder indica el texto que los navegadores muestran en el campo cuando el usuario no ha escrito nada, requiredindica al navegador si el campo es requerido o no, min y max indican al navegador el valor mínimo y máximo que aceptará el campo.

Los tipos de input email y url también son nuevos. Indican al navegador que el valor del campo debe ser una dirección de email y un url válidos sintacticamente.
 El otro atributo nuevo en HTML5 es uno que usamos al crear el input del número de tarjeta:
<input type="text" name="tarjeta" id="tarjeta" placeholder="No. Tarjeta" required="required" maxlength="30" pattern="[\d\ ]{12,}" />
El atributo pattern indica al navegador el formato que debe tener el valor del campo, en este caso los 12 dígitos que componen un número de tarjeta de crédito.
 En el caso del último campo, la fecha de vencimiento, podríamos usar otro tipo de input nuevo:month, que muestra un calendario en el que se puede seleccionar un mes/año, sin embargo este tipo de input aún no es soportado por la mayoría de navegadores, por lo que nos quedamos con un input tipo text con un pattern definido.
 Nuestra página ahora implementa varias validaciones que antes debíamos hacer vía javascript:
Lo siguiente que hacemos es comenzar a agregar el CSS, primero damos formato a la forma en sí, con este código:
body {
  margin: 30px;
  font: 14px Tahoma, sans-serif
}

form {
  width: 35em;
  margin: 0 auto;
  padding: 50px 60px;
  overflow: auto;
  color: #3e4a49;
  background-color: #FBE080;
  border-radius: 10px;
  box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
  
  background: -webkit-gradient( linear, left bottom, left top, color-stop(0,#FBE080), color-stop(1, #C0C0C0) );
  background: -moz-linear-gradient( center bottom, #FBE080 0%, #C0C0C0 100% );  
}
De nuevo, recurrimos a atributos propios del navegador para dar el efecto de gradiente al fondo de la forma.
 El resultado, hasta ahora, es el siguiente:
Aquí incluimos atributos propios de CSS3 que ya hemos usado antes, como el border-radius y el box-shadow.
 Lo siguiente que haremos es dar formato al resto de la forma, especialmente a los campos dentro de ella. Lo hacemos con este código:
form ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

form ul li {
  margin: .9em 0 0 0;
  padding: 0;
}

form * {
  line-height: 1em;
}

form h3 {
  margin: 0 0 1.5em 0;
  padding: 0;
  text-align: center;
}

fieldset {
  padding: 0 20px 20px;
  margin: 0 0 30px;
  border: 2px solid #593131;
  background: #FAFF9E;
  border-radius: 10px;
  
  background: -webkit-gradient( linear, left bottom, left top, color-stop(0,#C0C0C0), color-stop(1, #FBE080) );
  background: -moz-linear-gradient( center bottom, #C0C0C0 0%, #FBE080 100% );  
}

legend {
  color: #000;
  background: #FFE98C;
  font-family: Arial, Helvetica, sans-serif;
  font-size: 0.9em;
  font-weight: bold;
  text-align: center;
  padding: 5px;
  margin: 0;
  width: 9em;
  border: 2px solid #593131;
  border-radius: 50% 35%;
  box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
}
Ahora nuestra forma tiene una mejor apariencia, se ve así:
Agregamos ahora el código CSS para formatear los campos:
input, select, textarea {
  display: block;
  margin: 0;
  padding: .4em;
  width: 50%;
}
input, textarea, .date {
  border: 2px solid #eae1c0;
  border-radius: 5px;
  box-shadow: rgba(0,0,0,.5) 1px 1px 1px 1px inset;
  background: #fff;
}
input {
  font-size: .9em;
}
select {
  padding: 0;
  margin-bottom: 2.5em;
  position: relative;
  top: .7em;
}
textarea {
  font-family: "Trebuchet MS", Arial, Helvetica, sans-serif;
  font-size: .9em;
  height: 5em;
}
form *:focus {
  border: 2px solid #593131;
  outline: none;
  box-shadow: none;
}
input:valid, textarea:valid {
  background: #efe;
}
Ya tenemos nuestra forma casi lista, todo lo utilizado aquí es CSS con el que ya hemos trabajado antes. El resultado es este:
El último paso para crear nuestra forma es dar formato al botón de ordenar. Lo hacemos con este código CSS:
input[type="submit"] {
  margin: 50px auto 0 auto;
  width: 12em;
  padding: 10px;
  border: 2px solid #593131;
  border-radius: 10px;
  box-shadow: 0 0 .5em rgba(0, 0, 0, .8);
  color: #fff;
  background: #593131;
  font-size: 1.2em;
  font-weight: bold;
}

input[type="submit"]:hover, input[type="submit"]:active {
  cursor: pointer;
  background: #fff;
  color: #593131;
}

input[type="submit"]:active {
  background: #eee;
  box-shadow: 0 0 .5em rgba(0, 0, 0, .8) inset;
}
Aquí simplemente damos un poco de estilo al botón y damos formato a lo que sucede cuando el usuario pone el cursor sobre él. El resultado final es este:


Fuente:enlace

Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

sábado, 3 de octubre de 2015

Degradados lineales con repetición con CSS3

En este estudio profundo de los degradados de color en CSS3 ahora vamos a tratar de explicar los degradados con repetición, que se pueden hacer para conseguir un degradado entre dos o más colores que se repite varias veces a lo largo de todo el fondo del elemento al que se le coloque.
Los degradados con repetición se realizan de manera similar a los que vimos al tratar los degradados lineares normales. La diferencia es que utilizaremos el nombre de atributo repeating-linear-gradient y que, para que se produzcan las repeticiones tendremos que utilizar paradas de color.
La sintaxis es exactamente la misma que ya conocemos de los degradados lineales:
repeating-linear-gradient(origen, colores)
Siendo que en origen podremos colocar, tanto la posición inicial donde comienza el degradado, como el ángulo que debe formar el gradiente. Luego, los colores, como también vimos, se indican separados por comas. Sin embargo, ahora, para que realice la repetición, estamos obligados a señalar una parada de color.
Nota: las paradas de color, que también conocemos como "color stop", se explicaron con detalle en el anterior artículo donde se trataron los degradados lineales con CSS3.
La parada de color la podremos hacer en cualquiera de los colores del degradado, pero claro, tendremos que asegurarnos que el último color tenga una parada de color menor que el tamaño del elemento, o si trabajamos con porcentajes, menor que el 100%. Así, en el espacio del elemento que sobre después de la última parada de color, comenzará la repetición del degradado.
Vamos ahora a mostrar varios ejemplos de degradados con repetición para que se puedan entender perfectamente. Si dispones de un navegador compatible con los degradados CSS podrías ver el ejemplo en marcha.
background: repeating-linear-gradient(#fff, #666 25%);
Este degradado comienza en blanco y termina en gris. Como no se indicó nada, irá de arriba a abajo, en un gradiente vertical en línea recta. Pero lo importante en este caso es que el segundo color tiene una parada al 25%. Eso quiere decir que se llegará al gris en el primer 25% del espacio del elemento y que a partir de ese punto comenzará de nuevo el degradado. El segundo degradado ocupará otro 25% de la imagen y entonces se volverá a repetir. Por tanto, en la práctica veremos que este degradado de blanco a gris se repetirá por 4 veces en el fondo del elemento donde lo coloquemos.
Nota: Volvemos a insistir en que las CSS 3 todavía, en el momento de escribir estas líneas, están en fase borrador, por lo que no todos los navegadores las implementan. Además, los que lo hacen, utilizan atributos propietarios. Por ello, para que se vea ese degradado en los navegadores, tendríamos que utilizar los atributos propios de cada familia de browsers y la declaración de estilos nos quedaría como sigue:
.midegradado{
   background: -webkit-repeating-linear-gradient(#fff, #666 25%);
   background: -moz-repeating-linear-gradient(#fff, #666 25%);
   background: -o-repeating-linear-gradient(#fff, #666 25%);
   background: repeating-linear-gradient(#fff, #666 25%);
}

La primera declaración (con el prefijo -webkit-) sería para navegadores como Chrome o Safari, la segunda, (-moz-) para Firefox, la tercera (-o-) para Opera y la última es para todos los navegadores, que empezarán a entenderla cundo esto de las CSS3 sea un estándar.
background: repeating-linear-gradient(left, #ffc, #f96 30%, #963 40%, #630 51%);
En este segundo ejemplo tenemos otro degradado, esta vez con 4 colores. Como se puede ver, se le han asignado varias paradas de color, en lugar de solo una al último elemento. Como el último color stop está al 51% del elemento, el degradado se verá solo dos veces.
background: repeating-linear-gradient(45deg, red, blue, red 50px);
Esta es otra declaración de estilos, con un degradado en un gradiente oblicuo. Además, tiene la particularidad que se va de rojo a azul y luego de nuevo a rojo. Con ello conseguimos que las repeticiones del degradado siempre estén suavizadas y no se note cuando comienza y acaba una repetición, como nos ocurría en los dos ejemplos anteriores. Además, como se puede ver, la parada de color la hemos colocado en 50px, lo que quiere decir que el degradado se repetirá cada 50 píxeles, de modo que, el número de repeticiones variará dependiendo del tamaño del contenedor donde se asigne este fondo.
background: repeating-linear-gradient(left, #f00, #f80, #ff0, #0f0, #00f, #60f, #c0f, #f00 100px);
Este último ejemplo tiene los colores del arcoiris repetidos cada 100 píxeles.
Podemos ver el ejemplo en un navegador accediendo a este enlace, pero si tu cliente web aun no es compatible, puede ver los distintos degradados realizados en la siguiente imagen.
Como se ha podido ver, los degradados con repetición no tienen ningún misterio. Así que sin más tardar, podemos pasar a ver losdegradados radiales.

Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

viernes, 2 de octubre de 2015

Degradados con CSS 3





Los degradados son uno de los recursos que utilizan los diseñadores para decorar las webs y la verdad es que dan mucho juego para mejorar el aspecto de la página. No obstante, hasta la llegada de CSS 3, también tenían una desventaja importante, ya que para implementarlos necesitábamos usar imágenes como fondo de los elementos. Ello tiene algunas desventajas, como una mayor carga de peso en la página y la necesidad de fabricar los archivos gráficos con un programa de diseño, con la molestia adicional que necesitaríamos usar de nuevo el programa de diseño gráfico, para producir una nueva imagen, en el momento que queramos retocar el degradado.
Por suerte, dentro de poco, el uso de imágenes en degradados habrá pasado a la historia, ya que CSS 3 dispone de un potente mecanismo para producirlos que resulta todavía más versátil que el propio uso de imágenes de fondo. En este artículo introduciremos el uso de degradados en páginas web, aportando un par de ejemplos.
Nota: En el momento de escribir este artículo la especificación de CSS 3 está todavía en estado de borrador, por lo que la implementación final de los degradados puede sufrir ligeras variaciones con respecto a la que aquí se explica. Además, debemos tener en cuenta que no todos los navegadores disponen de los degradados, ya que las CSS 3 aun no se encuentran en su fase final. 
En el Manual de CSS 3, en regla general, ocurre siempre este problema, pues estamos explicando cosas que todavía falta un poco para que sean un estándar definitivo.
Los degradados implementan un gradiente de color, que pasa de un estado a otro a lo largo del fondo de los elementos HTML, ya sea capas, elementos de listas, botones, etc. Dichos degradados se obtendrán por medio de la especificación de una serie de características, como la posición inicial, la dirección hacia donde se realizará, si es circular o linear, y los colores que se incorporarán en cada uno de los pasos del gradiente.
El navegador es el encargado de renderizar el degradado en función de las características escritas para definirlo. Podemos asignar degradados como fondo en cualquier elemento HTML donde se podía implementar una imagen de fondo.
La especificación que se baraja actualmente incluyen degradados de dos tipos principales:
Degradados lineares: 
En los que se crea un gradiente que va de un color a otro de manera lineal. Puede ser de arriba a abajo, de izquierda a derecha y viceversa. Incluso se puede conseguir un degradado en un gradiente de una línea con cualquier ángulo.

Los degradados lineares se consiguen con el atributo background asignándole el gradiente con la propiedad "linear-gradient" de CSS 3. Un ejemplo puede verse a continuación:
div{
   height: 130px;
   width: 630px;
   background: -webkit-linear-gradient(orange, pink);
   background: -moz-linear-gradient(orange, pink);
   background: -o-linear-gradient(orange, pink);
}

Nota: Como decíamos, estos ejemplos no se ven perfectamente en todos los navegadores. De momento los podrás ver Webkit como Google Chrome o Safari, en Firefox (mejor la versión 4, aunque la 3 ya los implementa también) y Opera versión 11. 
De hecho, como habrás notado, todavía tenemos que escribirlos usando atributos propietarios de cada navegador, como -webkit-linear-gradient (para navegadores basados en Webkit) y -moz-linear-gradient (para navegadores de la fundación Mozilla) y -o-linear-gradient para Opera. Más adelante, estos atributos se podrán usar en sus versiones originales como linear-gradient (sin los prefijos de cada familia de navegadores) 
Con respecto a Internet Explorer 9, a pesar que implementa la mayoría de las características de las CSS 3, incluso con los atributos no propietarios, no parece que los degradados estén funcionando todavía. Aunque hay modos de hacer fondos con degradados de otra manera, las propiedades linear-gradient y radial-gradient no funcionan, incluso si intento meterle el prefijo -ms-.
Degradados circulares: 
En ellos se implementa un gradiente que se distribuye radialmente, desde un punto del elemento hacia fuera, de manera circular, que puede tener el mismo valor de radio (para hacer degradados en círculos perfectos) o con valores de radio variables (lo que generaría elipses).

El valor que asignamos a background en este caso será por medio del atributo "radial-gradient", además de toda la serie de parámetros necesarios para definir el degradado según nuestras intenciones.
div.circular{
   background: -webkit-radial-gradient(#0f0, #06f);
   background: -moz-radial-gradient(#0f0, #06f);
   border: 1px solid #333;
   height: 200px;
   width: 250px;
}

Nota: Volvemos a insistir en que se han utilizado los atributos propietarios -webkit-radial-gradient, -moz-radial-gradient y -o-radial-gradient, en lugar del atributo definitivo de las CSS 3 que será radial-gradient. 
Otra cosa destacable es que, en el momento de escribir este artículo, Opera no soporta degradados circulares. También, de momento, en Webkit parece que sólo podemos trabajar con degradados circulares y no con degradados en forma de elipse.

Conclusión

De momento estamos ante características todavía en fase de borrador, ya que el W3C todavía no ha aclarado como va a ser el estándar definitivo. Los navegadores ya las implementan, aunque algunos solo parcialmente, y en general todo está realizado de manera experimental.
Para asegurarse que un degradado funciona en la mayoría de las plataformas, de momento estamos obligados a escribir las reglas de estilos con etiquetas propietarias para cada navegador y más adelante podremos escribirlos sólo con la etiqueta definitiva.
Osea, para definir un degradado deberíamos escribir todos estos estilos:
background: -webkit-linear-gradient(orange, pink);
background: -moz-linear-gradient(orange, pink);
background: -o-linear-gradient(orange, pink);
background: linear-gradient(orange, pink);

El primero para Webkit, segundo para Firefox, tercero para Opera y el último sería el atributo que se espera que sea definitivo, que lo podemos ir colocando para cuando Internet Explorer empiece a soportar los degradados CSS o para cuando los navegadores ya entiendan la etiqueta definitiva.
Por tanto, cuando CSS 3 se convierta en un estándar de implementación recomendada, podremos únicamente dejar la etiqueta del gradiente definitiva, linear-gradient y borrar todas las demás definiciones de estilos:
background: linear-gradient(orange, pink);
Aunque en este artículo hemos visto una simple introducción a los degradados CSS 3, el borrador actual del W3C incluye muchas otras cosas que servirán para hacer degradados bastante más complejos y configurables por infinidad de parámetros. No obstante, de momento lo dejamos por aquí y veremos más sobre este asunto ya cuando expliquemos el detalle de losdegradados lineares y los degradados radiales.

Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información




Textos multi-columna con CSS 3

En este artículo vamos a tratar sobre las nuevas características de CSS para maquetación automática de textos en columnas, que se encontrarán disponibles cuando CSS 3 se implemente finalmente en los navegadores. Aunque todo esto no pase de un estado experimental, lo cierto es que ya podemos empezar a probarlo y utilizar en navegadores modernos, como muchas de las nuevas posibilidades que estamos comentando sobre CSS 3
Numerosas publicaciones maquetan el texto en diversas columnas, como criterio de diseño y para facilitar la lectura. Podríamos imaginarnos el texto de los periódicos si no se encontrase dividido en diversas columnas ¿no sería casi imposible seguir las líneas para hacer una lectura cómoda de la información si todo estuviera en una única columna?
Este problema no lo encontramos generalmente en las páginas web, porque el texto que cabe en el cuerpo de la página no es tan grande como el que cabría en una hoja de un diario. Además, generalmente la propia página ya se encuentra dividida en diversas columnas. No obstante, aunque quisiéramos, con las características de CSS 2 no sería muy fácil hacer un texto fluído que se adaptase automáticamente en columnas, de modo que éstas crecieran homogéneamente a medida que el texto crece o se reduce. CSS 3 soluciona este problema, o más bien ofrecerá una solución al mismo, sencilla y automática.
Para crear una estructura multi-columna utilizaremos varios atributos, que servirán para modelizar las columnas:
  • colum-width: servirá para definir la anchura de las distintas columnas a crear.
  • column-gap: nos permitirá definir el espacio en blanco entre columnas.
  • column-rule: servirá para crear un filete o línea divisoria entre las columnas.




Estas etiquetas por el momento no las soporta tal cual ningún navegador. Sin embargo Safari, Google Chrome y Firefox ya implementan el multicolumna, de manera experimental y hasta que las especificaciones de CSS 3 estén dispuestas para incorporar en los navegadores. Para ello, podemos utilizarlas si les ponemos un prefijo, que sería "-moz-" en el caso de Firefox y "-webkit-" para el navegador Safari o Chrome.
Un ejemplo de multicolumna, para que funcione en estos navegadores sería:
.multicolumna{

   -moz-column-width: 15em;
   -moz-column-gap: 15px;
   -webkit-column-width: 15em;
   -webkit-column-gap: 15px;
   -webkit-column-rule: 1px solid #ccc;
   -moz-column-rule: 1px solid #ccc;
}



Otra posibilidad para crear un multicolumna será definir simplemente el número de columnas que querríamos incorporar en el texto, por medio del atributo column-count, de esta manera:

.multicolumna5columnas{


   -moz-column-count: 5;
   -moz-column-gap: 2em;
   -moz-column-rule: 1px solid #ccf;
   -webkit-column-count: 5;
   -webkit-column-gap: 2em;
   -webkit-column-rule: 1px solid #ccf;
}

Especificar el número de columnas es quizás más cómodo, pero en páginas fluidas puede funcionar peor, porque no se sepa con certeza qué anchura va a tener el lugar donde se muestran los textos y por tanto unas veces queden columnas muy anchas y otras muy estrechas.
Podemos ver una página aparte con los ejemplos mostrados de maquetación en múltiples columnas. Pero recordad que sólo funcionará en Mozilla Firefox, Apple Safari y Google Chrome.
El sistema de múltiples columnas se está encuentra en estado de borrador y forma parte de un módulo aparte dentro de las especificaciones de CSS 3. Si se desea encontrar más información sobre el tema en la W3C se puede consultar la URL http://www.w3.org/TR/css3-multicol/

Fuente:enlace
Si quieres seguir aprendiendo con nosotros, puedes ingresar a nuestros 
Cursos y Diplomados de Tecnología Web visita www.uneweb.edu.ve  para más información

Entradas populares