sábado, 2 de mayo de 2015

Ejemplo de maquetacion CSS con clases disponibles en 960

Con el objetivo de mejorar la comprensión de las distintas clases del framework CSS 960 Grid System, que ya explicamos en el artículo anterior del manual de 960 Grid System, vamos a mostrar en este artículo de DesarrolloWeb.com un sencillo ejemplo de maquetación web utilizando hojas de estilo en cascada.
El presente ejemplo no tiene otro objetivo que entender las clases disponibles en el framework CSS y practicar con ellas. Para ello no nos hemos preocupado en el diseño, sino simplemente en la maquetación en filas y columnas. Así pues fijémonos en el verdadero valor de esta práctica y no en su aspecto estético, que hay que aceptar que es bastante feo. En el futuro vamos a realizar un diseño paso a paso, con bastante más creatividad y componente gráfico, para que se vea cómo maquetar un caso más complejo y con más elementos.
Vendría bien echar un vistazo a la página con el ejemplo que vamos a explicar en este artículo.

Doctype de XHTML

Para comenzar, es importante decir que este diseño lo tenemos que hacer en XHTML y utilizar un doctype adecuado para que todos los navegadores lo entiendan igual. Podríamos poner diversos doctype, pero por ejemplo nos valdría este:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
Eso si estamos utilizando XHTML transicional, pero podríamos utilizar XHTML estricto, con este otro doctype:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3c.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
Nota: la declaración doctype debe colocarse como primera línea del código de nuestro archivo HTML.

Enlazamos las hojas de estilos del framework CSS

Como segundo paso, debemos enlazar las hojas de estilos (archivos CSS) que vienen con 960 Grid System. Estos archivos los obtenemos desde la página del propio framework, donde los tienen para descarga libre. Veremos que nos proporcionan varios CSS, uno con las clases definidas en 960 Grid System y otro par de archivos CSS que se pueden utilizar opcionalmente, que sirven para resetear los estilos del navegador y para aplicar ciertos estilos fijos a las etiquetas de texto.
<link rel="STYLESHEET" type="text/css" href="code/css/960.css">
<link rel="STYLESHEET" type="text/css" href="code/css/reset.css">
<link rel="STYLESHEET" type="text/css" href="code/css/text.css">

Estructura de etiquetas del diseño en XHTML

Ahora podemos pasar a codificar el XHTML que tenemos que hacer para crear la estructura de filas y columnas de este ejemplo. En este paso, para maquetar los contenidos como deseamos, tendremos que utilizar las clases que nos proporciona 960 Grid System, explicadas en el artículo anterior.
Vamos creando esta estructura por partes, comenzando por la cabecera. Pero antes quiero insistir en que este ejemplo simplemente nos sirve para aprender el manejo de las clases del framework, incorporando ejemplos de uso de todos los tipos de clases disponibles, aunque a veces no tenga mucho sentido haber hecho las cosas tal cual aparecen.
He colocado en todas las capas del diseño un identificador (atributo id), para luego poder aplicarle estilos con CSS.
Para que se vea la estructura de contenidos que vamos a tener, muestro una imagen donde está la maquetación de la página, donde cada capa la hemos colocado con un color distinto y donde en el texto de la capa hemos colocado el identificador (atributo id) de esa capa.

Como se debe hacer con el framework 960 Grid System, todo el contenido del sitio se tiene que colocar dentro de una capa con clase container_xx. En nuestro diseño utilizaremos el formato de 12 columnas, por lo que utilizaremos la class CSS container_12.
<div class="container_12">
...
</div>
Colocamos ahora los contenidos en el contenedor, empezando por la cabecera de la página, que tiene dos capas, una con un texto a la izquierda y otra con otro texto a la derecha. La capa de la izquierda (id=cabecera) tiene una anchura de 8 columnas y un espacio vacío a la derecha de 1 columna. Para definir la anchura colocamos la class CSS grid_8 y para definir el espacio en blanco a la derecha, de una columna de anchura, se coloca la clase suffix_1.
<div id="cabecera" class="grid_8 suffix_1">
   ...
</div>
<div id="buscador" class="grid_3">
   ...
