Mostrando entradas con la etiqueta internet. Mostrar todas las entradas
Mostrando entradas con la etiqueta internet. Mostrar todas las entradas

martes, 6 de enero de 2015

Crea tu propia página web desde cero (III)

En el artículo anterior vimos cómo crear un formulario web con el que recoger datos de un usuario como su nombre, contraseña, etc. Esta vez vamos a ver cómo darle un toque más atractivo a la página, es decir, darle un estilo con CSS. Veremos aspectos básicos de CSS para cambiar los márgenes de los elementos de la web, los colores, tipos y tamaños de letra, etc. Y también veremos como utilizar el framework Bootstrap, que utiliza un estilo propio de manera fácil con la que nos podemos olvidar de complicarnos la vida en algunas cosas de diseño. Además, con Bootstrap haremos que nuestra web sea responsive, es decir, que se adapte a cualquier dispositivo móvil.


CSS es un lenguaje que define el estilo de una página web. Se encarga de especificar cómo será el diseño y estilo de cada elemento de la web. Y cada uno de sus elementos los debemos identificar previamente en nuestro HTML, para así especificar en CSS cómo deben ser. Por ejemplo, en el formulario que hicimos en el post anterior, teníamos un div marcado como class="encabezado", que por ahora sólo contenía el título Mi primera web, sin ningún estilo, simplemente en color negro y alineado a la izquierda. Podemos identificar ese div con el atributo id con un nombre que deberá ser único en toda la página (en todo su fichero .html), o con el atributo class, de manera que podrá haber varios elementos con la misma clase y así decirle al CSS cómo debe ser ese div. Por ejemplo:

<div class="encabezado">
   <h1>Mi primera web</h1>
</div>

En este caso, el div está marcado como class="encabezado". Esto quiere decir que será de la clase encabezado, y podrá haber más elementos marcados con la misma clase. Así, cuando le digamos al CSS que la clase encabezado deberá tener un cierto estilo, todos los elementos de esa clase seguirán ese estilo. Sin embargo, podemos tener lo siguiente:

<div id="encabezado">
   <h1>Mi primera web</h1>
</div>

En este caso el encabezado está como identificador (id), de manera que en el CSS se marcará el estilo del elemento encabezado, que será único en toda la página. Para dar estilo a un elemento como el div anterior, se puede hacer de dos maneras:

1- Estilo incrustado en el HTML. Esta es la forma a priori más sencilla pero menos recomendada, y consiste en añadir el atributo style a la etiqueta div (para este ejemplo), y especificar qué estilo queremos darle. Esta manera puede ser útil cuando queremos dar un estilo rápido y específico a un elemento concreto y no nos queremos complicar mucho. La manera sería:

<div class="encabezado" style="background-color: red; margin-left: 50%; text-align: center;">
   <h1>Mi primera web</h1>
</div>

En este caso, le hemos dicho que ese div tenga como color de fondo el rojo, que el margen por la izquierda sea del 50% del ancho de la página, y que la alineación del texto sea centrada. Pero podemos añadir muchos más estilos, por lo que puede ser engorroso añadir tantos dentro de la propia etiqueta, siendo cada propiedad separada por punto y coma, y cada propiedad poniendo su nombre clave seguido de dos puntos y el valor.

2- Estilo en una hoja de estilos CSS externa. Es la manera más adecuada y habitual. Consiste en escribir un fichero con extensión .css en la que escribimos todos los estilos que queramos para la web. Podemos tener varias hojas de estilos para una misma web, y cambiar de estilo en el propio navegador. Lo ideal sería tener una carpeta css en nuestro directorio raíz del proyecto, y ahí incluir cada fichero .css. Por ejemplo, creamos un fichero llamado estilo.css y lo metemos en la carpeta css. También es habitual tener una carpeta llamada img donde incluir todas las imágenes que vayamos a utilizar.

En la carpeta css meteremos los ficheros .css, y en la carpeta img las imágenes que vayamos a utilizar.

Para poner el mismo estilo de color rojo de fondo, margen 50% a la izquierda y texto centrado, en el fichero estilo.css escribimos:

.encabezado
{
background-color: red;
margin-left: 50%;
text-align: center;
}

