Mostrando entradas con la etiqueta HTML5 y CSS3 para los formularios. Mostrar todas las entradas
Mostrando entradas con la etiqueta HTML5 y CSS3 para los formularios. Mostrar todas las entradas

jueves, 29 de mayo de 2014

Los generadores de botones en línea



1. Funcionalidad

Los estilos CSS3 nos aportan mejoras reales en cuanto a la creación de botones, hasta tal punto que ya no es necesario usar programas de diseño para crearlos. Los botones con imágenes solo presentan inconvenientes: aumentan considerablemente el tamaño de los archivos, las actualizaciones del diseño son más lentas, afectan negativamente al posicionamiento natural y a la accesibilidad.

Para crear botones con un diseño moderno rápidamente, la web pone a su disposición multitud de generadores en línea. Veamos algunos de ellos.


2. CSS3 Button

Este sitio web (http://css3button.net/) tiene una interfaz agradable en la que podrá trabajar con: 
  • el degradado del fondo, 
  • los bordes y las esquinas redondeadas, 
  • el espaciamiento, 
  • las sombras externas e internas, 
  • el color del texto, 
  • las sombras de texto.

La visualización se actualizará automáticamente y podrá recuperar el código en la zona CSS CODE.


3. CSS3 Button Generator

Este sitio web (http://css3buttongenerator.com/) presenta una interfaz en acordeón en la que podrá seleccionar las propiedades CSS que desee aplicar: 
  • el texto sombreado, 
  • el espaciado y las sombras, 
  • los bordes y las esquinas redondeadas, 
  • el degradado del fondo, 
  • el degradado del fondo para :hover.

Como es habitual, podrá ver el resultado en tiempo real, así como el código CSS generado.



4. CSS Drive Button Generator

Este sitio web (http://www.cssdrive.com/css3button/) le propone crear botones de una forma muy completa: Podrá trabajar con: 
  • todos los parámetros del texto, 
  • la caja del botón: degradado para el fondo, ancho, espaciamiento...
  • los bordes, las esquinas redondeadas y la sombra, 
  • y como colofón, las transformaciones, las transiciones y los estilos para :hover.

Nuevamente, podrá ver el resultado en tiempo real, así como el código CSS generado.



5. CSS3 Button Creator

El sitio web (http://www.cssbuttongenerator.com/) propone una interfaz innovadora y muy interactiva, en la que tendremos la impresión de estar usando realmente una aplicación. Podrá trabajar con todas las propiedades disponibles, a las que podrá acceder a partir de los paneles de la izquierda.



Espero haber ayudado en algo. Hasta la próxima oportunidad!







miércoles, 28 de mayo de 2014

Crear botones con símbolos



1. Objetivo

En sus formularios, puede que alguna vez necesite crear botones con símbolos o con pictogramas. Veamos cómo podemos crearlos fácilmente con las pseudo-clases :before y :after. Los ejemplos están adaptados del sitio web: http://www.paulund.co.uk/css-buttons-with-icons-but-no-images


2. El formulario

Vamos a crear un formulario clásico con dos botones, uno para validar el formulario y otro para anularlo. Sin embargo, no vamos a usar botones, sino vínculos, ya que la técnica que vamos a usar, con pseudo-elementos, no se puede aplicar a los botones.

Este es el formulario inicial:

<form id="registro" method="#" action="#">
<p>
<label for="nombre">Nombre: </label>
<input type="nombre" name="nombre" id="nombre" />
</p>
<p>
<label for="apellidos">Apellidos: </label>
<input type="apellidos" name="apellidos" id="apellidos" />
</p>
<p>
<a href="#">Confirme<a/>
<a href="#">Anule<a/>
</p>
</form>

Así se visualizará sin estilos:



3. Crear una clase para los botones

La técnica consiste en crear una clase para todos los botones que vaya a usar en su formulario. Esta clase permitirá diseñar el botón con todos los elementos de formato habituales. Podemos usar las propiedades CSS porque los vínculos aparecen como bloque en línea: display: inline-block.

Con esta clase aplicaremos a los botones un ligero degradado y bordes redondeados.

.botones {
/* La caja*/
display: inline-block;
border: 1px solid #000;
padding: .2em .5em;
margin: 0 4em 0 0;
/* El degradado */
background: -moz-linear-gradient(top, #fff 0%, #eee 100%);
background: -webkit-linear-gradient(top, #fff 0%, #eee 100%);
background: -o-linear-gradient(top, #fff 0%,#ccc 100%);
background: linear-gradient(top, #fff 0%,#ccc 100%);
/* Los bordes redondeados */
-moz-border-radius: .3em;
-webkit-border-radius: .3em;
border-radius: .3em;
/* El texto */
font-weight: bold;
font-size: 1em;
text-decoration: none;
color: black;
}

Así se visualizará el formulario con los estilos:



4. El pseudo-elemento ::before

El pseudo-elemento ::before (fíjese en la nueva sintaxis de los pseudo-elementos con los dos caracteres :) permite añadir texto delante del elemento al que esté asociado. El pseudo-elemento ::after hace lo mismo, pero detrás de dicho elemento.

Tenga en cuenta que puede usar la sintaxis :before y :after si encuentra algún problema de compatibilidad con su navegador.

Vamos a aplicar el pseudo-elemento ::before a la clase genérica de los botones .botones, para que el estilo sea más sencillo.

.botones:before {
font-size: 1em;
padding: 0 .5em 0 0;
}

5. El contenido del pseudo-elemento ::before

Ahora tendremos que indicar el contenido que vamos a añadir delante de la etiqueta del botón, el texto del vínculo a. Debemos especificar a qué elemento se le añadirá ese contenido, ya que cada botón tendrá un contenido diferente.

En nuestro ejemplo, vamos a crear dos selectores específicos.validar:before y .anular:before, con un estilo específico para cada botón.

Segundo parámetro: se trata del pictograma que vamos a insertar. La norma Unicode UTF-8 nos propone cientos de símbolos y de pictogramas. No deje de visitar estas dos URL: http://unicode-table.com/en y http://www.utf8-chartable.de

Sepa que también puede usar las entidades de caracteres HTML clásicas: http://www.w3.org/TR/html4/sgml/entities.html

Para la validación del formulario, queremos insertar el "símbolo de validación", que tiene el código de visualización \2714.

Para la anulación del formulario, queremos usar el símbolo de la "cruz de eliminación", que tiene el código de visualización \2717.

Estos son los dos estilos:

.validar:before {
content: "\2714";
}
.anular:before {
content: "\2717";
}


6. Aplicar las clases

Última etapa, ahora vamos a aplicar las clases que acabamos de crear a los elementos a de los vínculos del formulario. Los dos vínculos utilizan la clase genérica de los botones botoncito y cada uno de ellos utilizará la clase que le corresponda para la inserción de contenido: validar y anular.

<a href="#" class="botoncito validar">Confirme<a/>
<a href="#" class="botoncito anular">Anule<a/>


7. La visualización del formulario

Así se visualizará el formulario:



8. Otros ejemplos similares

Encontrará otras variantes de esta técnica en la URL: http://www.red-team-design.com/just-another-awesome-css3-buttons


Espero haber ayudado en algo. Hasta la próxima oportunidad!







martes, 27 de mayo de 2014

Un último ejemplo de formulario elaborado



1. Objetivo

Vamos a estudiar paso a paso la realización del formulario en HTML5/CSS3 que la diseñadora web Inayaili de León presenta en el sitio web: http://24ways.org/2009/have-a-field-day-with-html5-forms/

Este es el resultado final:



2. La estructura del formulario

Este formulario se compone de tres partes principales: Your details, Delivery address y Card details. Para empezar bien, con una estructura lógica y semántica, vamos a usar los elementos <fieldset> y <legend> para cada una de esas partes.

<!DOCTYPE HTML>
<html lang="es">
<head>
<title>Formulario de Inayaili de León</title>
<meta charset="UTF-8" />
</head>
<body>
<form id=payment method=# action="#>
<fieldset>
<legend>Your details</legend>
</fieldset>
<fieldset>
<legend>Delivery address</legend>
</fieldset>
<fieldset>
<legend>Card details</legend>
</fieldset>
<fieldset>
<button type=submit>Buy it!</button>
</fieldset>
</form>
</body>
</html>

Como puede ver, la diseñadora ha preferido omitir las comillas en la declaración del valor de los atributos.


3. Los objetos HTML5

En HTML5 podemos usar nuevos atributos para los campos de texto, en función de su contenido: email, number, tel.

Además, podemos usar esos nuevos atributos para situar el punto de inserción en el primer campo (autofocus), para mostrar un ejemplo de un valor válido (placeholder) y para crear campos obligatorios (required).

La diseñadora ha insertado todos los objetos del formulario entre etiquetas <ol> y <li>. Efectivamente, es una buena idea, ya que un formulario se compone de una lista de objetos.

Veamos el código HTML de la sección Your details.

<fieldset>
<legend>Your details</legend>
<ol>
<li>
<label for=name>Name</label>
<input id=name name=name type=text
placeholder="First and last name" required autofocus>
</li>
<li>
<label for=email>Email</label>
<input id=email name=email type=email
placeholder="example@domain.com" required>
</li>
<li>
<label for=phone>Phone</label>
<input id=phone name=phone type=tel
placeholder="Eg. +447500000000" required>
</li>
</ol>
</fieldset>

Así se visualizará la sección sin los estilos:


El primer campo de texto, Name, corresponde al nombre de usuario. Además de los atributos "tradicionales", este campo dispone de tres nuevos atributos HTML5: 

  • placeholder="First and last name": permite incluir un valor de ejemplo en el campo. 
  • required: permite hacer que el campo sea obligatorio, que no pueda dejarse vacío. 
  • autofocus: permite hacer que el punto de inserción parpadee dentro de ese campo.
El segundo campo de texto, Email, es un campo de tipo e-mail: type=email. Esto permite añadir un control de los valores insertados. El campo deberá contener texto, seguido de arroba, y otra vez de texto, para que sea válido. Este campo también presenta los atributos placeholder y required.

El tercer campo de texto, Phone, es de tipo teléfono: type=tel. Recuerde que no hay ningún control de validación para los números de teléfono. Este campo también presenta los atributos placeholder y required.

En la sección Card details, encontramos dos campos de tipo number para introducir el número de la tarjeta de crédito y el código de seguridad.

<li>
<label for=cardnumber>Card number</label>
<input id=cardnumber name=cardnumber type=number required>
</li>
<li>
<label for=secure>Security code</label>
<input id=secure name=secure type=number required>
</li>

Usted puede usar una expresión regular con el atributo pattern, si desea exigir que se inserte un valor determinado.


4. El código completo del formulario

Este es el código completo del formulario:

<form id=payment method=# action=#>
<fieldset>
<legend>Your details</legend>
<ol>
<li>
<label for=name>Name</label>
<input id=name name=name type=text
placeholder="First and last name" required autofocus>
</li>
<li>
<label for=email>Email</label>
<input id=email name=email type=email
placeholder="example@domain.com" required>
</li>
<li>
<label for=phone>Phone</label>
<input id=phone name=phone type=tel
placeholder="Eg. +447500000000" required>
</li>
</ol>
</fieldset>
<fieldset>
<legend>Delivery address</legend>
<ol>
<li>
<label for=address>Address</label>
<textarea id=address name=address rows=5
required></textarea>
</li>
<li>
<label for=postcode>Post code</label>
<input id=postcode name=postcode type=text required>
</li>
<li>
<label for=country>Country</label>
<input id=country name=country type=text required>
</li>
</ol>
</fieldset>
<fieldset>
<legend>Card details</legend>
<ol>
<li>
<fieldset>
<legend>Card type</legend>
<ol>
<li>
<input id=visa name=cardtype type=radio>
<label for=visa>VISA</label>
</li>
<li>
<input id=amex name=cardtype type=radio>
<label for=amex>AmEx</label>
</li>
<li>
<input id=mastercard name=cardtype type=radio>
<label for=mastercard>Mastercard</label>
</li>
</ol>
</fieldset>
</li>
<li>
<label for=cardnumber>Card number</label>
<input id=cardnumber name=cardnumber type=number required>
</li>
<li>
<label for=secure>Security code</label>
<input id=secure name=secure type=number required>
</li>
<li>
<label for=namecard>Name on card</label>
<input id=namecard name=namecard type=text
placeholder="Exact name as on the card" required>
</li>
</ol>
</fieldset>
<fieldset>
<button type=submit>Buy it!</button>
</fieldset>
</form>


5. La visualización sin estilos

Esta es la apariencia que tendrá el formulario sin los estilos:



6. El diseño general

En primer lugar, la diseñadora ha definido los estilos de los elementos que componen la página mediante un margen y un espaciado de 0.

html, body, h1, form, fieldset, legend, ol, li {
margin: 0;
padding: 0;
}

A continuación ha definido el formato del texto y del cuerpo de la página:

body {
background: #ffffff;
color: #111111;
font-family: Georgia, "Times New Roman", Times, serif;
padding: 20px;
}


7. El diseño del formulario

El formulario presenta un diseño con un color de fondo, bordes redondeados, un espaciado y un ancho fijo.

form#payment {
background: #9cbc2c;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
padding: 20px;
width: 400px;
}



8. El formato de las secciones

Cada sección del formulario utiliza los elementos <fieldset> y <legend>. Se les ha aplicado un diseño sin bordes y un margen inferior. Fíjese en que se ha usado la pseudo-clase last-of-type para seleccionar el último <fieldset>.

form#payment fieldset {
border: none;
margin-bottom: 10px;
}
form#payment fieldset:last-of-type {
margin-bottom: 0;
}

El elemento <legend> de los elementos <fieldset> también aparece resaltado, en particular, con una sombra:

form#payment legend {
color: #384313;
font-size: 16px;
font-weight: bold;
padding-bottom: 10px;
text-shadow: 0 1px 1px #c0d576;
}

En cada sección del formulario, cada etiqueta <legend> aparece precedida de la palabra Step seguida de un número incrementado. Con el pseudo-elemento :before y las propiedades content y counter-increment, podemos automatizar esta enumeración.

form#payment > fieldset > legend:before {
content: "Step " counter(fieldsets) ": ";
counter-increment: fieldsets;
}

Por último, para el recuadro del tipo de tarjeta de crédito, la diseñadora web ha preferido crear un aspecto de tipo <label> y no <legend>.

form#payment fieldset fieldset legend {
color: #111111;
font-size: 13px;
font-weight: normal;
padding-bottom: 0;
}

Así se visualiza el formulario:



9. El diseño de los elementos de la lista

Todos los objetos del formulario están insertados en elementos <li> de una lista <ol>. Estos presentan un diseño con bordes redondeados y una ligera transparencia (rgba()).

form#payment ol li {
background: #b9cf6a;
background: rgba(255,255,255,.3);
border-color: #e3ebc3;
border-color: rgba(255,255,255,.6);
border-style: solid;
border-width: 2px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
line-height: 30px;
list-style: none;
padding: 5px 10px;
margin-bottom: 2px;
}
form#payment ol ol li {
background: none;
border: none;
float: left;
}