</div>
A continuación de la cabecera, como hemos visto en el código anterior hemos colocado el DIV con id "buscador", que tiene una anchura de tres columnas.
En total, en esta fila donde aparece la cabecera y el buscador, hemos utilizado 8 espacios en la cabecera por grid_8 y 1 de espacio en vacío a la derecha de la cabecera con suffix_1. Luego hemos colocado el buscador, ocupando un espacio de 3 columnas. En total 8 + 1 + 3 = 12, que es el total de espacio que tenemos disponible en un container_12.
Para continuar vamos a colocar un DIV con la class "clear". Esto se tiene que hacer justo después de cada una de las filas del diseño y la razón de ello es que las clases grid_xx tienen un float left y con este clear se consigue romper este estilo, de modo que la siguiente fila comience desde la izquierda.
<div class="clear"></div>
La siguiente parte del diseño tenemos dos columnas principales. En la primera columna tenemos a su vez otras tres columnas anidadas. Esto lo hacemos así a propósito para poner en marcha las clases alpha y omega explicadas en el artículo anterior.
Como habíamos explicado, para gestionar los márgenes de las distintas capas grid_xx, cuando están anidadas como en este caso, tenemos que poner la clase alpha en la primera capa anidada y la clase omega en la última capa anidada.
Así pues, tendremos una capa con id "izq", con espacio de 9 columnas y dentro de ésta, otras tres capas anidadas con espacios de 4, 3 y 2 columnas, donde tendremos que utilizar las clases omega y alpha comentadas antes. Tendremos que colocar después de estas tres columnas anidadas un DIV con class="clear", para que podamos seguir metiendo contenidos en la dentro de la capa id "izq", que aparezcan después de las tres columnas anidadas.
<div class="grid_9" id="izq">

   <div class="grid_4 alpha" id="izq1">
      ...
   </div>
   <div class="grid_3" id="izq2">
      ...
   </div>
   <div class="grid_2 omega" id="izq3">
      ...
   </div>
   <div class="clear"></div>
   ... 
</div>

<div class="grid_3" id="der">
   ...
</div>

<div class="clear"></div>
Después de la capa de 9 columnas de anchura con id "izq", hemos colocado para completar el espacio una capa lateral de anchura de 3 columnas. Entre todas las capas de esta fila tenemos pues, una de 9 columnas a la izquierda y otra de 3 columnas a la derecha, que hace un total de 12 columnas de anchura.

Como se ha visto en el anterior código, después de esta fila hemos colocado otro DIV con class="clear", para poder comenzar la siguiente columna desde el principio.
Para acabar tenemos el pie de página. El pie lo hemos hecho con una única capa de 7 columnas de anchura, con la particularidad que hemos dejado un espacio vacío a la izquierda de 5 columnas, que se consigue con la clase prefix_5. En total tenemos 7 columnas de espacio + 5 columnas vacías = 12 columnas del container_12.
Esto se consigue con el siguiente código:
<div class="prefix_5 grid_7" id="pie">
pie
</div>
Acabamos con un nuevo DIV class="clear", para colocar antes del cierre del cuerpo de la página.
Para que se vea más fácilmente el esquema creado para hacer la estructura de filas y columnas de este ejemplo, pongo a continuación el código completo del cuerpo de esta página:
<div class="container_12">
   <div id="cabecera" class="grid_8 suffix_1">
      <p>Cabecera</p>
   </div>
   <div id="buscador" class="grid_3">
      <p>Buscador</p>
   </div>
   <div class="clear"></div>
   
   <div class="grid_9" id="izq">
      <div class="grid_4 alpha" id="izq1">
         <p>izq1</p>
      </div>
      <div class="grid_3" id="izq2">
         <p>izq2</p>
      </div>
      <div class="grid_2 omega" id="izq3">
         <p>izq3</p>
      </div>
      <div class="clear"></div>
      
      <p>
      Contenido de la capa izq, que aparecerá debajo de las 3 columnas anidadas.
      </p>
   </div>
   
   <div class="grid_3" id="der">
      <p>der</p>
   </div>
   
   <div class="clear"></div>
      
   <div class="prefix_5 grid_7" id="pie">
      <p>pie</p>
   </div>

   <div class="clear"></div>