Así le estamos diciendo a nuestra hoja de estilos que la clase encabezado (al ser una clase se pone un punto delante) tenga las tres propiedades que queremos con sus respectivos valores. Pero además, tenemos que decirle a nuestro index.html dónde está esa hoja de estilos. Para ello, en nuestro encabezado <head></head>, ponemos:

<link href="css/estilo.css" rel="stylesheet">

Para verlo un poco más claro, en la siguiente imagen se ve el código del index.html, donde se ve con la etiqueta <link> dónde está la hoja de estilos (en la carpeta css, y se llama estilo.css). Debemos borrar la línea style="..." que pusimos anteriormente, pues sería repetitivo y no comprobaríamos el funcionamiento del estilo con el archivo .css.



Si lo hemos hecho correctamente, al refrescar nuestra web veremos algo así:


Gracias al fondo rojo vemos claramente lo que ocupa el div. También podemos observar que este encabezado empieza a mitad de página: esto quiere decir que funciona bien el margen que pusimos del 50%, pues empieza al 50% de página por la izquierda. Y por último, el texto Mi primera web queda centrado dentro del div.

Como se puede intuir, existen multitud de propiedades de diseño que podemos cambiar a nuestros elementos de la web. Como son muchos, aquí no los vamos a ver todos, pero os dejo el enlace del W3Schools donde se muestran ejemplos y explicaciones de cada uno:



Otra cosa que debemos haber tenido en cuenta es que en el ejemplo anterior, hemos dado un estilo a una clase, marcada como class="encabezado". Podríamos tener varios elementos de la misma clase, y todos seguirían el estilo marcado por nuestro CSS. Pero también podemos dar estilos a elementos concretos marcados con su identificador (id), o a elementos marcados por etiquetas. A esto se conoce como selectores, y hay de varios tipos, pero básicamente utilizaremos:

.clase: Para especificar el estilo a una clase, cada elemento debe tener el atributo class="clase", diciéndole de qué clase es, y en el CSS, el nombre de esa clase debe estar precedida por un punto.

#id: Si el elemento es único y está identificado con id="identificador", entonces en el CSS irá precedido por la almohadilla.

elemento: Si es un elemento genérico especificado por su etiqueta, se pondrá su nombre sin más en el CSS. Por ejemplo, podemos querer que los elementos de texto marcados con párrafos <p> tengan cierta fuente tipográfica y estilo, o lo mismo para los <div>, <h1>, etc.

Para cada elemento al que queramos dar estilo, sus propiedades deberán ir incluidas entre llaves, como vimos en el ejemplo anterior. Aquí puedes ver todos los selectores con sus explicaciones y ejemplos. Os recomiendo que investiguéis y probéis con todo tipo de selectores, atributos, propiedades, etc. para ver cómo se comportan vuestros elementos de la web.

...

Una vez visto esto, para dar un estilo básico a nuestra web no necesitamos mucho más. Vamos a darle un estilo a nuestro ejemplo que anteriormente tenía un simple fondo blanco y las letras eran muy básicas y en negro. Por una parte debemos escribir bien el index.html para marcar cada elemento con su id o clase, y por otra parte escribir en el fichero estilo.css las propiedades que queramos tener de estilo para nuestros elementos del formulario. El código del index.html sólo incluye el bloque <body></body>. En negrita se muestran los elementos a los que se da estilo en el CSS.

index.html

<body>
  <div class="encabezado">
    <h1>Mi primera web</h1>
  </div>
  <div class="cuerpo">
    <form id="registro" name="registro" action="registro.php" method="post">
      <h2>Registro de usuario</h2>
      <hr>
      <h3>Introduce tus datos personales:</h3>
      <p>
      Nombre de usuario:<br>
      <input type="text" id="nombre" name="nombre" placeholder="Introduce tu nombre" required>
      </p>
      <p>
      E-Mail:<br>
      <input type="email" id="email" name="email" placeholder="email@ejemplo.com" required>
      </p>
      <p>
      Contraseña:<br>
      <input type="password" id="contrasena" name="contrasena" required>
      </p>
      <p>
      Fecha de nacimiento:<br>
      <input type="date" id="fecha-nacimiento" name="fecha-nacimiento">
      </p>
      <p>
      Nacionalidad:<br>
      <select id="nacionalidad" name="nacionalidad">
        <option value="0">Elije tu país</option>
        <option value="1" selected>España</option>
        <option value="2">Resto de Europa</option>
        <option value="3">Resto del mundo</option>
      </select>
      </p>
      <p>
      Foto:<br>
      <input type="file" id="foto" name="foto">
      </p>
      <p>
      <input type="checkbox" id="acepto" name="acepto" required>
      Acepto los términos y condiciones
      </p>
      <hr>
      <input class="boton-enviar" type="submit" id="enviar" value="Enviar datos">
    </form>
  </div>