10. El diseño de las etiquetas

A continuación se ha definido el diseño de las etiquetas de los campos <label> y, en especial, las de las tarjetas de crédito (label[for=amex]), que están ilustradas con una imagen y el cursor toma la forma de mano (cursor: pointer) cuando se pasa el ratón por encima de ellas (:hover).

form#payment label {
float: left;
font-size: 13px;
width: 110px;
}
form#payment fieldset fieldset label {
background:none no-repeat left 50%;
line-height: 20px;
padding: 0 0 0 30px;
width: auto;
}
form#payment label[for=visa] {
background-image: url(visa.gif);
}
form#payment label[for=amex] {
background-image: url(amex.gif);
}
form#payment label[for=mastercard] {
background-image: url(mastercard.gif);
}
form#payment fieldset fieldset label:hover {
cursor: pointer;
}



11. Los campos de tipo <input>

Todos los campos de tipo <input> serán idénticos, a excepción de los botones de opción y el botón de validación. Para ello, fíjese en que se ha usado la pseudo-clase :not(): input:not([type=radio]).

form#payment input:not([type=radio]),
form#payment textarea {
background: #ffffff;
border: none;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
border-radius: 3px;
font: italic 13px Georgia, "Times New Roman", Times, serif;
outline: none;
padding: 5px;
width: 200px;
}
form#payment input:not([type=submit]):focus,
form#payment textarea:focus {
background: #eaeaea;
}
form#payment input[type=radio] {
float: left;
margin-right: 5px;
}