</div>
Podríamos ver en una página aparte el resultado obtenido, una vez colocado algo de texto dentro de las capas.
Para conseguir los colores de fondo y los bordes en las capas lo hemos hecho aplicando estilos CSS a través de los identificadores (atributo id) configurados en las distintas capas y aplicando estilos a la etiqueta P, como se puede ver a continuación.
<style type="text/css">
p{
   border: 1px solid #999;
   padding: 5px;
   margin: 0px;
}
#cabecera{
   background-color: #ffcccc;
}
#buscador{
   background-color: #ccffcc;
}
#izq{
   background-color: #e0e0ff;
}
#izq1{
   background-color: #ccccff;
}
#izq2{
   background-color: #9999ff;
}
#izq3{
   background-color: #6666ff;
}
#der{
   background-color: #dedede;
}
#pie{
   background-color: #ff8800;
}
</style>
Con esto ya hemos visto un primer ejemplo completo de maquetación CSS a través del framework 960 Grid System. En artículos sucesivos que publicaremos en desarrollo web .com vamos a realizar un ejemplo de maquetación más complejo y con mayor componente gráfica, para que se vea un caso práctico real de uso de este framework CSS.

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

Clases definidas en el framework CSS 960 Grid System


Las clases CSS que define este framework CSS son bastante sencillas de entender y de utilizar en nuestros diseños. Además, dado que son realmente pocas, no tendremos problemas en dominarlas todas y utilizarlas con soltura. En este artículo queremos ofrecer unas explicaciones detalladas sobre las distintas clases que incorpora 960 Grid System, para que podamos utilizar el framework sin problemas y podamos entender también los próximos artículos, en los que veremos un ejemplo de diseño.
En los anteriores capítulos publicados en DesarrolloWeb.com en el Manual de 960 Grid System, ya explicamos qué es un framework CSS y ofrecimos unas primeras notas sobre éste, que incluían la descripción de las clases más importantes como container_xx y grid_xx. Convendría sin duda leer desde el principio este manual, pero de cualquier forma vamos a explicar todas las clases disponibles para que ofrecer una documentación completa.
Class container_xx: 
Esta clase sirve para definir un contenedor, donde colocaremos luego todos los contenidos de nuestro diseño. Existen dos tipos de contenedores, de 12 y 16 columnas, que se forman con las clases container_12 y container_16.

Class grid_xx: 
La clase grid_xx define un elemento del diseño que será colocado en un contenedor y ajustado a la rejilla que forma 960 Grid System. El valor "xx", de grid_xx, expresa el tamaño de la rejilla que se está definiendo. A un número mayor, más anchura se dedicará a este elemento. En los diseños con el container_12 se tienen doce columnas y con grid_xx conseguiremos también doce distintos anchos de columnas. Por ejemplo, con grid_1 se obtendrá un elemento con una anchura igual a un doceavo del espacio total de la página, con grid_8, obtendríamos un elemento de anchura igual a 8 doceavos del espacio y así.. En el caso del container_16 tendríamos hasta 16 tipos de elementos con distintas anchuras, desde grid_1 hasta grid_16.

Estas son las clases principales, que ya explicamos con mayor detalle en el artículo Lo básico sobre el uso de 960 grid
Ahora veamos otras clases que sin lugar a dudas también nos vendrán bien y tendremos que saber utilizar para implementar diseños medianamente avanzados con el framework CSS.
Class alpha y class omega: 
Estas dos clases sirven cuando estamos anidando unos grid dentro de otros, para ajustar los márgenes de los distintos elementos anidados. Como deberíamos saber ya, porque se dijo en el primer artículo de este manual, las clases grid_xx tienen un margen de 10 píxeles a la izquierda y la derecha. Por ejemplo grid_12 que utiliza todo el ancho de la página, en realidad tiene 940 píxeles, que es el resultado de a 960 restarle 10 píxeles de margen a la izquierda y otros 10 a la derecha. Si metemos unos grid_xx dentro de otros, los márgenes de los grid_xx anidados van incrementándose y esto nos haría que los espacios disponibles no fueran suficientes para contener todos los elementos. Con las clases alpha y omega lo podremos solucionar. Quizás logre explicarlo mejor a la vista de una imagen. 


En la imagen anterior vemos 4 capas, a las que les hemos puesto un color de fondo para saber dónde están. La primera, arriba del todo con fondo rosa es la cabecera, que no nos interesa mucho para la explicación, pero nos viene bien verla para hacernos una idea de los espacios. Luego tenemos la Capa1, con color azul, que contiene a la Capa2, con color verde, que a su vez contiene a la Capa3, con color de fondo gris. Quizás en mi maquetación desearía que la Capa3 estuviera alineada en la vertical con la capa de cabecera, pero realmente debido a los márgenes de las capas 2 y 3, se deja ver un espacio vacío que tiene los fondos de las capas que se están por debajo de la Capa 3.