</body>


estilo.css:

body
{
background-color: #33CCFF;
}

.encabezado
{
background-image: url("../img/fondo-encabezado.jpg");
margin-bottom: 5%;
height: 100px;
text-align: center;
color: yellow;
font-family: verdana;
}

.cuerpo
{
background-color: white;
margin-left: 25%;
margin-right: 25%;
padding: 5% 5% 5% 5%;
font-family: courier;
text-align: center;
}

p
{
font-size: 12px;
}

h2
{
color: blue;
}

input[type=submit]
{
background-color: yellow;
border: none;
padding: 2% 2% 2% 2%;
}

input[type=submit]:hover
{
background-color: orange;
}

Vamos a analizar un poco estos códigos. 

body - Lo único que le hemos indicado es el color de fondo del bloque <body></body>

.encabezado - A esta clase (le hemos puesto el punto delante para indicar que es un class) le hemos indicado una imagen de fondo, que estará en la carpeta img que dijimos anteriormente, siguiendo la nomenclatura url("ruta de la imagen"); También tiene un margen inferior del 5%, así que lo que haya por debajo tendrá una pequeña separación de margen. La propiedad height indica que el alto de este encabezado será de 100 píxels. Nótese que las unidades se pueden indicar en porcentaje (%) o en píxels concretos (px). La alineación del texto será centrada, el color del texto amarillo y la fuente tipográfica Verdana. En la web que indicamos antes del W3Schools se puede mirar más sobre las fuentes, colores, etc.

.cuerpo - Esta clase tendrá un color blanco de fondo, márgenes del 25% a izquierda y derecha, por lo que quedará el bloque centrado con espacios a los lados, separación del 5% por todos los lados, la fuente será Courier y el texto estará centrado. Nos paramos a explicar un poco las propiedades que indican posición (top, bottom, left, right). Cuando queremos poner un margen (margin) o un espacio de separación (padding), podemos indicar el lado concreto de esa propiedad. Por ejemplo, margin-top, o padding-left... Pero también podemos indicarlo todo en una sola propiedad. En nuestro ejemplo tenemos padding: 5% 5% 5% 5%, esto quiere decir que en las cuatro direcciones el espacio de separación será del 5%. Pero también podríamos haber puesto padding-top: 5%; padding-bottom: 5%; padding-left: 5%; padding-right: 5%;

p - A la etiqueta <p> le indicamos que el tamaño de letra será de 12 píxels.

h2 - Los títulos etiquetados con <h2> serán de color azul. Los colores se pueden poner como nombre o como código hexadecimal (ver más información en la web del W3Schools).

input[type=submit] - Dijimos en el post anterior que los inputs pueden ser de varios tipos. Uno de ellos es submit, que viene a ser un botón que envía datos al servidor. Así que en este caso en nuestro CSS estamos especificando el estilo sólo para este tipo de inputs. El botón será de color amarillo, le hemos quitado el borde y la separación será del 2% por todos los lados.

input[type=submit]:hover - Además, para este mismo tipo de input, cuando pasemos el cursor por encima (hover), haremos que cambie su color a naranja.

El resultado de aplicar este CSS a nuestra web es el siguiente:


Hemos visto un poco sobre CSS, pero lo recomendable es que el usuario pruebe por su cuenta todas las posibilidades que crea convenientes y que mire en la web del W3Schools, pues hay muchas propiedades y palabras claves que no merece la pena poner aquí.