12. El botón de envío del formulario

El botón de envío del formulario tiene un estilo propio.

form#payment button {
background: #384313;
border: none;
-moz-border-radius: 20px;
-webkit-border-radius: 20px;
-khtml-border-radius: 20px;
border-radius: 20px;
color: #ffffff;
display: block;
font: 18px Georgia, "Times New Roman", Times, serif;
letter-spacing: 1px;
margin: auto;
padding: 7px 25px;
text-shadow: 0 1px 1px #000000;
text-transform: uppercase;
}
form#payment button:hover {
background: #1e2506;
cursor: pointer;
}



Espero haber ayudado en algo. Hasta la próxima oportunidad!








sábado, 24 de mayo de 2014

Un ejemplo de formulario interactivo



1. Objetivo

Vamos a explicar paso a paso la realización del formulario en CSS3.

Esta es la presentación visual del formulario:


Si se ha hecho clic en el vínculo que permite ver más opciones: Ver más opciones.


Cuando complete el formulario y haga clic en el botón ENVIAR, aparecerá un mensaje de confirmación:



2. La estructura inicial del formulario

La estructura es bastante clásica, con dos campos, uno para el Nombre y otro para la Contraseña:

<form id="start" action="/">
<h1>Inscripción a CSS3</h1>
<p>
<label for="name">Nombre</label>
<input id="name" type="text" />
</p>
<p>
<label for="password">Contraseña</label>
<input id="password" type="password" />
</p>
</form>