Estos espacios vacíos seguramente no nos molesten sólo estéticamente, sino que podría ocurrir que las distintas grid que hemos colocado en el diseño no tengan el espacio suficiente para posicionarse correctamente. Al perder 10 + 10 píxeles por esos márgenes, puede que no quepan todas las cajas colocadas en el diseño con las clases grid_xx.
En fin, que para solucionar este problema, se deben colocar las clases alpha y omega. La clase alpha sirve para eliminar el margen de 10 píxeles a la izquierda y la clase omega para eliminar el margen de 10 píxel de la derecha. Estas dos clases debemos utilizarlas siempre que tengamos un grid_xx que tenga a su vez otros grid_xx anidados. El primer grid_xx hijo debería tener también la clase alpha y el que coloquemos como último debe tener también la clase omega.
Class prefix_xx: 
Esta clase sirve para anclar una grid_xx dejando un espacio vacío a la izquierda. Por ejemplo, prefix_1 haría que la grid tuviera el espacio libre de la anchura de 1 columna a la izquierda. Esto nos sirve en el momento que queramos dejar un espacio antes de meter una capa con grid_xx que no queremos que empiece a la izquierda del todo. Veamos esta imagen:


Observamos el espacio vacío a la izquierda de la capa que aparece abajo con fondo blanco y borde gris. Ese espacio vacío lo hemos conseguido metiendo la clase prefix_5 a la capa. Ahora bien, este espacio vacío también se cuenta como espacio de la capa, lo que veremos mejor si colocamos un color de fondo a la capa sobre la que hemos aplicado el prefix_5, como aparece en esta imagen:


Esta capa que hemos visto en la imagen tiene definidas las clases grid_7, porque el área donde meteremos los contenidos ocupa sólo el espacio de 7 columnas, y prefix_5, para que deje 5 columnas de espacio vacío a la izquierda, antes de poner los contenidos. (En mi diseño con container_12, llego a las 12 columnas entre la anchura del elemento grid_7 y el espacio vacío que he colocado con prefix_5)

Class suffix_xx: 
De una manera similar a prefix_xx, la clase sufix_xx sirve para colocar un espacio vacío a la derecha de la capa. La capa tendrá una anchura definida con la clase grid_xx y luego con suffix_xx podremos hacer que tenga espacio adicional vacío a la derecha. Lo veremos mejor con una imagen. 


En la imagen anterior podemos ver como el contenido de la capa de fondo rosa se coloca dejando un espacio vacío a la derecha. Al definir la capa hemos colocado una clase grid_8, para una anchura de 8 columnas y luego una clase suffix_1, para un espacio en blanco a la derecha de 1 columna. En la práctica, el espacio total que estoy ocupando es 9 columnas (8 por definir grid_8 mas 1 por definir suffix_1), luego la siguiente capa, donde he puesto la palabra "buscador" tal como se ve en la imagen, tendrá una anchura de 3 columnas. Esto para mi diseño de container_12, que estará ocupando la anchura completa, sumando el grid_8 + suffix 1 de la primera capa, mas el grid_3 de la segunda.

Ahora ya conoces todas las class CSS del framework 960 Grid

Con esto ya hemos visto todas las distintas clases CSS que tiene 960 Grid System. Esperamos que hayáis podido entenderlas bien y que ahora no resulte difícil aplicarlas para la consecución de vuestros objetivos de diseño. No obstante, en el siguiente artículo veremos un ejemplo de maquetación CSS en el que utilizaremos todos los tipos de class CSS disponibles. Aun será un ejemplo simplificado, pero suficiente para que podamos ver las aplicaciones prácticas de lo aprendido hasta ahora.

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, 1 de mayo de 2015

Creación de un script con un formulario para correo electrónico

Si deseamos que, al pulsar el botón de envío de un formulario, se manden los datos por email utilizando el servidor y sin estar supeditados a la configuración del cliente para saber si ciertamente ese mensaje se pudo enviar, debemos utilizar alguna tecnología de programación de páginas del lado del servidor. En este artículo vamos a presentar un ejemplo sobre cómo hacer esta tarea con ASP. 