Vamos a ver brevemente el framework Bootstrap. Se trata de una herramienta que nos da los estilos ya hechos, muy atractivos y listos para utilizar. Para ello podemos descargarnos los archivos necesarios de la web oficial o simplemente añadir un enlace a nuestro index.html, al igual que hicimos para nuestro estilo.css, pero para vincular a los estilos de Bootstrap que hay online:

<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/css/bootstrap.min.css">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.1/js/bootstrap.min.js"></script>

Debemos poner la primera línea <link... para el estilo en sí (observemos que es un .css), y el segundo es un enlace a un archivo JavaScript (.js) necesario para el funcionamiento de algunos elementos de este framework.

No vamos a entrar en demasiados detalles sobre el funcionamiento de Bootstrap, podemos ver en su web las secciones de componentes, CSS, etc. y ver cómo aplicar algunos elementos. Para nuestro ejemplo, si quitamos la línea <link... que pusimos con nuestro estilo.css y la cambiamos por las líneas comentadas antes de Bootstrap, tenemos lo siguiente:


Vemos que el estilo es propio de Bootstrap, con sus tipos de letra, pero no tiene márgenes y es bastante sencillo. Podemos arreglarlo un poco, para ello es recomendable descargarse los archivos de Bootstrap y descomprimir la carpeta en nuestro proyecto. Es recomendable renombrarlo a bootstrap, quitando el sufijo que indica la versión. Así, en nuestra carpeta Ejemplo tendríamos las carpetas bootstrap, css e img. Dentro de la carpeta bootstrap hay varias carpetas y archivos. Debemos ir a la carpeta dist, donde hay varias carpatas más. Vamos a su carpeta css y copiamos al menos el archivo bootstrap.css (no confundir con el bootstrap.css.map) a nuestra carpeta propia css. También es recomendable copiar tal cual las carpetas js y fonts a nuestra carpeta raíz, uniéndose así a las de bootstrap, css e img, ya que hay elementos de Bootstrap que necesitan de esos archivos.Volvemos a cambiar nuestra línea <link> para tenerla así:

<link href="css/bootstrap.css" rel="stylesheet" type="text/css" title="Bootstrap">
<link href="css/estilo.css" rel="alternate stylesheet" type="text/css" title="Estilo propio">

Con estas dos líneas estamos indicando que el estilo principal será el bootstrap.css, al que llamamos Bootstrap, y el estilo alternativo será nuestro estilo propio estilo.css. Podemos cambiar de estilo en nuestro navegador, por ejemplo desde Firefox vamos al menú, y en Ver accedemos a Estilo de página, donde elegiremos uno u otro, o incluso podemos ver la web sin ningún estilo.

Si probamos nuestra web, la veremos igual que antes, pues ese archivo bootstrap.css es el mismo que el que hay online y probamos antes sin descargarnos nada. Lo que debemos hacer es añadir diseños propios a este fichero, es decir, abrimos el archivo css/bootstrap.css, que tiene miles de líneas, y al final del todo añadimos nuestros propios estilos. Por ejemplo, podemos añadirle los bloques que pusimos de .encabezado y .cuerpo. Si lo copiamos tal cual, nuestra web cambiará así:


Es casi como nuestro estilo.css pero con algunas diferencias, ya que los diseños de los elementos body, p, h2, input... ya están predefinidos en el fichero bootstrap.css, pero podríamos buscarlos en el fichero y cambiarlos.

Vamos a modificar de nuevo nuestro index.html para añadir algunas propiedades propias de Bootstrap a nuestro formulario, para darle un aspecto algo más atractivo a los inputs y botones. En negrita se indican los atributos propios de Bootstrap que reconoce para darles estilo. Fijaos que hemos sustituido los bloques <p> por bloques <div class="form-control"> que es como lo hace Bootstrap:

<body>
  <div class="encabezado">
    <h1>Mi primera web</h1>
  </div>
  <div class="cuerpo">
    <form class="form-group" id="registro" name="registro" action="registro.php" method="post">
      <h2>Registro de usuario</h2>
      <hr>
      <h3>Introduce tus datos personales:</h3>
      <div class="form-group">
      Nombre de usuario:<br>
      <input type="text" class="form-control" id="nombre" name="nombre" placeholder="Introduce tu nombre">
      </div>
      <div class="form-group">
      E-Mail:<br>
      <input type="email" class="form-control" id="email" name="email" placeholder="email@ejemplo.com">
      </div>
      <div class="form-group">
      Contraseña:<br>
      <input type="password" class="form-control" id="contrasena" name="contrasena">
      </div>
      <div class="form-group">
      Fecha de nacimiento:<br>
      <input type="date" class="form-control" id="fecha-nacimiento" name="fecha-nacimiento">
      </div>
      <div class="form-group">
      Nacionalidad:<br>
      <select id="nacionalidad" class="form-control" name="nacionalidad">
        <option value="0">Elije tu país</option>
        <option value="1" selected>España</option>
        <option value="2">Resto de Europa</option>
        <option value="3">Resto del mundo</option>
      </select>
      </div>
      <div class="form-group">
      Foto:<br>
      <input type="file" id="foto" name="foto">
      </div>
      <div class="form-group">
      <input type="checkbox" id="acepto" name="acepto" required>
      Acepto los términos y condiciones
      </div>
      <hr>
      <input class="btn btn-primary" class="form-control" type="submit" id="enviar" value="Enviar datos">
    </form>
  </div>
</body>

Como Bootstrap tiene mucho código propio, os recomiendo que miréis su guía y probéis. Hay ejemplos de elementos de formularios con los que podéis practicar. El resultado de aplicar este código sería:


Ahora vemos que los inputs y el botón de enviar datos son distintos. Lo dicho, como hay infinitas posibilidades, debéis practicar y probar cosas propias mirando los ejemplos y guías de la web de Bootstrap.

Y eso es todo. Aunque el artículo puede haber resultado algo largo, en realidad es muy poco lo que se ha visto sobre CSS y Bootstrap, ya que los temas son muy extensos. Pero al menos hemos visto algo con lo que dar un estilo propio y básico a nuestra web. Os recomiendo que practiquéis y cambiéis cosas, márgenes, fondos, colores, tipos de letra, tamaños, etc. Al final el diseño y maquetación de una web consiste en ir probando hasta que nos gusta lo que vemos.

En el próximo artículo veremos por fin cómo crear una base de datos con MySQL y utilizarla para enviar datos al servidor con PHP, pudiendo darle uso a nuestro formulario de registro.


Extra:








domingo, 21 de diciembre de 2014

Crea tu propia página web desde cero (II)

Seguimos con esta especie de tutorial para crear nuestra propia web desde cero. En el artículo anterior vimos cómo configurar los servicios necesarios para lanzar nuestro primer proyecto web de forma local y empezar a mostrar algunos resultados a modo de texto de bienvenida. Ahora vamos a ver cómo rellenar nuestra primera página con algo más de contenido y con más elementos hasta crear nuestro primer formulario.

ATENCIÓN: Si no tienes instalado un servidor local o tuviste problemas con los pasos del artículo anterior para instalar y configurar WAMP (no te funciona Apache o PHP, etc.), puedes probar cualquier código HTML y probar sus resultados aquí:

Tryit Editor de W3Schools

Si habéis hecho los deberes y habéis practicado un poco con código HTML habréis visto que cada elemento de una web lo contienen unas etiquetas. Cada tipo de etiqueta es un elemento distinto, por ejemplo para texto, tenemos que...

<h1>Esto es un título grande</h1>
<h6>Y este es el título más pequeño, pasando por h2, h3, h4 y h5</h6>
<br>
<p>Esto es un párrafo. Y el br de arriba es un espacio en blanco</p>
<i>Esto estará en cursiva</i>
<b>Esto en negrita</b>
<u>Y esto subrayado</u>
Todo esto va junto, ya que no lo hemos encerrado en un párrafo.
<p>Y esto es un nuevo párrafo. Y bajo esto habrá una línea gracias al hr:</p>
<hr>

Podéis probar el código de arriba para ver lo que muestra. Recordad que todos los ejemplos de código que veamos aquí deben ser introducidos en el cuerpo (salvo que se diga otra cosa), es decir, entre las etiquetas <body> </body>. El ejemplo anterior mostraría lo siguiente:

Una vez dominados los elementos de texto, vamos a añadir otros elementos como botones, cuadros de texto o menús seleccionables. Estos nuevos elementos están hechos para realizar alguna acción en concreto, pero estas acciones y funciones las veremos más adelante. Por ahora sólo vamos a ver cómo añadirlas a nuestra página.

Vamos a suponer el típico ejemplo de una página de registro de usuario. Necesitamos introducir un nombre de usuario, un correo electrónico, una contraseña, elegir nuestra edad... y una vez rellenado el formulario, necesitaremos un botón para enviar esa información al servidor. Vamos a ver cada uno de estos elementos:


Los inputs son elementos que reciben alguna información, como por ejemplo un cuadro de texto, o una casilla de validación. Es algo con lo que interactuamos. Y hay de varios tipos según la versión HTML5 que estamos utilizando y que acepta nuevos modelos predefinidos, algunos de los más utilizados y que veremos son:

text: Son los clásicos cuadros de texto, donde introduciremos texto cualquiera.
number: Son cuadros de texto donde sólamente introduciremos algún número.
email: Estos cuadros de texto validarán automáticamente una dirección de correo electrónico.
password: En estos cuadros de texto se ocultarán los caracteres para introducir contraseñas.
file: Esta vez nos mostrará un botón que al pulsarlo nos permitirá seleccionar un archivo.
date: Nos mostrará un cuadro con un calendario para seleccionar una fecha.
button: Un botón cualquiera
radio: Es un botón de opción, donde sólo podemos elegir uno entre los que haya.
checkbox: Es también un botón de opción o validación, pudiendo seleccionar varios.

Ahora bien, ¿cómo hacemos en nuestro código para decidir de qué tipo queremos añadir el input, y cómo lo escribimos exactamente? Pues toca hablar de los atributos de las etiquetas. Cada etiqueta puede tener atributos para indicarle el tipo, la clase, el estilo... cosas concretas que queramos para el bloque que estamos etiquetando en ese momento. En el caso de la etiqueta <input> lo que queremos indicarle es el tipo, y así sería la manera de hacerlo:

<input type="text">

Es decir, a continuación del nombre de la etiqueta (pero siempre dentro, antes de acabar con el símbolo de cierre > ) le indicamos que el tipo será "text". Para los tipos de arriba se utiliza la palabra clave type, seguida del símbolo igual, y la palabra del tipo que queramos entre comillas. Así tendríamos también <input type="file">, <input type="button"> o lo que queramos. 

Además del tipo, hay más atributos que podemos añadir a las etiquetas. Por ejemplo, es útil y a veces necesario identificar cada elemento de manera única, para no confundirlo con otros elementos parecidos. Por ejemplo, cuando queramos rellenar un formulario, debemos identificar qué input será el que recoja el nombre, y cuál el que contenga la contraseña, etc. Para identificar cada elemento utilizamos la opción id, que como todas las opciones irá dentro de la etiqueta. Además, para que luego el servidor sepa cómo se llama cada dato que recoge, lo reconoce con la opción name, es decir, el nombre del dato. Normalmente id y name sirven para casi lo mismo, para identificar con un nombre el elemento en cuestión, la diferencia es que cada opción los identifica para un contexto distinto. Más adelante veremos en detalle estas diferencias. Por ahora vamos a ver algunos atributos que nos interesan para nuestros elementos:

type: Indica el tipo de elemento (input en este caso) como hemos visto antes.
id: Identifica un elemento con un nombre, que debe ser único en la página.
name: También identifica un elemento con un nombre único, pero esta vez es usado por el formulario para nombrar cada valor recogido. Los elementos sin nombre no serán procesados.
class: Indica que el elemento pertenece a una clase, a la que le daremos un nombre. Puede haber muchos elementos de la misma clase, útil para indicar a ese conjunto ciertas acciones o comportamientos por igual. Esto lo utilizaremos más adelante para dar estilos con CSS.
text: Podemos añadir un texto adicional al elemento.
value: Es un valor que ya predefinimos si queremos, pero que podemos modificar.
placeholder: Es un texto informativo que aparecerá sobre el cuadro de texto, pero que desaparece en cuanto escribimos.

