En este tutorial vamos a crear una página de "Próximamente en línea", o "En construcción" (conocidas en inglés como "Coming Soon"), usando HTML5 y CSS3 con un estilo minimalista y colores ligeros. Para esta página vamos a usar una plantilla diseñada previamente en Photoshop.
Como puedes observar, la página contiene algunas sombras y degradados. Estos efectos fueron creados usando únicamente CSS3. Por si no lo sabías (muchos en Cristalab seguramente ya lo saben por otros tutoriales), CSS3 provee de varias propiedades nuevas que nos permiten crear efectos llamativos y agradables sin la necesidad de usar imágenes.
En este tutorial vamos a explorar nuevas etiquetas de HTML5 (y de cómo hacerlas funcionar en Internet Explorer 7 y 8, aunque a estas alturas estos navegadores cada vez pierden más participación del mercado) y de nuevos atributos para el formulario, como el “Placeholder” y el “required”.
El atributo placeholder nos permite introducir un texto por defecto en las cajas de comentarios o cajas de texto de un formulario cuando éstas se encuentran vacías (es así como, una vez se introduzca texto en ellas, este texto por defecto desaparecerá). Así mismo, el atributo required que se introduce en los campos que se deseen de un formulario, impide que éste sea enviado si la etiqueta no cumple con su función (por ejemplo, un campo de tipo mail no permite enviar a menos que tenga el esquema [email protected]). Sin embargo, en este ejemplo vamos a tener atributos Jquery en caso que estemos en un navegador viejo que no soporte estos atributos, no se afecte el funcionamiento.
Estructura de archivos
Vamos a crear una nueva carpeta y la vamos a llamar “coming-soon-page” (o el nombre que tú desees). Dentro de esta carpeta, vamos a tener los siguientes archivos y subdirectorios:
- index.html: nuestro archivo principal.
- css: la carpeta donde estarán los archivos de estilos cascada.
- style.css: nuestro archivo de estilos principal.
- reset.css: El archivo que se encarga de borrar todas las características por defecto de las etiquetas.
- ie.css: el archivo de estilos para internet explorer 7 y 8.
- js: carpeta donde estarán contenidos todos los archivos de javascript.
- jquery.countdown.js: es el plugin de jQuery con el que haremos la cuenta regresiva.
- script.js: este será el archivo javascript que tendrá el inicializador de la cuenta regresiva, algunas funciones de animación y la solución para “required” y “placeholder” en los navegadores antiguos.
- modernizr.custom.js: librería en javascript que nos permitirá detectar si el explorador soporta “required” y “placeholder”.
- images: carpeta donde estarán las imágenes.
- fonts: en esta carpeta tendremos la fuente que se usará en el contador.
Estructura de la página índex.html
Este será el código de la estructura principal:
Código :
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>Página minimalista de 'En construcción'</title> <!-- CSS --> <link rel="stylesheet" href="css/reset.css"> <link rel="stylesheet" href="fonts/stylesheet.css"> <link rel="stylesheet" href="css/style.css"> <!--[if lt IE 9]> <link rel="stylesheet" href="css/ie.css"> <![endif]--> <!-- IE fix for HTML5 tags --> <!--[if lt IE 9]> <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script> <![endif]--> <!-- jQuery and Modernizr--> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script> <script src="js/modernizr.custom.js"></script> <!-- Countdown timer and other animations --> <script src="js/jquery.countdown.js"></script> <script src="js/script.js"></script> </head> <body> <header> <!-- El título y la descripción de nuestro sitio --> </header> <div id="main"> <div id="links"> <!-- Los links principal, de soporte, descargas, etc. --> </div> <div id="counter"> <!-- La cuenta regresiva (el contador) --> </div> <form action="" method="get"> <!-- El formulario de suscripción --> </form> <div class="social-media-arrow"> <!-- La flechita de social media al lado derecho del monitor --> </div> <footer> <!-- El pie de página que tendrá los íconos de las redes sociales --> </footer> </div> </body> </html>
Como podemos observar, el código HTML es muy sencillo y se explica él mismo. En la etiqueta "head" importamos todos los archivos CSS y Javascript que necesitamos. También están los comentarios condicionales (en caso de estar en exploradores de la Segunda Guerra Mundial como Explorer 7 y 8 ) y una nota adicional: el archivo html5.js contenido en los servidores de Google Code que nos permitirá que cualquier explorador interprete las etiquetas footer y header.
El cuerpo de nuestra página también es sencillo de comprender. Está la etiqueta "header" donde estará la línea principal o título de nuestra página y su descripción. Y la etiqueta div principal (main) donde estarán la cuenta regresiva, los links de las redes sociales, el formulario de suscripción y el pié de página.
Respecto a la configuración del cuerpo es simple: tendrá su etiqueta de cabecera donde estará la descripción, el contador y el formulario de suscripción.
Luego sigue el estilo que vamos a usar para la fuente y la imagen de fondo de la página (es decir, la configuración de los estilos principales). El código es el siguiente:
Código :
body { background: url(../images/body-pattern.jpg) top left repeat; font-family: Arial, Helvetica, sans-serif; padding-bottom: 40px; }
El Encabezado, Cabecera o Header
Como ya lo habíamos mencionado, el header de nuestra página tendrá el título y la descripción de la página.
Código :
<header> <h1>Estamos trabajando para tener listo el sitio web pronto.</h1> <p>Nuestro desarrollador inmaculado John W. Martinez, está haciendo su mayor esfuerzo para finalizar el sitio web antes que este conteo termine. Favor, tenedle paciencia. (Es mentira lo de inmaculado, lo tenemos amarrado a una mazmorra y lo azotamos para que trabaje 20 horas al día).</p> </header>
Y este es el respectivo código CSS:
Código :
/* ---- Header ---- */ header { width: 720px; margin: 80px auto 0 auto; } header h1 { font-size: 30px; font-weight: bold; color: #272727; text-shadow: 0 1px 0 #fff; } header p { margin: 20px 0 0 3px; font-size: 14px; color: #272727; }
El área principal
El área principal de la página contiene el div "main" que lo pudimos observar en el código anterior. Esta área contendrá los links, la cuenta regresiva (contador), el formulario de suscripción, el pie de página y la flecha de "social media". A continuación el estilo CSS de esta área:
Código :
/* ---- Main Area ---- */ #main { position: relative; width: 700px; margin: 50px auto 0 auto; padding: 20px 0 0 25px; background: url(../images/main-content-pattern.jpg) top left repeat; }
Los enlaces (links)
A continuación el código de nuestros links:
Código :
<div id="links"> <div class="home"><a href="">http://1stwebdesigner.com/</a></div> <div class="support"><a href="">http://support.1wd.com/</a></div> <div class="browser"><a href="">Google Chrome OS. 10.X.23</a></div> <div class="books"><a href="">http://1wd.co/e-books/</a></div> <div class="download"><a href="">http://1wd.com/download/</a></div> <div class="ups"><a href="">UPS Signed Worldwide</a></div> </div>
Nada del otro mundo, simplemente un listado sencillo para cada uno de los links.
Y el código CSS de estos links es:
Código :
/* ---- Links ---- */ #links { width: 700px; font-size: 12px; font-weight: bold; color: #aaa; line-height: 18px; overflow: hidden; } #links a { position: relative; color: #aaa; text-decoration: none; } #links a:hover { color: #aaa; text-decoration: none; } .home, .support, .browser, .books, .download, .ups { float: left; width: 180px; margin-left: 42px; padding-left: 25px; } .home { background: url(../images/home.png) left center no-repeat; margin-left: 0; } .support { background: url(../images/support.png) left center no-repeat; } .browser { background: url(../images/browser.png) left center no-repeat; clear: right; } .books, .download, .ups { margin-top: 10px; } .books { background: url(../images/books.png) left center no-repeat; margin-left: 0; } .download { background: url(../images/download.png) left center no-repeat; } .ups { background: url(../images/ups.png) left center no-repeat; clear: right; }
El área de enlaces tiene un ancho de 700px y cada enlace tiene su propio ícono. Luego aplicamos un pequeño espacio con márgenes y relleno (margins y paddings) y por último le agregamos una pequeña animación usando jQuery (que recuerden, se pronuncia "yeicueri").
La cuenta regresiva (El contador)
Para esta función vamos a usar un plugin en jQuery que se llama "jQuery countdown plugin" (o mejor no lo descargue, va incluido en el paquete de este tutorial). El contador estará introduciéndose en la etiqueta de id "counter".
Código :
<div id="counter"></div>
La etiqueta div con "id" counter estará vacía porque el código en html será generado por el plugin de jQuery. A continuación presentamos el código que el plugin genera:
Código :
<div id="counter" class="countdownHolder"> <div class="countDays"> <span class="position"> <span class="digit static">0</span> </span> <span class="position" <span class="digit static">0</span> </span> <span class="boxName"> <span class="Days">DAYS</span> </span> </div> <span class="points">:</span> <span class="countDiv countDiv0"></span> <div class="countHours"> <span class="position"> <span class="digit static">0</span> </span> <span class="position"> <span class="digit static">0</span> </span> <span class="boxName"> <span class="Hours">HRS</span> </span> </div> <span class="points">:</span> <span class="countDiv countDiv1"></span> <div class="countMinutes"> <span class="position"> <span class="digit static">0</span> </span> <span class="position"> <span class="digit static">0</span> </span> <span class="boxName"> <span class="Minutes">MNTS</span> </span> </div> <span class="points">:</span> <span class="countDiv countDiv2"></span> <div class="countSeconds"> <span class="position"> <span class="digit static">0</span> </span> <span class="position"> <span class="digit static">0</span> </span> <span class="boxName"> <span class="Seconds">SECS</span> </span> </div> </div>
Dependiendo del tiempo que nosotros instalemos cuando implementemos el contador, el mostrará los números correspondientes a las cuatro casillas (días, horas, minutos y segundos).
Ahora, a continuación colocamos el código CSS de nuestro contador:
Código :
/* ---- Counter ---- */ #counter { width: 700px; height: 145px; margin: 55px auto 0 auto; font-family: 'LeagueGothicRegular', Arial, Helvetica, sans-serif; font-size: 92px; color: #272727; text-shadow: 0 1px 0 #fff; overflow: hidden; } .countDays, .countHours, .countMinutes, .countSeconds { float: left; width: 102px; height: 138px; padding-left: 36px; background: #e7e7e7; background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), to(rgba(0,0,0,.07))); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.07)); background-image: -moz-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.07)); background-image: -ms-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.07)); background-image: -o-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.07)); background-image: linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.07)); border: 1px solid #ccc; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: 0 2px 3px 0 rgba(255,255,255,.2) inset, 0 2px 2px 0 rgba(0,0,0,.1); -webkit-box-shadow: 0 2px 3px 0 rgba(255,255,255,.2) inset, 0 2px 2px 0 rgba(0,0,0,.1); box-shadow: 0 2px 3px 0 rgba(255,255,255,.2) inset, 0 2px 2px 0 rgba(0,0,0,.1); } .points { float: left; width: 40px; margin: 0; font-family: Georgia, serif; font-size: 44px; font-weight: bold; text-align: center; line-height: 138px; text-shadow: none; } .position { position: relative; float: left; width: 35px; height: 92px; margin: 8px 0 0 0; } .digit { position: absolute; top: 0; left: 0; } .boxName { float: left; width: 80px; margin: -5px 0 0 7px; font-size: 36px; color: #a6a6a6; text-shadow: 0 1px 0 rgba(255,255,255,.5); } .Hours { margin-left: 5px; } .Seconds { margin-left: 2px; }
Para el contador hemos usado la fuente "League Gothic" que puedes encontrar en los archivos fuentes que acompañan este tutorial. Si deseas usar esta fuente en tus diseños, la puedes descargar de aquí.
Como podemos observar en el código anterior, los degradados y las sombras las hemos realizado únicamente con las propiedades de CSS3. Estas nuevas propiedades de CSS3 permiten crear diseños complejos sin la necesidad de imágenes recortadas o sectorizadas, permitiendo que la página tome mucho menos tiempo de carga.
Las propiedades de CSS3 usadas fueron "border-radius", "box-shadow", "linear gradient", y "text-shadow". Son fácilmente entendibles en el momento que se lee su nombre.
Luego usamos el atributo "rgba" para asignar el color, y este ajuste es bastante útil porque se puede manejar no sólo el color por canales, sino también la transparencia del contenedor. Ahora, vamos a iniciar la cuenta regresiva incluyendo las siguientes líneas en el archivo "script.js" (que está dentro de la carpeta js).
Código :
$(document).ready(function(){ /* ---- Countdown timer ---- */ $('#counter').countdown({ timestamp : (new Date()).getTime() + 51*24*60*60*1000 }); });
El contador mostrará el tiempo que queda para dentro de 51 días desde ahora.
Formulario de inscripción (o suscripción)
Para este formulario hemos usado dos nuevos atributos de HTML5: "placeholder" y "required". Este es el código:
Código :
<form action="" method="get"> <input type="text" class="email" placeholder="Escriba su e-mail en este campo" required /> <input type="submit" class="submit" value="Mantenerme al tanto" /> </form>
Tenemos un campo de texto que sirve para recoger el correo electrónico y un botón para enviar. El campo de correo electrónico deberá estar diligenciado antes de enviar el formulario, de lo contrario la página no lo dejará proseguir. A continuación veremos el código en CSS:
Código :
/* ---- Subscription Form ---- */ form { position: relative; margin: 40px auto 0 auto; } .email { width: 498px; height: 35px; padding: 0 15px; background: #f1f1f1; background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.02)), to(rgba(0,0,0,.02))); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.02), rgba(0,0,0,.02)); background-image: -moz-linear-gradient(top, rgba(255,255,255,.02), rgba(0,0,0,.02)); background-image: -ms-linear-gradient(top, rgba(255,255,255,.02), rgba(0,0,0,.02)); background-image: -o-linear-gradient(top, rgba(255,255,255,.02), rgba(0,0,0,.02)); background-image: linear-gradient(top, rgba(255,255,255,.02), rgba(0,0,0,.02)); border: 1px solid #cbcbcb; -moz-box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset; -webkit-box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset; box-shadow: 0 2px 3px 0 rgba(0,0,0,.1) inset; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; color: #b3b2b2; font-style: italic; } .email:focus { outline: 0; border: 1px solid #c0c0c0; -moz-box-shadow: 0 2px 3px 0 rgba(0,0,0,.2) inset; -webkit-box-shadow: 0 2px 3px 0 rgba(0,0,0,.2) inset; box-shadow: 0 2px 3px 0 rgba(0,0,0,.2) inset; } .submit { width: 140px; height: 37px; margin: 0 0 0 5px; padding: 0; background: #888; background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(255,255,255,.1)), to(rgba(0,0,0,.1))); background-image: -webkit-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -moz-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -ms-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -o-linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: linear-gradient(top, rgba(255,255,255,.1), rgba(0,0,0,.1)); border: 1px solid #636363; -moz-box-shadow: 0 1px 2px 0 rgba(253,252,252,.35) inset, 0 -1px 2px 0 rgba(0,0,0,.15) inset; -webkit-box-shadow: 0 1px 2px 0 rgba(253,252,252,.35) inset, 0 -1px 2px 0 rgba(0,0,0,.15) inset; box-shadow: 0 1px 2px 0 rgba(253,252,252,.35) inset, 0 -1px 2px 0 rgba(0,0,0,.15) inset; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; font-family: Arial, Helvetica, sans-serif; font-size: 13px; font-weight: bold; color: #fff; text-shadow: 0 1px 0 rgba(0,0,0,.35); line-height: 13px; cursor: pointer; } .submit:hover { background-image: -webkit-gradient(linear, left bottom, left top, from(rgba(255,255,255,.1)), to(rgba(0,0,0,.1))); background-image: -webkit-linear-gradient(bottom, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -moz-linear-gradient(bottom, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -ms-linear-gradient(bottom, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: -o-linear-gradient(bottom, rgba(255,255,255,.1), rgba(0,0,0,.1)); background-image: linear-gradient(bottom, rgba(255,255,255,.1), rgba(0,0,0,.1)); -moz-box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset; -webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset; box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset; } .submit:active { -moz-box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset, 0 3px 13px 3px rgba(0,0,0,.3) inset; -webkit-box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset, 0 3px 13px 3px rgba(0,0,0,.3) inset; box-shadow: 0 1px 2px 0 rgba(0,0,0,.15) inset, 0 3px 13px 3px rgba(0,0,0,.3) inset; color: #ddd; }
Hemos usado las seudo-classes :hover, :focus y :active para cambiar los estilos del campo del formulario y el botón de enviar. También hemos usado CSS3 que usamos anteriormente en el contador.
Ahora, hay que destacar algo: los atributos "required" y "placeholder" no están soportados en navegadores salidos en la revolución industrial (Como IE7) u otros salidos junto con la música disco (como IE8). Así que para esto, solucionaremos el problema con la librería Modernizr, que nos permitirá saber si soporta o no esa etiqueta. Así que necesitamos chequear si soporta o no estas funciones y si encontramos que no lo soporta, entonces tendremos que usar jQuery para dar una solución.
Una vez hayas incluído la librería Modernizr en la página, inserta el siguiente código:
Código :
/* ---- Using Modernizr to check if the "required" and "placeholder" attributes are supported ---- */ if (!Modernizr.input.placeholder) { $('.email').val('Input your e-mail address here...'); $('.email').focus(function() { if($(this).val() == 'Input your e-mail address here...') { $(this).val(''); } }); } // Esto es para detectar si el explorador es Safari (que no soporta las nuevas etiquetas) var browser = navigator.userAgent.toLowerCase(); if(!Modernizr.input.required || (browser.indexOf("safari") != -1 && browser.indexOf("chrome") == -1)) { $('form').submit(function() { $('.popup').remove(); if(!$('.email').val() || $('.email').val() == 'Digite su correo electrónico…') { $('form').append('<p class="popup">Por favor llene este campo.</p>'); $('.email').focus(); return false; } }); $('.email').keydown(function() { $('.popup').remove(); }); $('.email').blur(function() { $('.popup').remove(); }); }
Como puedes observar, hemos agregado un párrafo al formulario que contiene la frase "Por favor llene este campo." y le hemos asignado la clase "popup". Este código mostrará este texto en los navegadores que no soporten "required" y que por lo tanto, no serían verificados correctamente (si, desafortunadamente este es uno de los contras que tiene HTML5 en distintos navegadores; pero descuida, estos problemas paulatinamente irán pasando a un segundo grado).
A continuación, el código CSS del popup:
Código :
.popup { position: absolute; top: 45px; left: 0; width: 140px; padding: 10px; background: #e7e7e7; -moz-border-radius: 4px; -webkit-border-radius: 4px; border-radius: 4px; -moz-box-shadow: 0 2px 2px 0 rgba(0,0,0,.1); -webkit-box-shadow: 0 2px 2px 0 rgba(0,0,0,.1); box-shadow: 0 2px 2px 0 rgba(0,0,0,.1); font-family: Arial, Helvetica, sans-serif; font-size: 13px; color: #888; }
Pie de página
En el pie de página vamos a agregar los iconos correspondientes a las redes sociales.
Código :
<footer> <ul> <li><a class="digg" href=""></a></li> <li><a class="twitter" href=""></a></li> <li><a class="vimeo" href=""></a></li> <li><a class="skype" href=""></a></li> </ul> </footer>
Y el CSS:
Código :
/* ---- Footer ---- */ footer { width: 700px; margin: 0 auto; padding: 35px 0 25px 0; overflow: hidden; } footer ul { float: right; width: 125px; height: 22px; } footer ul li { float: left; } footer a { position: relative; display: block; margin-left: 10px; } .digg { width: 10px; height: 16px; background: url(../images/digg.png) center center no-repeat; } .twitter { width: 21px; height: 16px; background: url(../images/twitter.png) center center no-repeat; } .vimeo { width: 16px; height: 16px; background: url(../images/vimeo.png) center center no-repeat; } .skype { width: 16px; height: 16px; background: url(../images/skype.png) center center no-repeat; }
Ahora, vamos a agregar una hermosa y vistosa flecha que dará a entender qué son las redes sociales:
Código :
<div class="social-media-arrow"></div>
Y agregamos los estilos de esta flecha:
Código :
.social-media-arrow { position: absolute; top: 125px; right: -95px; width: 108px; height: 256px; background: url(../images/social-media-arrow.png) top left no-repeat; }
Animaciones en jQuery
Vamos a animar los enlaces y los íconos de las redes sociales cuando se coloque el puntero sobre estos. Para esto, vamos a agregar algunas cortas líneas en el archivo script.js:
Código :
/* ---- Animations ---- */ $('#links a').hover( function(){ $(this).animate({ left: 3 }, 'fast'); }, function(){ $(this).animate({ left: 0 }, 'fast'); } ); $('footer a').hover( function(){ $(this).animate({ top: 3 }, 'fast'); }, function(){ $(this).animate({ top: 0 }, 'fast'); } );
Compatibilidad con Internet Explorer 7 y 8
Sí, estos navegadores siguen en el mercado. Afortunadamente será por poco tiempo y va descendiendo, ya que estos no tienen soporte de HTML5 ni CSS3, pero en el mundo mágico de javascript todo tiene solución. Para terminar este tutorial como Dios manda, vamos a agregar las siguientes líneas a nuestro archivo ie.css.
Código :
.email { line-height: 35px; }
Esto es debido a que en IE 7 y 8 el texto de los campos de formulario no se alinean verticalmente en el centro.
Conclusión
¡Por fin, hemos terminado! Hemos creado nuestra página de "Próximamente", o "En construcción", o "Coming soon", "en breve", "Ya merito", "aguanta el viaje", o como lo llamen dependiendo de su región. La idea del ejercicio era aprender conceptos básicos del HTML5 y CSS3 como los bordes redondeados, las transparencias, los degradados, etc., en este mundo mágico que evoluciona la web. Agradezco su atención y les pido el favor que comenten el tutorial, si me he equivocado en algo por favor escríbanlo en la caja de comentarios o pueden escribirme al correo electrónico: [email protected]. Para finalizar, les dejo el link donde está el demo de esta página y donde podrán descargar los archivos del tutorial. Muchas Gracias.
Demo del tutorial y descarga de archivos
Dudas, preguntas, sugerencias, aportes, regaños, maldiciones voodoo: En la caja de comentarios que está debajo de este tutorial o en mi twitter: @johnwmartinez. Gracias.
¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.
Por Raxiro el 27 de Agosto de 2012
Por Mariux el 27 de Agosto de 2012
Raxiro-blog :
El tema del término "minimalista" es complejo. El minimalismo como corriente artística es diferente al simplismo que uno le puede aplicar a un diseño. De hecho creo que hoy en día se usa el término minimalista sólo para implicar que algo tiene pocos elementos o colores, y no se refiere a una línea de diseño.
Sobre todo en diseño web.
Por johnwmartinez el 27 de Agosto de 2012
Por danx el 28 de Agosto de 2012
AUNQUE el demo del tutorial en ingles NO Tiene anuncios google jejejeje
Por nasho el 28 de Agosto de 2012
Por Raxiro el 28 de Agosto de 2012
Por Claudio el 28 de Agosto de 2012
Saludos
Por Mariux el 28 de Agosto de 2012
danx-blog :
AUNQUE el demo del tutorial en ingles NO Tiene anuncios google jejejeje
Gracias por aclararlo @danx-blog!. johnwmartinez acá todos andan en la web, y si a mi se me escapa detectar un copy&paste siempre va a haber alguien que lo va a detectar. Para la próxima vez tenelo en cuenta y trata de generar tu propio contenido, no es tan difícil, solo hay que pensar un poquito mas.
saludos
Por HtrMancera el 28 de Agosto de 2012
Por johnwmartinez el 28 de Agosto de 2012
Por Alex el 31 de Agosto de 2012
Sube el link de descarga del demo.
Por Jalo. el 01 de Septiembre de 2012
saludos
Por johnwmartinez el 09 de Septiembre de 2012
Alberto1988-blog :
Gracias
Hola Alberto. Eso depende del lenguaje de programación que uses para el proceso. Regularmente se hace en PHP. Para encontrar info sobre eso, puedes buscar aquí en el mismo cristalab en el buscador por "Formulario de contacto PHP".
Por vinsed el 20 de Septiembre de 2012
Por johnwmartinez el 23 de Septiembre de 2012
vinsed :
No mucho tiempo, lo importante es practicar. HTML5 en sí mismo no es difícil realmente.
Por vinsed el 23 de Septiembre de 2012
johnwmartinez :
vinsed :
No mucho tiempo, lo importante es practicar. HTML5 en sí mismo no es difícil realmente.
Y css3 q grado de dificultad tiene
Por johnwmartinez el 24 de Septiembre de 2012
vinsed :
johnwmartinez :
vinsed :
No mucho tiempo, lo importante es practicar. HTML5 en sí mismo no es difícil realmente.
Y css3 q grado de dificultad tiene
Yo creo que todos los lenguajes son fáciles siempre y cuando se estudie a profundidad. Lo agradable de CSS3 y HTML5 es que logras resultados agradables en muy poco tiempo practicando.
Por echpa el 25 de Septiembre de 2012
Por Sogamoso el 04 de Noviembre de 2012
Y bueno, ya que andamos con modernizr, no me vendría mal algo de ayuda porque no consigo ver los campos "placeholder" en IE. Y como no me manejo bien con esto del modernizr, dejo el código por si alguien con algo de tiempo y conocimientos me tira un cable.
Saludos
el código puede verse aqui: http://pastebin.com/yp63YG5f
Por Periquín el 06 de Noviembre de 2012
Por SweeTy el 08 de Enero de 2013
Por SweeTy el 08 de Enero de 2013
timestamp : (new Date()).getTime() + 51*24*60*60*1000
por
timestamp : (new Date(2013,0,16,10,0,0))
Por ejemplo esto haria que en 16d 10h,0m,0s desde las 00:00 del 1/1/2013
o lo que es lo mismo el dia 16 a las 10a.m. expiraria la cuenta atras.
Saludos
Por julian garcia el 19 de Marzo de 2013
http://www.juliaosystem.in
Por angel el 04 de Abril de 2013
Por Fernando el 20 de Abril de 2013
Por Giovanni el 23 de Abril de 2013
si no aquí esta tu respuesta:
código original
(
$(document).ready(function(){
/* ---- Countdown timer ---- */
$('#counter').countdown({
timestamp : (new Date()).getTime() + 51*24*60*60*1000
});
});
)
para generar una fecha determinada:
(
$(document).ready(function(){
/* ---- Countdown timer ---- */
$('#counter').countdown({
timestamp : (new Date(2013, 04, 23))
});
});
)
Por angel el 04 de Abril de 2013
Hola! alguien me podría decir como puedo hacer para que en los dias que faltan aparezcan 3 digitos? Al pasar de un año el primer número no aparace
Por unknown el 25 de Junio de 2013
Buena aporte amigo. Sólo una consulta, pudiera colocar la fuente de los íconos
o de dónde los consigue?
¡Gracias!
Por eva.x.arte el 07 de Agosto de 2013
muchas gracias por hacerlo atendible a los profanos.
Por Jose el 21 de Septiembre de 2013
Por Programador el 02 de Diciembre de 2013
Por giwmc el 19 de Abril de 2014
Leer enriquece.
Por Vismare el 03 de Mayo de 2014
descargue su demo sobre el contador para una web en construcción pero cada vez que se da refresh a la pagina el contador se inicia de nuevo, espero su respuesta. saludos
Por Omar Hernandez el 07 de Mayo de 2014
Muchas gracias.
Por Alvaro Diaz Molina el 06 de Septiembre de 2014
Por Alexis el 30 de Octubre de 2014
Por Marcelo el 16 de Diciembre de 2014
Felicitaciones!!!
Por davideq el 11 de Marzo de 2016