ASP (Active Server Pages) es la tecnología de scripting del lado del servidor desarrollada por Microsoft. Con este tipo de programación podemos construir páginas que muestren un formulario y manden un correo electrónico automáticamente con los datos recibidos, una vez enviado. 

Podríamos utilizar un esquema de código como el siguiente: 

<% 
if request.form="" then 
'no recibo formulario, entonces lo muestro 
%> 
<form action="formulario_mail_asp.asp" method="POST"> 
Nombre: <input type="Text" name="nombre" size="12" maxlength="200"> 
<br> 
Email: <input type="Text" name="email" size="12" maxlength="200"> 
<br> 
<input type="submit" value="Enviar"> 
</form> <% 
else 
'si que recibo un formulario, entonces lo trato 
'recojo los datos 
nombre = request.form("nombre") 
email = request.form("email") 
'compongo el cuerpo del mensaje 
cuerpo = "Formulario recibido" & VBNEWLINE & VBNEWLINE 
cuerpo = cuerpo & "Nombre: " & nombre & VBNEWLINE 
cuerpo = cuerpo & "Email: " & email 
'mando el correo... 
'.................. 
response.write "Gracias por rellenar el formulario. Se ha enviado correctamente." end if %>

En el anterior script utilizamos if (request.form="") para saber si estamos recibiendo o no información de un formulario. 

Si no hemos recibido nada (porque en request.form tenemos una cadena vacía) este if saldría por su caso verdadero, en el que tendremos que presentar el formulario en la página. 

El caso else, cuando sí que recibíamos un formulario, recogemos sus datos y creamos el cuerpo del mail que enviaremos a la dirección del administrador. 

El resto del código, utilizado para definir las propiedades del email y enviarlo, todavía no lo hemos indicado. Antes una aclaración. 

ASP no tiene entre las funciones del lenguaje una que sirva para enviar correos electrónicos. Sin embargo, podemos utilizar un componente ActiveX del servidor para realizar esas acciones. 

El componente CDONTS (presente en muchas de las instalaciones de IIS) serviría para realizar el envío del mail, pero también existen en el mercado otros componentes de servidor comerciales para realizar esas acciones con mayores funcionalidades. Uno de ellos es AspEmail, que es el que vamos a utilizar en este script, pero no es el único. Hablamos de las distintas opciones en el artículo Enviar mails desde ASP


Nota: Insistimos en que el siguiente código, que hace la acción de enviar un email, no funcionará si no tenemos el componente ASP AspEmail instalado correctamente en nuestro servidor. Además, deberíamos consultar la documentación del componente, para comprobar que en la versión que descarguemos sigue funcionando todo como aparece a continuación.


El código para enviar un mail podría ser algo como esto: 

'creo el objeto correo
set mail = server.createObject("Persits.MailSender") 
'configuro el mensaje 
'señalo el servidor de salida para enviar el correo 
mail.host = "mail.tudominio.com" 
'indico la dirección de correo del remitente 
mail.from = "loquesea@tudominio.com" 
'indico la dirección del destinatario del mensaje 
mail.addAddress "loquesea@tudominio.com" 
'indico el cuerpo del mensaje 
mail.body = cuerpo 
'lo envio 
'aseguro que no se presenten errores en la página si se producen 
On Error Resume Next 
mail.send 
if Err ><0 then 
response.write "Error, no se ha podido completar la operación" 
else 
response.write "Gracias por rellenar el formulario. Se ha enviado correctamente." end if 


Nos podemos guiar por los comentarios para hacernos una idea del funcionamiento de este trozo de código. Básicamente se crea el objeto mail, que contendrá el correo que se va a generar, y se definen sus propiedades como el servidor de correo a utilizar, el destinatario o el asunto. Luego se envía y se realiza una sencilla tarea de detección de errores para saber si se pudo realizar la tarea con éxito o no y mostrar un mensaje adecuado para cada caso. 


Nota: no se pretenden explicar los pormenores de este Control Activex del servidor, ya que hay una excelente documentación y ejemplos en la página web de la empresa que lo ha desarrollado. En caso de que se desee aprender algo más, por favor, dirigiros a la página www.aspemail.com o la del componente del que dispongáis.que dispongáis.
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

Formularios por mail con CGI