Para ver algún ejemplo aclaratorio, veamos el siguiente código:

<input type="text" id="nombre" name="nombre" placeholder="Introduce tu nombre">
<input type="password" id="contrasena" name="contrasena">
<input type="button" id="enviar" value="Enviar datos">

Esto es lo que mostraría ese código:

Podemos ver que aparece el texto Introduce tu nombre en el primer input, esto sería el texto que pusimos en la opción placeholder. El segundo sería el de la contraseña, y si escribimos ahí, veremos los símbolos punteados que ocultan lo que escribamos, gracias a que pusimos type="password". Por último, el botón muestra el texto Enviar datos, que introdujimos en la opción value. Por otra parte vemos que los tres elementos aparecen alineados uno detrás de otro. Si queremos que aparezcan uno debajo del anterior, debemos poner cada elemento encerrado en un párrafo, o introducir espacios en blanco. También podemos añadir texto de por medio para aclarar mejor lo que vemos en pantalla. Por ejemplo:

<p>
Nombre de usuario:<br>
<input type="text" id="nombre" name="nombre" placeholder="Introduce tu nombre">
</p>
<p>
Contraseña:<br>
<input type="password" id="contrasena" name="contrasena">
</p>
<hr>
<input type="button" id="enviar" value="Enviar datos">



Vamos a ver también este elemento que utilizaremos en nuestro formulario. Los select son listados con opciones predefinidas a elegir. La forma de su código es muy sencilla:

<select id="nacionalidad" name="nacionalidad">
   <option value="0">Elije tu país</option>
   <option value="1">España</option>
   <option value="2">Resto de Europa</option>
   <option value="3">Resto del mundo</option>
</select>



Como vemos, hemos llamado e identificado a ese elemento select como nacionalidad, y dentro de las etiquetas <select></select> hemos añadido varias opciones, cada una con su etiqueta <option></option>. A su vez, estos elementos option contienen el atributo value, que indica que internamente cada opción valdrá ese valor (en este ejemplo, 0, 1, 2 y 3). Pero lo que se muestra al usuario es el texto contenido entre las etiquetas, y no esos valores numéricos. Podemos añadir el atributo selected al final de la etiqueta option que queramos, para que esa opción sea la marcada por defecto. Si no ponemos nada, la que veamos marcada al principio será la primera. Si por ejemplo queremos en el ejemplo anterior que por defecto esté marcada la opción Resto de Europa, en esa opción pondríamos:

<option value="2" selected>Resto de Europa</option>



Un elemento div es una sección de la página. Viene a ser una división por bloques de la página, como si quisiéramos trocear la web para añadir varios bloques dentro del cuerpo. Por ejemplo, nos puede interesar añadir una sección arriba que ocupe todo el ancho, para poner el título de la web. Después podemos querer tener un bloque a la izquierda que ocupe hasta abajo, para añadir un menú, y un bloque contenedor principal que ocupará el resto del cuerpo. Los divs son invisibles, son simplemente una organización de los elementos que tenemos en la página. Pero son útiles a la hora de añadir estilos con CSS, por lo que entraremos más en detalle con este elemento más adelante. Un ejemplo sería el siguiente:

<div class="encabezado">
   <h1>Mi primera web</h1>
</div>

<div class="cuerpo">
   <h2>Esto es el resto de la página</h2>
   <p>Y podemos escribir y rellenar todo el cuerpo</p>
</div>


Nótese en la figura anterior que lo marcado en rojo no se muestra, es una indicación que hago para indicar que cada una de las dos secciones div de la página contienen una parte de la página. Visualmente no se ve ni diferencia nada en este caso. Pero veremos cómo sacarle partido más adelante con los estilos.