3. Las opciones adicionales

Las opciones adicionales para el Código postal, la Ciudad y el País, se encuentran en una caja <div id="options">, para que sea posible gestionar la interactividad, justo debajo de los campos anteriores.

En esa misma caja <div> se encuentra el vínculo para acceder a las opciones adicionales Ver más opciones, en un párrafo <p> que utiliza la clase llamada show. Esta caja también contiene el vínculo para Ocultar las opciones, en un párrafo <p> que utiliza la clase llamada hide.

<div id="options">
<p class="show">
<a href="#options">Ver más opciones</a>
</p>
<p class="hide">
<a href="#start">Ocultar las opciones</a>
</p>
<p>
<label for="zipcode">Código postal</label>
<input id="zipcode" type="text" />
</p>
<p>
<label for="town">Ciudad</label>
<input id="town" type="text" />
</p>
<p>
<label for="country">País</label>
<select id="country">
<option>Francia</option>
<option>Alemania</option>
<option>Inglaterra</option>
<option>España</option>
<option>Italia</option>
<option>Países Bajos</option>
<option>Rusia</option>
<option>Suecia</option>
</select>
</p>
</div>


4. El botón de envío

El botón de envío (type="submit") ha sido insertado en un párrafo <p> en comentario, para que sea posible mostrar el mensaje de confirmación con los estilos CSS. Los dos elementos interactivos, el botón ENVIAR y el vínculo de cancelación cancelar, han sido insertados en vínculos:

<!--p>
<input type="submit" value="ENVIAR" /> o <a
href="#form">cancelar</a>
</p-->
<p>
<a class="submit" href="#finish">ENVIAR</a> o <a
href="#start">cancelar</a>
</p>


5. El mensaje de confirmación

Una vez que haya completado y enviado el formulario, aparecerá un mensaje de confirmación. Ese mensaje aparece dentro de una caja <div id="finish">.

<div id="finish">
<p>
Inscripción finalizada!
</p>
</div>


6. Los estilos generales

En primer lugar, el diseñador web ha definido el estilo de un gran número de elementos HTML, pero no creemos que sea necesario repetir esa larga lista aquí. Si lo desea puede consultarla en la URL que indicamos anteriormente.


7. El diseño del formulario

El formulario (form) presenta un diseño con degradados, bordes redondeados y sombras, que se han adaptado para los principales navegadores.

form{
background:#f7f7f7;
background:-moz-linear-gradient(90deg, #ccc, #fff); /*
Firefox */
background:-webkit-gradient(linear, left top, left bottom,
from(#fff), to(#ccc)); /* Webkit */
border:1px solid #aaa;
-moz-border-radius:10px;
-webkit-border-radius:10px;
-moz-box-shadow:0 0 15px #aaa;
-webkit-box-shadow:0 0 15px #aaa;
margin:60px auto 0;
padding:20px;
width:440px;
}

El título del formulario es un h1:

h1{
border-bottom:1px solid #ccc;
font-size:11px;
font-weight:bold;
letter-spacing:2px;
margin-bottom:20px;
text-transform:uppercase;
}

Los párrafos tienen un margen inferior de 0. Fíjese en que se ha usado la pseudo-clase :last-child para seleccionar el último párrafo del formulario.

form p{
margin-bottom:20px;
}
form p:last-child{
margin-bottom:0;
}


8. Las etiquetas

Las etiquetas (label) presentan, entre otras propiedades, un cursor en forma de mano.

label{
cursor:pointer;
display:block;
float:left;
font-size:13px;
font-weight:bold;
line-height:28px;
margin-bottom:5px;
width:120px;
}

Las etiquetas cambian de apariencia cuando se pasa el cursor sobre ellas (hover): aparece el carácter » y el texto cambia de color.

La etiqueta sin actividad:


La misma etiqueta cuando se pasa el cursor sobre ella:


El selector form p:hover label se aplicará en un formulario (form) a un párrafo (p) cuando se señale con el cursor del ratón (:hover), siempre y cuando contenga la etiqueta (label):

form p:hover label{
color:#0459b7;
}

Con la pseudo-clase :after, la hoja de estilo generará el contenido (content): » ("»").

form p:hover label:after{
content:"»";
}


9. Los campos de inserción de datos

Los campos de inserción de texto (input[type=text]) y de contraseña (input[type= password]) presentan un diseño con fondos de color y transparencia, degradados y bordes redondeados.

input[type=text],
input[type=password]{
background: rgba(255, 255, 255, 0.9);
background:-moz-linear-gradient(90deg, #fff, #eee); /*
Firefox */
background:-webkit-gradient(linear, left top, left bottom,
from(#eee), to(#fff), color-stop(0.2, #fff)); /* Webkit */
border:1px solid #aaa;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
padding:5px;
}


Cuando uno de esos campos esté activo, es decir, presente el elemento focus, se modificará su formato con un borde azul y una sombra.

input[type=text]:focus,
input[type=password]:focus{
border-color:#093c75;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none;
}



10. El menú desplegable

El menú desplegable para los países (País) mostrará una sombra y un borde cuando se pase el cursor por encima.
select{
cursor:pointer;
padding:3px;
-moz-box-shadow:0 0 3px #aaa;
-webkit-box-shadow:0 0 3px #aaa;
}
select:active,
select:focus{
border:1px solid #093c75;
-moz-box-shadow:0 0 3px #0459b7;
-webkit-box-shadow:0 0 3px #0459b7;
outline:none;
}


11. El botón de envío

El botón para enviar el formulario (input[type=submit]) y el vínculo asociado (a.submit) presentan, como estilos CSS3 más destacados, un fondo degradado, bordes redondeados y una sombra aplicada a la caja y al texto.

input[type=submit],
a.submit{
background:#ddd;
background:-moz-linear-gradient(90deg, #0459b7, #08adff);
/* Firefox */
background:-webkit-gradient(linear, left top, left bottom,
from(#08adff), to(#0459b7)); /* Webkit */
border:1px solid #093c75;
-moz-border-radius:3px;
-webkit-border-radius:3px;
-moz-box-shadow:0 1px 0 #fff;
-webkit-box-shadow:0 1px 0 #fff;
color:#fff;
cursor:pointer;
font-family:Arial,sans-serif;
font-size:12px;
font-weight:bold;
margin-left:120px;
padding:5px 10px;
text-decoration:none;
text-shadow:0 1px 1px #333;
text-transform:uppercase;
}

Así se visualizará el botón para enviar el formulario:


Al pasar el cursor sobre ellos (:hover), esos elementos interactivos tendrán un diseño diferente.

input[type=submit]:hover,
a.submit:hover{
background:#eee;
background:-moz-linear-gradient(90deg, #067cd3, #0bcdff);
background:-webkit-gradient(linear, left top, left bottom,
from(#0bcdff), to(#067cd3));
border-color:#093c75;
text-decoration:none;
}

Así se visualizará el botón de envió al pasar el ratón por encima:


Por último, esos elementos también mostrarán un diseño específico cuando se haga clic en ellos (pseudo-clase :active) y cuando estén activos (pseudo-clase :focus).

input[type=submit]:active,
input[type=submit]:focus,
a.submit:active,
a.submit:focus{
background:#ccc;
background:-moz-linear-gradient(90deg, #0bcdff, #067cd3);
background:-webkit-gradient(linear, left top, left bottom,
from(#067cd3), to(#0bcdff));
border-color:#093c75;
outline:none;
}

Así se visualizará el botón de envío cuando se haga clic en él:


12. La gestión de las opciones

Las opciones del formulario se han insertado en una caja <div id="content">.

#options{
margin-bottom:20px;
}


13. La visualización inicial

Al visualizar inicialmente el formulario, podemos ver el vínculo para acceder a las opciones (Ver más opciones).

#options .show{
display:block;
}

Este vínculo usa la clase .show.

<p class="show">
<a href="#options">Ver más opciones</a>
</p>

Al visualizar inicialmente el formulario, las opciones, que se encuentran dentro de párrafos (<p>), quedan ocultas gracias a la propiedad display con el valor none.

#options p{
display:none;
}

Al igual que los elementos que usan la clase .hide.

#options .hide{
display:none;
}

Eso es lo que ocurre con el párrafo que contiene el vínculo para ocultar las opciones (Ocultar las opciones).

<p class="hide">
<a href="#start">Ocultar las opciones</a>
</p>


14. Visualizar las opciones

El vínculo para acceder a las opciones (Ver más opciones) se encuentra dentro de un párrafo <p> que usa la clase show.

<p class="show">
<a href="#options">Ver más opciones</a>
</p>

Cuando el usuario haga clic en dicho vínculo, Ver más opciones, se estará haciendo una llamada a los elementos indicados en el href del vínculo: href="#options". Con el uso de la pseudo-clase :target, los párrafos p de #options serán seleccionados y se mostrarán:

#options:target p{
display:block;
}

Y los elementos de #options que tengan la clase .show quedarán ocultos, como es el caso del vínculo para acceder a las opciones (Ver más opciones):

#options:target .show{
display:none;
}

Ahora podremos ver el vínculo que permite Ocultar las opciones, así como los campos adicionales.



15. Ocultar las opciones

Ahora el vínculo para Ocultar las opciones es visible y se encuentra dentro de un párrafo <p> que utiliza la clase .hide.

<p class="hide">
<a href="#start">Ocultar las opciones</a>
</p>

Cuando el usuario haga clic en ese vínculo, se estará haciendo referencia al valor de href, es decir, #start, que es el código de identificación del formulario:

<form id="start" action="/">
...
</form>

De este modo volveremos a visualizar el formulario en su estado inicial.


16. El mensaje de confirmación

Cuando completemos el formulario, aparecerá un mensaje de confirmación. Ese mensaje de confirmación se encuentra dentro de un párrafo <p>, en una caja <div id="finish">.

<div id="finish">
<p>
Inscripción finalizada!
</p>
</div>

Inicialmente, esa caja <div id="finish"> está oculta (display: none). Se le ha aplicado un fondo de color con transparencia (rgba()) y bordes redondeados.

#finish{
background:rgba(65, 166, 42, 0.2);
border:2px solid #41a62a;
-moz-border-radius:3px;
-webkit-border-radius:3px;
display:none;
padding:5px 10px;
}

Cuando el usuario haga clic en el botón de envío, la pseudo-clase :target permitirá aplicar esos estilos a la caja <div id="finish"> y podremos visualizarla.

#finish:target {
display:block;
}



Espero haber ayudado en algo. Hasta la próxima oportunidad!







       
free counters

Páginas vistas en total según Google