El método de envío más sencillo es a través de un programa CGI. CGI es la tecnología para programación del servidor más antigua, tal vez un poco obsoleta en cuanto a metodología puesto que no ha evolucionado mucho en los últimos años.

También resulta un poco más complicado de aprender que las otras opciones señaladas en este artículo, como ASP o PHP. Por todo ello, empezar desde cero a crear un sistema CGI resulta, en nuestra opinión, desaconsejado. En lugar de construir nuestro propio CGI nos parece más interesante utilizar alguno de los ya creados. 

CGI FormMail 

Es uno de los programas CGI que se puede utilizar para el envío de formularios. Su direcciónwww.scriptarchive.com/formmail.html permite la descarga de los archivos y documentación para configurarlo y crear los formularios que utilicen el CGI para enviarse por correo. 

Otros sitios con programas CGI 

Existen sitios donde podemos encontrar un directorio de programas CGI clasificados por categorías. En nuestro caso podríamos echar un vistazo a la sección de Formularios o Envío de correo para encontrar otras opciones y examinar la oferta disponible para realizar estas tareas. 

Podemos acceder a nuestro directorio de recursos para CGI, donde podremos encontrar algunos enlaces interesantes. 

Es importante señalar que, si estamos alojando nuestras páginas en algún proveedor de alojamiento, éstos seguramente tengan instalado y configurado algún programa de envío de formularios, por lo que lo mejor sería preguntar a los técnicos de nuestro servicio de hosting cuál es y la manera de funcionar que tiente. Generalmente todos los proveedores de pago tienen algún tipo de CGI preinstalado y, aunque algunos alojadores gratuitos también disponen de alguno, no les podemos exigir que así sea.

Ejemplo de código de utilización de FormMail

No pretendemos explicar el manejo de un CGI para enviar correos, puesto que lo mejor sería que aprendiésemos a utilizar el CGI que tengamos disponible en cada caso en nuestro alojamiento.

De todos modos, incluimos aquí un código de un formulario que se enviaría por email utilizando el CGI FormMail. Podemos ver como el atributo action del formulario está dirigido hacia el CGI que se encargará de enviarlo por mail. Asimismo, podemos ver una serie de campos hidden que tienen como objetivo configurar el correo a enviar y señalar la dirección a la que redirigir el navegador después de haber enviado el correo, que simplemente tendría un texto dando las gracias al visitante.
<FORM ACTION="http://cgi.dominioxyz.com/FormMail.pl" METHOD="POST"> 
<input type=hidden name="recipient" value="pepe@pepe.com"> 
<input type=hidden name="subject" value="Asunto del mail que se envia"> 
<input type=hidden name="redirect" value="http://www.dominioxyz.com/gracias.html"> 

<table border="0" cellspacing="2" cellpadding="2"> 
    <tr> 
       <td><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Nombre:<br> 
          <input type="text" name="nombre" size="25" maxlength="300"> 
          </font></td> 
       <td> <font face="Verdana, Arial, Helvetica, sans-serif" size="2">Email:<br> 
          <input type="text" name="email" size="25" maxlength="300"> 
          </font></td> 
    </tr> 
    <tr> 
       <td><font size="2">Dirección:<br> 
          <input type="text" name="direccion" size="30" maxlength="500"> 
          </font></td> 
       <td><font size="2">Telefono:<br> 
          <input type="text" name="telefono" size="12" maxlength="15"> 
          </font></td> 
    </tr> 
    <tr> 
       <td colspan="2"><font face="Verdana, Arial, Helvetica, sans-serif" size="2">Observaciones:<br> 
          <textarea name="observaciones" cols="50" rows="5"></textarea> 
          </font></td> 
    </tr> 
    <tr> 
       <td colspan="2"> 
          <div align="center"><br> 
          <input type="submit" value="Enviar"> 
       </td> 
    </tr> 
</table> 
</form>
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

Feliz día del Trabajador

Si de tu trabajo se beneficia el mundo entero, nuestro trabajo forma cuidades, colonias, pueblos enteros, y ocupa el lugar de un grano de arena.
Ver el beneficio de nuestro trabajo ayuda hacerlo con entusiasmo, y hacer lo que te gusta día a día nos ayuda ser felices... Cada día haz tu trabajo como te gusta hacerlo y verás grandes resultados.

Feliz día te desea el Instituto Uneweb. www.uneweb.edu.ve 

Entradas populares