Vamos a seguir haciendo nuestro formulario de registro. Por ahora con los elementos input y los elementos de texto que conocemos, ya tenemos para construir nuestro propio formulario. Y todo un bloque de elementos que forman un formulario deben ir a su vez en un bloque <form></form>, que lo que hará será recoger todos los datos introducidos en los inputs para enviárselos después al servidor. A esta etiqueta form también hay que pasarle algunas opciones. Por ejemplo, debemos indicarle a qué página debe dirigirse con los datos que recoja del formulario, para que el servidor trate esos datos (para guardarlos después o lo que sea). También debemos indicarle al formulario el método de recogida de datos, pudiendo ser GET o POST (más info sobre GET/POST), que son métodos del protocolo HTTP de Internet. Básicamente, GET recoge los datos por parámetros que se pasarán en la url, y POST recogerá esos parámetros de manera más oculta para el usuario. Por ejemplo, si vemos en alguna web una dirección del tipo www.ejemplo.com/enviar.php?id=1&nombre="Pepito", esto quiere decir que esa web está enviando por su página enviar.php, y a continuación envía los parámetros id y nombre con valores 1 y Pepito, respectivamente. Los parámetros se añaden tras el símbolo ? detrás de la dirección de la página, y por cada parámetro añadido, se coloca tras el símbolo &. Esto es útil a veces, pero para formularios donde introducimos información privada y contraseñas, no es recomendable, pues lo podría ver cualquiera en la barra de direcciones. Por eso en nuestro formulario utilizaremos el método POST. Esto se lo indicamos con la opción method="post" dentro de la etiqueta form

Bien, es hora de escribir un formulario completo, así que aquí tenéis el siguiente ejemplo. En algunos elementos se ha añadido el atributo required, que indica que es obligatorio introducir algún dato en ese campo antes de enviar nada. Probad por vuestra cuenta con los elementos y textos que queráis, y analizad bien lo que hace cada cosa:

<div class="encabezado">
  <h1>Mi primera web</h1>
</div>
<div class="cuerpo">
  <form id="registro" name="registro" action="registro.php" method="post">
    <h2>Registro de usuario</h2>
    <hr>
    <h3>Introduce tus datos personales:</h3>
    <p>
    Nombre de usuario:<br>
   <input type="text" id="nombre" name="nombre" placeholder="Introduce tu nombre" required>
    </p>
    <p>
    E-Mail:<br>
  <input type="email" id="email" name="email" placeholder="email@ejemplo.com" required>
    </p>
    <p>
    Contraseña:<br>
    <input type="password" id="contrasena" name="contrasena" required>
    </p>
    <p>
    Fecha de nacimiento:<br>
    <input type="date" id="fecha-nacimiento" name="fecha-nacimiento">
    </p>
    <p>
    Nacionalidad:<br>
    <select id="nacionalidad" name="nacionalidad">
      <option value="0">Elije tu país</option>
      <option value="1" selected>España</option>
      <option value="2">Resto de Europa</option>
      <option value="3">Resto del mundo</option>
    </select>
    </p>
    <p>
    Foto:<br>
    <input type="file" id="foto" name="foto">
    <p>
    <input type="checkbox" id="acepto" name="acepto" required>
    Acepto los términos y condiciones
    </p>
    <hr>
    <input type="submit" id="enviar" value="Enviar datos">
  </form>
</div>



Por ahora este formulario no hace nada. Fijaos en que el botón de enviar datos es de tipo submit, y no button. Esto hace que el elemento se convierta en un botón de envío de datos (submit en inglés), y al pulsarlo, lo que hará el formulario será dirigirse a la página registro.php que es la que hemos puesto en el atributo action de la etiqueta form, arriba. Pero aún no tenemos esa página, por lo que si pulsamos el botón nos dará un error. Más adelante veremos cómo crear una página del servidor en PHP para que recoja esos datos y haga cosas con ellos, y crearemos una pequeña base de datos para guardar esos datos.

Por ahora eso es todo. En el siguiente post veremos cómo crear estilos para que la web sea algo más bonita, y no en blanco y negro como hasta ahora. Y después veremos cómo crear una base de datos en MySQL y una página PHP que trabaje con los datos del formulario. También veremos cómo validar datos con JavaScript, pero paso a paso. Os recomiendo seguir practicando con los elementos HTML consultando la web del W3Schools y añadiendo elementos y creando plantillas o pequeñas webs de texto y otros elementos


Extra:


Prueba tu propio código HTML sin instalar nada: Tryit Editor