NubeBlog | Web Hosting en la Nube

Archivos de Tags: diseño web

Uso de Twitter bootstrap en nuestro website para un diseño adaptivo y fluido

bootstrap3

Una de las primeras preguntas que nos hacemos cuando se diseña un website, es si queremos una estructura con ancho fijo, o que se expanda para cualquier tamaño de pantalla. Anteriormente el estándar era de 960px, sin embargo, la mayoría de las pantallas actuales son más grandes, por lo que quedaría mucha pantalla desperdiciada. Por otro lado, cada vez se usan más los dispositivos móviles para navegar la web con pantallas pequeñas, por lo que resultaría difícil navegar un website de 960px. Un ancho de 100% tampoco resulta práctico para dispositivos móviles ya que todo se vuelve muy pequeño y debemos hacer zoom para ver el contenido.

Una solución sería desarrollar diferentes versiones de nuestro website para dispositivos móviles, tablets y computadoras de escritorio, sin embargo esto nos trae problemas de mantenimiento y se vuelve tedioso al cambiar información. Otra solución son los llamados “responsive layout“, que significa que la estructura de nuestro website cambia dependiendo del tamaño de pantalla en el cual se visualiza.

Les presento Twitter bootstrap, un toolkit de archivos HTML, CSS y JS creado desde cero por personal experimentado de Twitter, que te ayudará a empezar y agilizar tu diseño web. Algunas características que ofrece son:

  • Estructura de 12 columnas
  • Tamaño pequeño de 10kb (comprimido)
  • Diseño adaptable
  • Plugins personalizados de Jquery
  • Compatible con todos los navegadores modernos incluído IE7
  • Soporta HTML5
  • Soporta CSS3

Entre otras bondades que tiene, es que ya trae mucha funcionalidad integrada, evitando que tengas que reinventar el hilo negro cada vez que diseñas un website. Puedes agregar una gran variedad de elementos en 1 2 por 3:

  • navegación con menús desplegables
  • tabs dinámicos
  • acordeones
  • ventanas modales o popups
  • barras de progreso
  • tooltips
  • botones
  • paginación
  • carrusel
  • autocompletado
  • etc.

Todo esto ya viene preparado para verse bien en cualquier navegador, y se degrada correctamente para navegadores antiguos.

Un ejemplo de lo que se puede hacer con bootstrap: podemos tener un diseño de 2 columnas expandidas al 100% normalmente, pero cuando se visualiza a través de un celular, se apila una columna encima de otra y se hacen 1 sola, de manera que resulta mucho más fácil de navegar y sin necesidad de hacer zoom.

Otra de las ventajas es que a las imágenes se les puede agregar una clase de manera que nunca excedan el 100% del tamaño de la columna en la que están, así nunca excederán el ancho de pantalla de un celular. Bootstrap expande cada columna a la proporción correcta, no importa el ancho de pantalla, siempre se verá bien en cualquier dispositivo y aprovechando al máximo toda el área de pantalla.

Pero, ¿cuál es el truco? Bootstrap utiliza los llamados media queries, que básicamente es código CSS condicional, y solamente aplica dependiendo del tamaño de pantalla. Por ejemplo el siguiente código solamente aplica para pantallas celulares menores a 480px:

@media (max-width: 480px) {}

En seguida puede ver un ejemplo de una página que se expande al 100% de la pantalla y en la segunda imagen se adapta dependiendo del dipositivo con el que se visualiza.

 

¿Qué navegadores soportan HTML5?

Hay mucho debate últimamente sobre el tema de HTML5. Los diseñadores web y webmasters tienen fuertes inclinaciones hacia HTML5, ya que lo odian o lo aman, dependiendo con quien platiques.

Primero, vamos a hablar sobre lo que es HTML5 y para que se usa. HTML es un lenguaje usado para diseñar y dar estructura a las páginas web. HTML5 es una nueva versión del lenguaje HTML que tiene más etiquetas, y por ende más opciones de diseño.

La mayoría de la gente concuerda que más opciones de diseño es bueno. La controversia recae en que ciertas compañías actuan como si HTML5 fuera el estándar, cuando la realidad es que ningún navegador lo soporta al 100% todavía.

Esencialmente, para los diseñadores web significa que casi nadie verá el website que están creando tal como fue pensado. Definitivamente HTML5 y sus aplicaciones nos darán websites mucho más atractivas y mejores, simplemente todavía no es práctico usarlo para tus diseños web.

Se probaron algunos de los navegadores más populares para ver cuan listos están para HTML5, y los resultados son muy claros. Para ello se usó http://www.html5test.com, el cual ofrece un sistema de puntaje hasta 400 puntos dependiendo de cuantas características de HTML5 soporta tu navegador.

Chrome 14.0 fue el ganador con 340 puntos de 400 posibles. Este navegador ha implementado la mayoría de la funcionalidad para ser compatible con HTML5. Adicionalmente, muchas de las características que no han sido añadidas ya son soportadas parcialmente. Así que Google Chrome está por mucho al frente de la carrera.

En seguida se encuentra Mozilla Firefox 7.0 con 313 puntos, Todavía les faltan ciertos elementos, pero obtuvo puntos bonus por su excelente soporte a video y sus reglas de parsing.

Internet Explorer, como de costumbre, está muy por detrás de los demás. Con su versión Internet 8 obteniendo 32 puntos de 400, y en su versión 9 obteniendo 141 puntos. Es muy mala calificación para lo que alguna vez fue el navegador más popular del mundo. Internet Explorer ha estado tratando de acatar los estándares internacionales en cuanto a CSS se refiere, sin embargo ha dado mucho que desear, ya que ni siquiera soporta al 100% los estándares CSS3, y no parece haber muchos cambios a futuro.

Así que, aquí están las estadísticas. Por el momento el único navegador que te puede llevar lejos es Google Chrome, y, hasta que todos los navegadores se actualicen, es muy recomendable usar HTML5 solo esporádicamente en tus diseños, hasta que realmente sea un verdadero estándar.

Técnicas en AJAX que han mejorado la usabilidad en un sitio, y cómo implementarlas

Aunque algunos desarrollos en AJAX ya existían desde hace mucho tiempo, fue Google quien nos cautivó con GMail al implementarlo tan bien que vimos las posibilidades reales de una aplicación de escritorio corriendo en la web.

Luego de eso fueron surgiendo más aplicaciones, pero sobre todo técnicas implementadas en éste conjunto de tecnologías que mejoraron la experiencia del usuario, y el desarrollo web, que me gustaría enumerar algunas en éste artículo junto a enlaces con scripts gratuitos para que cualquier otro desarrollador pueda implementarlo en su siguiente aplicación.

Autocompletado

autocompletadoEsto nos ha sido de gran ayuda para completar formularios, la primera vez lo ví con Google Suggest que ofrecía sugerencias de posibles búsquedas, también lo incluye GMail para ayudarnos a ingresar direcciones de correo.

Scripts con ejemplos y tutoriales para su implementación:

Información en pestañas

Pestañas en AJAXMejoró la forma de presentar la información en un sitio web haciéndolo más ordenado, es común que ahora las barras laterales de un sitio contengan al menos un módulo de éste tipo.

Calificar un artículo o elemento

Calificado de artículos o elementosYoutube nos enseñó a calificar los videos ;) , es una forma práctica de lograr que los usuarios nos den retroalimentación sobre lo que publicamos para luego tomar decisiones en base a ello o sencillamente mostrar lo más popular a nuestros visitantes

Validación al enviar formularios

validacion de formulariosAtrás quedaron los tiempos en los que se enviaba un formulario y la página se recargaba diciéndo que no habíamos ingresado algún dato, lo que a veces ocasionaba que se perdiera la información y tuviéramos que llenar de nuevo todos los campos, ahora con AJAX se valida y muestra de forma útil cuando hemos cometido algún error.

Fuente:www.maestrosdelweb.com

Usabilidad al diseñar formularios de contacto

En el desarrollo de un sitio web, una de las páginas imprescindibles es la que destinamos para que nos contacten y es en esta página donde generalmente mostramos un formulario de contacto; pero ¿siempre este formulario es tan práctico y útil para el usuario como esperamos?

A continuación trataremos algunos aspectos importantes a tener en cuenta para darle un toque de usabilidad a nuestro formulario de contacto.

Lo primero en el desarrollo de un formulario de contacto o de cualquier aplicación para la web es que los usuarios de Internet siempre navegan por la red de redes con poco tiempo. Por lo que es recomendable realizar los formularios de contacto con la cantidad de campos mínimos necesarios, evitando con esto la pérdida de tiempo para el usuario que nos visite.

Si queremos que el usuario se sienta cómodo en nuestro sitio debemos facilitarle las cosas y guiarlo. A continuación ponemos a su disposición las prácticas necesarias para lograr la comodidad del visitante en nuestro formulario de contacto.

Resaltemos los campos obligatorios

Es muy recomendable marcar los campos obligatorios de nuestro formulario de contacto cuando se muestra la página por primera vez y con esto evitar mensajes de error como este: “Debe completar el campo email” que aparecen cuando el usuario ha completado su formulario olvidando escribir su correo electrónico y ha hecho clic en el botón Enviar.

Existen varias formas de resaltar estos campos:

  • Colocando un asterisco al lado de los campos obligatorios.
  • Marcando en negrita los campos obligatorios.
  • Agregando la palabra “Obligatorio” al lado del campo en cuestión.
  • Utilizando código javascript para validar que el campo no se encuentre vacío cuando este pierda el foco.

En las dos primeras soluciones se debe aclarar al usuario, en el inicio de la página, que los campos marcados con la forma que se escoja deben completarse obligatoriamente, para que no quede lugar a dudas.

Ejemplo o descripción de los campos

Si queremos guiar a nuestro usuario la mejor forma será mostrándole en cursiva a un lado o debajo del control, un ejemplo o una descripción breve de lo que debe escribir en cada campo de nuestro formulario de contacto.

Un ejemplo práctico es este formulario de contacto que se muestra en la imagen siguiente:

Formulario de Contacto

No usar el botón “Borrar Formulario”

El botón Borrar formulario o Limpiar, como también se le llama, generalmente no es utilizado. Es poco útil porque en la mayoría de las ocasiones al usuario no le interesa borrar todo lo que escribió. Si se equivoca en algo simplemente arregla el detalle y deja el resto del formulario intacto.

Pero a veces nos sucede que al escribir rápido y hacer clic en un botón sin fijarnos cuál es o por el uso de la tecla TAB para movernos por los controles; sin querer presionamos este botón y echamos por tierra el mensaje que habíamos elaborado.

Es por esto que lo más recomendable para evitarle al usuario estas situaciones molestas es no colocar este tipo de botón en nuestro formulario de contacto.

Detallar el motivo de error

Personalmente me ha sucedido que he completado un formulario de contacto y al pinchar sobre el botón Enviar, me aparece el error “El mensaje no se pudo enviar”. Tratemos de evitar ese tipo de mensajes confusos.

En los mensajes de error seamos prácticos y amables, tengamos presentes que la mayoría de los usuarios que nos contactarán no serán usuarios avanzados y quizás no comprendan términos como “Imposible contactar al servidor SMTP”, “Error al escribir datos en MySQL”, pero lo más importante es que el usuario conozca el motivo del error con términos claros y sencillos.

Javascript, nuestro mejor amigo

Este lenguaje se ha extendido por las múltiples ventajas que ofrece. La mayoría de las aplicaciones web actuales utilizan, al menos en una página, una función escrita en javascript.

Una de sus características es que se ejecuta en el navegador, o lo que es lo mismo, en el lado del cliente y esto lo hace muy útil para la validación de formularios en general.

En el desarrollo de formularios de contacto es muy útil para validar el formato del email que introduce el usuario. Con esta función de ejemplo podremos realizar esa tarea:

<!--  (….) -->
<script language="JavaScript" type="text/javascript">

function validarEmail(cadena) {
var a = cadena.value;
var filter=/^[A-Za-z][A-Za-z0-9_]*@[A-Za-z0-9_]+.[A-Za-z0-9_.]+[A-za-z]$/;

if (a.length == 0 )
return true;

if (filter.test(a))
return true;
else
alert("Porfavor, debe ingresar una dirección de correo válida");

cadena.focus();
return false;
}
</script>
<!--  (….) -->

Lo que más desea el usuario que nos envía el mensaje a través del formulario de contacto es que su mensaje llegue rápido para que sea respondido con brevedad. En otras ocasiones la página demora unos segundos en actualizar y los usuarios creen que su clic no ha sido asimilado por la aplicación.

Por ambos motivos sucede que presionan el botón Enviar varias veces. Esto nos genera el mismo mensaje repetido en nuestra aplicación web. También para esto es muy útil el javascript. Con el código que mostramos a continuación podemos evitar que esto suceda inhabilitando el botón Enviar cuando se presiona la primera vez.

<HTML>
<!--  (….) -->
<script language="JavaScript" type="text/javascript">
function bloquear() {
form1.Submit.disabled = true;
form1.Submit.value = "Procesando datos... ";
}
</script>
</head>

<body>
<form name="form1" method="post" action="tuscript.pl" onSubmit="bloquear()">
  <p>
    <input type="text" name="textfield">
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</HTML>

En el ejemplo se bloquea el botón Enviar y cambia el texto del botón por “Procesando datos…”

El toque final

Detrás de cualquier formulario de contacto se esconde un personal de soporte técnico o de atención a clientes. Son éstas personas, las encargadas de leer y responder los mensajes que se envían, las que verdaderamente ponen el sello de la excelencia a nuestro formulario de contacto. Ya que el usuario que nos contacta siempre espera que se le responda rápido y se le aclare la inquietud que lo motivó a enviar el mensaje.

Es muy importante tener en cuenta que si este aparato falla, ya sea porque demoran mucho en responder, no responden o las respuestas no satisfacen; los usuarios perderán la confianza en nuestro formulario de contacto y aún siendo el mejor en cuanto a usabilidad dejarán de utilizarlo.

Algunas empresas centran toda su energía en la calidad del personal que responderá los mensajes de contacto, otras se preocupan más por la usabilidad del formulario en la web que por lo anterior.

¿A cuál de las dos actividades le dedicaría usted más esfuerzos?

Fuente: www.maestrosdelweb.com

¿Cómo crear una página web?

Para crear un website y subirlo a Internet, se necesitan 3 cosas básicas que son necesarias.

  1. Registro de dominio
  2. Hospedaje web
  3. Diseño

Un dominio es toda aquella dirección de Internet que tiene el formato “ejemplo.com”, “www.mipaginabbb.com”,  “hospedajefulano.com”. Se puede registrar un dominio con compañías llamadas registrars.

El hospedaje web es un servicio donde se ofrece alojar su website en un servidor, que esté encendido las 24 horas,  los 365 días del año. Dicho servidor debe estar siempre en óptimas condiciones y en un ambiente seguro y climatizado. Generalmente se tienen plantas de luz de emergencia y más de un proveedor de Internet, por si llegara a fallar alguno.

Y finalmente  se necesita un diseño web. Existen muchas opciones, desde contratar una compañía o persona que diseñe, hasta hacerlo uno mismo desde cero. Pero, ¿porque hacerlo desde cero si alguien ya hizo el trabajo sucio por nosotros? Podemos usar lo que se le llama plantillas, que son websites prediseñados y que podemos modificar a nuestro gusto. Existen plantillas gratis o de paga, pero sabiendo buscar, hay muchas de muy buena calidad.

Para diseñar o modificar una plantilla necesitamos de un editor de código html. Existen muchos de ellos que son “open source” y que podrás descargar gratis. Si eres nuevo en esto, asegúrate que tengan un “WYSIWYG” (What You See Is What You Get), para que puedas ver los cambios que vas haciendo y no solamente veas código.

Paginación en Flash en ASP o PHP

En el siguiente artículo encontrarás como hacer una paginación en flash dividido en tres partes: Creación del diseño de los registros en flash, Creación del ASP y PHP y Desarrollo del código en ActionScript.

Para este ejemplo utilizaré la versión 8 de Macromedia Flash, el primer paso que haremos será abrir el programa.

Creación del diseño de registro:

Creamos un nuevo documento y hacemos el siguiente diseño de cómo se verán nuestros registros.

flash

Como verán paginaremos de 5 en 5 y necesitamos hacer 5 campos de nombre, edad y sexo de la siguiente manera:

  • nombre1, nombre2, nombre3, nombre4, nombre5
  • edad1, edad2, edad3, edad4, edad5
  • sexo1, sexo2, sexo3, sexo4, sexo5

Haremos 2 botones “Siguiente” y “Anterior”, dos campos más Dynamic Text uno con el nombre página y otro con el nombre pag_total. Luego, salvamos nuestro proyecto, en este ejemplo se llamará: paginacion5.fla

Creación del ASP

Ahora abramos un “bloc de notas” y pongamos el siguiente código, en el ejemplo guardaré con el nombre de paginacion5.asp.

 <%
response.Write("&nombre1=Antonio&nombre2=Araceli&nombre3=Alan&nombre4=Alberto&nombre5=
Ana")
response.Write("&nombre6=Brisa&nombre7=Brenda&nombre8=Belen&nombre9=Beto&nombre10=Bar
bara")
response.Write("&nombre11=Carolina&nombre12=Cesar&nombre13=Carlos&nombre14=Cristina&nom
bre15=Carmen")
response.Write("&nombre16=Daniel&nombre17=Denia&nombre18=Daniela&nombre19=Dolores&&no
mbre20=Dana")
response.Write("&nombre21=Estefani&nombre22=Elena") 

response.Write("&edad1=15&edad2=16&edad3=13&edad4=11&edad5=16")
response.Write("&edad6=28&edad7=25&edad8=23&edad9=28&edad10=29")
response.Write("&edad11=31&edad12=38&edad13=33&edad14=39&edad15=35")
response.Write("&edad16=47&edad17=45&edad18=43&edad19=49&edad20=41")
response.Write("&edad21=56&edad22=54") 

'H = Hombre y M = Mujer
response.Write("&sexo1=H&sexo2=M&sexo3=H&sexo4=H&sexo5=M")
response.Write("&sexo6=M&sexo7=M&sexo8=M&sexo9=H&sexo10=M")
response.Write("&sexo11=M&sexo12=H&sexo13=H&sexo14=M&sexo15=M")
response.Write("&sexo16=H&sexo17=M&sexo18=M&sexo19=M&sexo20=M")
response.Write("&sexo21=M&sexo22=M") 

response.Write("&registros=22")
%> 

<<

Creación del PHP

El ejemplo tendrá por nombre paginacion5.php

<? 

echo"&nombre1=Antonio&nombre2=Araceli&nombre3=Alan&nombre4=Alberto&nombre5=Ana";
echo"&nombre6=Brisa&nombre7=Brenda&nombre8=Belen&nombre9=Beto&nombre10=Barbara";
echo"&nombre11=Carolina&nombre12=Cesar&nombre13=Carlos&nombre14=Cristina&nombre15=Car
men";
echo"&nombre16=Daniel&nombre17=Denia&nombre18=Daniela&nombre19=Dolores&&nombre20=D
ana";
echo"&nombre21=Estefani&nombre22=Elena"; 

echo"&edad1=15&edad2=16&edad3=13&edad4=11&edad5=16";
echo"&edad6=28&edad7=25&edad8=23&edad9=28&edad10=29";
echo"&edad11=31&edad12=38&edad13=33&edad14=39&edad15=35";
echo"&edad16=47&edad17=45&edad18=43&edad19=49&edad20=41";
echo"&edad21=56&edad22=54"; 

//H = Hombre y M = Mujer
echo"&sexo1=H&sexo2=M&sexo3=H&sexo4=H&sexo5=M";
echo"&sexo6=M&sexo7=M&sexo8=M&sexo9=H&sexo10=M";
echo"&sexo11=M&sexo12=H&sexo13=H&sexo14=M&sexo15=M";
echo"&sexo16=H&sexo17=M&sexo18=M&sexo19=M&sexo20=M";
echo"&sexo21=M&sexo22=M"; 

echo"&registros=22"; 

?>

Desarrollo del código en ActionScript

Retomamos nuestro flash para agregar el código e ingresar los registros de 5 en 5. Seleccionamos el primer KeyFrame y nos vamos a las actions o acciones. Y de inicio pondremos un stop(); para que no tengamos problemas.

Flash

El siguiente código nos permitirá llamar el archivo ASP o PHP:

//Cargo la variable new
var SendData:LoadVars = new LoadVars();
//Llamo el archivo (asp o php) en este caso será asp
SendData.load("paginacion5.asp");
//asigno 5 variables para los registros y estas variables nos ayudaran mucho en la paginación
 var num1:Number = 1;
 var num2:Number = 2;
 var num3:Number = 3;
 var num4:Number = 4;
 var num5:Number = 5
//Función para primera muestra de registros
SendData.onLoad = function (success){
if (success) {
 //Muestro los primeros registros recordemos que mostraremos de 5 en 5.
 //Aquí se muestran los nombres
 nombre1 = this["nombre"+num1].toString();
 nombre2 = this["nombre"+num2].toString();
 nombre3 = this["nombre"+num3].toString();
 nombre4 = this["nombre"+num4].toString();
 nombre5 = this["nombre"+num5].toString();
 //Aquí se muestran las edades
 edad1 = this["edad"+num1].toString();
 edad2 = this["edad"+num2].toString();
 edad3 = this["edad"+num3].toString();
edad4 = this["edad"+num4].toString();
 edad5 = this["edad"+num5].toString();
 //Aquí se muestra el sexo
 sexo1 = this["sexo"+num1].toString();
 sexo2 = this["sexo"+num2].toString();
 sexo3 = this["sexo"+num3].toString();
 sexo4 = this["sexo"+num4].toString();
 sexo5 = this["sexo"+num5].toString();
 //Cargo también el número de registros
 registros = this.registros;

Hasta este punto nuestro flash llama los primeros 5 registros del archivo. Ahora, haremos que nos de también el número de las páginas obtenidas.

/*Para sacar el número de páginas obtenidas divido los registros obtenidos entre el número de registros que muestra la paginación que en este caso son 5*/
 var registro2:Number = registros / 5;
/*Obtenemos con otra variable el resultado para mostrarlo en nuestro Dynamic Text y como podría ser que en esta operación el número obtenido no sea redondo con la funcion Math.ceil la  redondeo*/
 pag_total.text = Math.ceil(registro2);
 }
}

Hasta aquí obtendremos los primeros 5 registros y las página, compilemos nuestro .fla y hagamos una prueba. Estos archivos hay que correrlos en un servidor, yo le instale el IIS a mi Windows XP si no contamos con esto no podremos ver el resultado.

En el Dynamic Text con el nombre página hay que ponerle por default un 1 porque sabemos que siempre empezará de la página 1. A continuación veamos como se visualizan los primeros 5 registros.

Flash

Con este resultado prosigamos con el código que llevarán los botones “Siguiente” y “Anterior”. Para ello, seleccionamos el botón “Anterior” y en las actions agregamos el siguiente código:

on (press)
{
 botones(2)
}

Ahora seleccionemos el botón “Siguiente” y pongamos el código:

on (press)
{
 botones(1)
}

flash

En los dos botones, mandamos a llamar a una función que estará en el mismo keyframe, en donde hemos jalado los primeros 5 registros. Pero cada botón, manda una variable distinta para distinguir el botón oprimido.

Función botones()

function botones(valorbtn)
{
 //Valido si el botón “Siguiente” fue oprimido y si es así ejecuto lo siguiente
 if (valorbtn == 1)
 {
  //Primero validamos si el número de página no ha rebasado el número de páginas obtenidas
  if (pagina.text < pag_total.text)
  {
   //Si el número de páginas no ha sido rebasada ejecutamos lo siguiente
   //La variable pag_act toma el valor en ese momento de pagina.text
   var pag_act:Number = Number(pagina.text);
   //creamos la variable nu que será el resultado de la variable pag_act * 5
   var nu:Number = pag_act * 5;
   //Mandamos a llamar a la funcción más 5 y le mandamos la variable nu
   mas5(nu)
   //Le damos un nuevo valor a pagina.text sumándole 1
   pagina.text = pag_act + 1;
  }
 //Valido si el botón “Anterior” fue oprimido y si es así ejecuto lo siguiente
 } else if (valorbtn == 2)
 {
   //Aquí hacemos una validación antes para ver si la variable pagina es mayor a 1 si
es así se ejecuta
  if (pagina.text > 1)
  {
   //La variable pag_act toma el valor en ese momento de pagina.text
   var pag_act:Number = Number(pagina.text);
   /*creamos la variable nu2 que será el resultado de pag_actual * 5 - 10 esto nos
ayudará a descontarle 5 registros a nuestra paginación*/
   var nu2:Number = (pag_act * 5) - 10;
   //Mandamos a llamar a la función menos5 y le mandamos la variable nu2
   menos5(nu2)
   //Le damos un nuevo valor a pagina.text descontandole 1
   pagina.text = pag_act - 1;
  }
 }
}

Analicemos qué hace esta función, en primera instancia verifica si hará un procedimiento del botón siguiente o del botón anterior. Si se ha oprimido “Siguiente”, primero se validara que existan más páginas. Esto lo hacemos comparando la página actual contra el número de páginas totales.

Después si pasa la comprobación, tomamos el número de la página actual y lo multiplicamos por 5 (el 5 es por que estamos paginando de 5 en 5) ese resultado se lo mandaremos a una función llamada mas5.

Si se ha oprimido “Anterior”, primero se validará que aun podamos regresar una página anterior y eso lo haremos comprobando que la página actual sea mayor a 1, bien y si pasa esa comprobación tomamos el número de la página actual, lo multiplicamos por 5 y le restamos 10 que es el doble de la paginación. El resultado se lo mandaremos a una función llamada menos5.

función mas5()

function mas5(nu)
{
 /* Aquí creamos 5 variables las cuales tomaran cada una el registro que deben de mostrar,
 Vemos que num_mas1 es igual a la variable num1 + variable nu que se nos ha mandado de la
función botones, y así sucesivamente las otras 4 */
 var num_mas1:Number = num1 + nu;
 var num_mas2:Number = num2 + nu;
 var num_mas3:Number = num3 + nu;
var num_mas4:Number = num4 + nu;
var num_mas5:Number = num5 + nu;
 //Mostramos los siguientes registros
//Mostramos los siguientes nombres
 nombre1 = SendData["nombre"+num_mas1].toString();
 nombre2 = SendData["nombre"+num_mas2].toString();
 nombre3 = SendData["nombre"+num_mas3].toString();
nombre4 = SendData["nombre"+num_mas4].toString();
nombre5 = SendData["nombre"+num_mas5].toString();
//Mostramos las siguientes edades
 edad1 = SendData["edad"+num_mas1].toString();
 edad2 = SendData["edad"+num_mas2].toString();
 edad3 = SendData["edad"+num_mas3].toString();
edad4 = SendData["edad"+num_mas4].toString();
edad5 = SendData["edad"+num_mas5].toString();
//Mostramos los siguientes sexos
 sexo1 = SendData["sexo"+num_mas1].toString();
 sexo2 = SendData["sexo"+num_mas2].toString();
 sexo3 = SendData["sexo"+num_mas3].toString();
sexo4 = SendData["sexo"+num_mas4].toString();
sexo5 = SendData["sexo"+num_mas5].toString();
}

Analicemos un poco esta función realmente es interesante lo que hace, como vemos creamos una variable num_mas1 que es igual a la suma de num1, si recordamos num1 vale 1 se declaro en la carga de los primeros 5 registros y se le suma con la variable nu si también recordamos esta variable nos viene cuando se le ha dado clic al botón “siguiente”.

Analicemos que número nos manda nu al primer clic que se da. Recordemos que nu es la suma de pag_act * 5 si en ese momento pagina actual es = 1 entonces esta quedaría de la siguiente manera nu = 1 * 5 y el resultado es 5, así que ya sabemos que en el primer clic nu valdrá 5.

Entonces en nuestra función mas5 sabemos que:

var num_mas1:Number = num1 + nu;

Es igual a:

var num_mas1:Number = 1 + 5;

Entonces esto nos dará como resultado un 6, entonces nombre1 ahora cargará nombre6 y así sucesivamente con los demás nombres, edades y sexos.

nombre1 = SendData["nombre"+num_mas1].toString();
nombre1 = SendData["nombre6"].toString();

Ya entendiendo esto veamos que hace nuestro flash cuando compilamos este código ya en el keyframe.

flash

Como vemos ya esta funcionando perfectamente nuestro botón “Siguiente” y si nosotros estando en la página 5 de 5 le volvemos a dar siguiente no hará nada ya que nuestra validación:

if (pagina.text < pag_total.text)

Si la página actual no es menor a el total de páginas entonces no se ejecutara de nuevo el código.

Función menos5()

function menos5(nu2)
{
 /* Aqui creamos 5 variables las cuales tomaran cada una el registro que deben de mostrar,
 Vemos que num_menos1 es igual a la variable num1 + variable nu2 que se nos ha mandado de la
función botones, y asi sucesivamente las otras 4 */
 var num_menos1:Number = num1 + nu2;
 var num_menos2:Number = num2 + nu2;
 var num_menos3:Number = num3 + nu2;
var num_menos4:Number = num4 + nu2;
var num_menos5:Number = num5 + nu2;
 //Aquí mostramos los 5 registros anteriores
 nombre1 = SendData["nombre"+num_menos1].toString();
 nombre2 = SendData["nombre"+num_menos2].toString();
 nombre3 = SendData["nombre"+num_menos3].toString();
nombre4 = SendData["nombre"+num_menos4].toString();
nombre5 = SendData["nombre"+num_menos5].toString();
//Aquí mostramos las edades anteriores
 edad1 = SendData["edad"+num_menos1].toString();
 edad2 = SendData["edad"+num_menos2].toString();
 edad3 = SendData["edad"+num_menos3].toString();
edad4 = SendData["edad"+num_menos4].toString();
edad5 = SendData["edad"+num_menos5].toString();
//Aquí mostramos los sexos anteriores
 sexo1 = SendData["sexo"+num_menos1].toString();
 sexo2 = SendData["sexo"+num_menos2].toString();
 sexo3 = SendData["sexo"+num_menos3].toString();
sexo4 = SendData["sexo"+num_menos4].toString();
sexo5 = SendData["sexo"+num_menos5].toString();
}

Analicemos también un poco esta función realmente es tan interesante como la anterior, tomemos el primer ejemplo:

var num_menos1:Number = num1 + nu2;

Veamos que significa num1 y nu2, como se dijo en la función pasada num1 se declaro al principio y su valor es 1 y nu2 en la multiplicación de página actual por 5 menos 10.

var nu2:Number = (pag_act * 5) - 10;

Bueno imaginemos que ya se le ha dado un clic a “Siguiente” y estamos en la página 2 entonces esto quedaría de la siguiente manera:

nombre1 = SendData["nombre"+num_menos1].toString();
nombre1 = SendData["nombre1”].toString();

Así, se retrocederá 5 registros por cada campo y resulta lo mismo para edad y sexo. Ahora notese que si página actual no es mayor a 1, ya no nos permite ir más atrás esto recordemos que lo hace:

if (pagina.text > 1)

Metamos esta función a nuestro keyframe y veamos que nos hace. Como podrán ver si se acabaron los registros nos muestra un terrible “Undefined”, como podemos evitar
esto.

A nuestra función mas5() pongámosle lo siguiente:

/*Si algún campo es nulo que no tenga información le decimos que lo deje en blanco
 y así evitamos un mensaje de error del flash*/
 if (nombre1 == undefined)
 {
  nombre1 = "";
 }
 if (nombre2 == undefined)
 {
  nombre2 = "";
 }
 if (nombre3 == undefined)
 {
  nombre3 = "";
 }
 if (nombre4 == undefined)
 {
  nombre4 = "";
 }
 if (nombre5 == undefined)
 {
 nombre5 = "";
 }
 if (edad1 == undefined)
 {
  edad1 = "";
 }
 if (edad2 == undefined)
 {
  edad2 = "";
 }
 if (edad3 == undefined)
 {
  edad3 = "";
 }
 if (edad4 == undefined)
 {
  edad4 = "";
 }
 if (edad5 == undefined)
 {
  edad5 = "";
 }
 if (sexo1 == undefined)
 {
  sexo1 = "";
 }
 if (sexo2 == undefined)
 {
  sexo2 = "";
 }
 if (sexo3 == undefined)
 {
  sexo3 = "";
 }
 if (sexo4 == undefined)
 {
  sexo4 = "";
 }
 if (sexo5 == undefined)
 {
  sexo5 = "";
 }

Con esto evitan que salga ese terrible “Undefined”. Bueno como verán hemos terminado con todo realmente ya tenemos una buena aplicación en Flash para paginar, mucho del código aquí expuesto se puede mejorar y se puede hacer más corto, pero yo evite meterme con cosas como los for ya que mi intención es que cualquier persona que valla empezando en flash le pueda entender y no sea difícil al comprenderlo, ya de penderá mucho de cada uno de ustedes que le pueda ir reduciendo o mejorando.

Creo que por ahí se nos olvidaba poner en pantalla el número de registros obtenidos, y eso es realmente fácil, agreguemos un Dynamic Text más llamado registros y se verán cuantos registros son en total.

flash

Quiero finalmente agradecer a forosdelweb.com por todo lo que he podido aprender y a mi compañeros SinguerInc que me ayudo a resolver dudas que tenía sobre unas variables y con ello se ha logrado hacer este ejemplo.

Fuente: www.maestrosdelweb.com

Tips para mejorar la apariencia en errores 404

El error 404 se produce cuando el servidor no encuentra la página que solicitamos y se debe principalmente a que es una página inexistente o un error en la escritura. El 404 no es siempre tu culpa ya que puede haber links rotos o mal escritos hacia tu página. Sin embargo, este error es común, así que lo mejor es crear una página de error 404 con un buen diseño para no perder lectores y mantener el tráfico de usuarios en tu sitio web.

Ideas y ejemplos de errores 404

Buenas ideas para incluir en tu página de error son:

  • Una caja de búsqueda
  • Un link hacia la página de inicio
  • Los mismos gráficos y CSS que el resto de tu página
  • Un mapa del sitio

El usuario debe comprender que hubo un error y la creatividad es la mejor herramienta para darle un camino alternativo para encontrar lo que estaba buscando y evitar perderlo. Así mejorarás la experiencia de navegación dentro de tu sitio.

Si estás buscando inspiración para tu diseño, sería bueno que vieras estos otros diseños de ejemplo que están alrededor de la web.

Digital Mash error 404

Digital Mash nos enseña que un poco de ironía nunca está de más, mientras nos pone a disposición el menú completo como en el resto de la página para que podamos navegar a través de su contenido.

YouCastr Error 404

También es posible incluir algunas emociones con propósitos comunicativos.

Redtag Error 404

Red Tag, logra transmitir el mensaje a pesar de que los errores ocurren, no es necesario que el mundo se ponga de cabeza para solucionarlo.

Mixx error 404

Mixx, nos entretiene y juega con nosotros justificando el error 404 como un truco de magia.

Jamie Huskisson's Webpage Error 404

Las cajas de búsqueda son realmente importantes porque son una forma más fácil de encontrar el contenido que parece no existir, según advierte el 404.

Kidmondo Error 404

Kidmondo, aprovecha el error para modificar ligeramente su logotipo y mejorar su imagen de marca.

Surfing On Static Error 404

Surfing On Static, muestra una pantalla de error que tiene el mismo tono que el resto de la página, lo cual evita que el usuario se desoriente.

Print Screen Error 404
Una de las opciones es explicar el error, como lo hace PrintScreen.

Suspended Animations Error 404

También, se puede apelar a los sentimientos del usuario a través de la comunicación por medio de emociones. Sea cual sea tu estrategia para diseñar el mensaje es muy importante incluir de forma creativa, que comunique y de opciones al usuario en tu sitio web es importante hacerlo de acuerdo con el contenido de tu página.

Otras referencias interesantes son las de Sebastián Thuer quien comparte 21 recursos para tus páginas 404 personalizadas, en este artículo encontrarás una serie de enlaces y recursos para aprender más sobre la usabilidad de la página 404 y su importancia. Además, no te olvides de la importancia de las ilustraciones que pueden ayudarnos a que el usuario siga navegando por el sitio a pesar del error.

Fuente: www.mastrosdelweb.com

Uso de tipografías de gran tamaño en el diseño y la jerarquía del contenido

En la variedad está el gusto, la creatividad no tiene reglas, así que si eres un diseñador minimalista este artículo puede cambiar tu percepción o puedes aborrecerlo. Me gusta el uso de la tipografía para darle personalidad a los diseños, encontrar el equilibro de tamaños en las tipografías puede ser una tarea fascinante en especial en el diseño de web sites.

Algunos diseñadores tienen una inclinación minimalista, con elementos que buscan la simétria y la estética. Por otro lado, existen diseñadores que prefieren lo extravagante, el diseño atrevido que reta a lo establecido. La creatividad no tiene fórmulas y en está ocasión veremos algunos ejemplos de diseños inspiradores que hacen uso de la tipografía de gran tamaño.

Oliverkavanagh:

Empecemos con un poco de exceso, el blog de Olver Kavanagh realmente me parece interesante en el uso de las tipografías grandes. Su menú de opciones ocupa toda la pantalla, utiliza diferentes tipografías, tamaños y colores esos detalles no dejan que te pierdas.

Oliver Kavanagh

Greatworks:

Lo interesante de este diseño es el uso del tamaño de las tipografías para marcar una jerarquía en la información que maneja el sitio, incluso en el uso de los colores. No podemos dejar de notar el uso de la imagen en grande con tipografía gigante detrás. Muy creativo.

great works

Carsonified:

Tres colores, cuatro tipografías con diferetentes tamaños y uso de isotipos. Presten atención como la imagen principal en este diseño es un corazón y el efecto del mouse over es similar a un latido color rojo. Pequeños detalles de gran impacto ¿no creen?.

carsonified

Dreamerlines:

Lo que me agradó de este sitio es la sincronización en su contenido, si se fijan en el texto principal hay una descripción que se conecta con el menú de opciones. Hace uso de la tipografía grande pero también de otros elementos como el resaltado en keywords y colores vivos. Creo que es intuitivo.

dreamerlines

Estos son algunos ejemplos de interesantes diseños que hacen uso de la tipografía de gran tamaño para el diseño y contenido. Me encantará conocer tu opinión sobre los sitios y si tienes algún diseño en donde has experimentado con el tamaño de tipografía que puedas compartir. Además, que nos comentes sobre las tendencias minimalistas o las extravagantes, aveces los diseñadores pueden tomar posturas muy radicales ¿qué opinas sobre ello?

Fuente: www.maestrosdelweb.com

¿Por qué es importante que tu página web tenga favicon?

El “favorite Icon” o favicon como lo conocemos es una imagen que los diseñadores y desarrolladores de sitios web incluir en los sitios para que sirva de icono en la barra de dirección y pesatañas de los navegadores. Descubre por qué es importante usar tan pequeño detalle en tus grandes proyectos.

Cuando navegamos por internet abrimos hasta 20 pestañas al mismo tiempo, los usuarios nos llenamos de información y links por todos lados. Pero lo que nos permite identificar el contenido de cada pestaña es un pequeño icono llamado favicon que aparece junto al nombre del sitio. Este favicon cumple dos principales funciones: la de identificar el sitio y posicionarse en la mente del usuario.

La importancia del favicon está ligado con la usabilidad para la usuario, porque con un simple icono puedo reconocer la página. El tamaño ideal de un favicon es de 16 x 16 pixeles, con extensión .ico de preferencia se recomienda que el icono sea el logotipo que identifique tu proyecto para que la gente se familiarice con él y se posicione.

Generadores de Favicon

faviconesPara diseñar el favicon algunos desarrolladores utilizan Microangelo, The Gimp o KIcon Edit pero si andas en busca de más opciones, estas son algunas en línea que te permiten crear un favicon de forma muy sencilla.

  • Favicon: una herramienta muy fácil de utilizar que te permite importar una imagen o crear un nuevo diseño con una vista previa automática de tu favicon.
  • 256pixels: una herramienta que te permite crear tu favicon pixel por pixel con vista previa.
  • Favicontool: te permite crear tu favicon a través de subir una imagen predeterminada de cualquier tamaño y dimensión.
  • Webscriptlab: te permite generar un favicon en dos tamaños 16 x 16 y de 32×32 subiendo una imagen.
  • Favicongenerator: te permite crear tu favicon en tan sólo 5 pasos y una imagen.
  • Dagondesign: sube una imagen de 16 x 16 en cualquier formato y tendrás listo tu favicon en un paso.
  • Favicon: crea tu favicon en 3 diferentes tamaños.

Si lo que buscas es inspiración para crear tu favicon te recomiendo que veas los 88 favicons populares y los 6 recursos para crear favicons publicados por Site Point, estoy segura que encontraras muchas referencias para crear el tuyo. El favicon además de cumplir con la función de identificar tu página con un pequeño icono, también denota profesionalismo, en la actualidad todas las páginas profesionales lo tienen.

Finalmente me gustaría conocer la importancia que consideras tienen el favicon en una página web. ¿Tu página web tienen favicon? ¿Realmente te sirve de algo el pequeño icono? ¿Qué otras funciones le encuentras?

Fuente: www.maestrosdelweb.com

¿Tiene tu sitio web una versión imprimible?

Una adecuada versión imprimible para nuestros sitios web o blogs, debe brindan la opción de imprimir los contenidos con la menor cantidad de colores e imágenes posibles, ofreciendo una página sin los elementos de navegación.

Es importante ofrecer a los usuarios, una versión de nuestros contenidos de forma limpia de todo lo que lo rodea. El documento generado para impresión, puede contener un logotipo e incorporar la ruta del documento, para que este sea encontrado fácilmente.

Hay algunos tips que debes tomar en cuenta, para crear una versión adecuada de impresión de los contenido de tu sitio web o blog:

  • No es recomendable el uso de columnas.
  • Las tablas e imágenes deben tener un tamaño menor de 750 píxeles de ancho o usar tamaños en %.
  • No usar frames.
  • Procurar que las tablas no contengan color de fondo.
  • Usar fuentes tamaño “normal” 12 puntos.
  • Los objetos animados como gif, flash, videos, suelen dar problemas en la impresión, es recomendable si se quiere imprimir una demostración, ofrecer una versión con imágenes paso a paso con pie de imagen explicando cada una.
  • El navegador Internet Explorer corta las imágenes si estas se encuentran entre 2 páginas.
  • Eliminar los banners que contenga el sitio.

WP-Print, plugin para imprimir desde WordPress

El WP-Print es un plugin creado por Lester ‘GaMerZ’ Chan, el cual se puede utilizar para instalarlo en nuestro blog de WordPress. Para usarlo debemos descargarlo y descomprimir el paquete “print” hacia el directorio “wp-content\plugins\”.

El plugin debe activarse, para ello debemos acceder al menú “Plugins” ubicado en el panel de administración del blog. Luego acceder a la opción “Print” en la pestaña “Opciones”. Allí podremos realizar configuraciones básicas del mismo, por ejemplo: contenido a imprimir, comentarios, imágenes, vínculos, seleccionar una imagen que identificará esta opción y el texto.

Si deseamos que la opción imprimir aparezca en cada post debemos acceder al directorio de nuestra plantilla dentro de “wp-content\themes\”, editar el archivo “index.php” buscar el siguiente código:

 <?php while (have_posts()) : the_post(); ?>
y agregar debajo:
<?php if(function_exists('wp_print')) { print_link(); } ?>
Quedando de la siguiente manera:
<?php while (have_posts()) : the_post(); ?>
	<?php if(function_exists('wp_print')) { print_link(); } ?>

Si deseamos que aparezca la opción de imprimir en un lugar determinado, al escribir o editar un Post debemos insertar “[print_link]” donde la deseemos mostrar.

Descargar: Plugin WP-Print

Generar archivo PDF

Otra de las opciones al momento de manejar contenidos es la versión imprimible generando un PDF. Esta opción puede utilizarse para imprimir pero también puede descargarse como documento.

Las librerías FPDF creadas en PHP freeware, tiene como objetivo generar archivos en PDF con contenido específico. El siguiente código debe insertarse en un archivo PHP. Este archivo puede vincularse con una base de datos, realizando consultas y obteniendo el contenido a imprimir.

<?php
require('fpdf/fpdf.php'); // Librería FPDF

$pdf=new FPDF();  // Creación de una instancia de la Clase “PDF_HTML”
$pdf->AddPage(); // Método de la clase
$pdf->SetFont('Arial','B',16); // Método de la clase, definir fuente, estilo, tamaño
$pdf->Cell(40,10,'Maestros del Web'); // Método de la clase, posición a imprimir
$pdf->Output();  // Método de la clase, salida al archivo PDF
?>

Descargar: Librerías FPDF

Versión para impresión usando Hojas de Estilos CSS

El uso de los archivos CSS nos permite diseñar un estilo determinado para mostrar en la pantalla diferentes opciones de la impresión. Vinculando una hoja de estilo con el sitio.

En atributo “Media” identifica el uso de “screen/pantalla” y “print/impresora“. Al utilizar Dreamweaver como editor se facilita la selección de la opción, de lo contrario debemos buscar la línea de código y agregarlo.

ventana_css.jpg

El siguiente código es el que debe agregarse para el atributo print/impresora:

<link href="print.css" rel="stylesheet" type="text/css" media="print" />

El siguiente código es el que debe agregarse para el atributo screen/pantalla:

<link href="screen.css" rel="stylesheet" type="text/css" media="screen" />

El siguiente código pertenece a una hoja de estilo la cual se mostrará en pantalla, se puede ver el uso de colores fuertes como el rojo y fuentes grandes. Este archivo puede llamarse screen.css (el nombre del archivo no afecta la función del atributo):

fondo {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 18px;
	color: #FF0000;
	border: thin solid #000000;
}

Para la versión que será impresa utiliza pocos colores y puede nombrarse print.css (el nombre del archivo no afecta la función del atributo):

.fondo {
	font-family: Arial, Helvetica, sans-serif;
	font-size: 12px;
	font-weight: bold;
	text-decoration: underline;
}

La siguiente página HTML vinculará estas hojas de estilo:

<html>
<head>
<title>Prueba</title>
<link href="screen.css" rel="stylesheet" type="text/css" media="screen" />
<link href="print.css" rel="stylesheet" type="text/css" media="print" />
</head>
<body>Maestros del Web
</body>
</html>

Descargar: código CSS ejemplo.

Debemos tener en cuenta que los estilos de ambos archivos deben tener el mismo nombre “fondo”, para cuando necesite seleccionar el archivo CSS que será usado para mostrar en “pantalla” e “impresora”.

Función de los atributos

Para entender el funcionamiento de esta opción, podemos decir que cuando se carga una página en el navegador, esta importará la hoja de estilo con la opción “screen”, la cual puede contener imágenes de fondo, cargado de colores fuertes y demás.

Cuando vamos a ver una vista previa de impresión o a imprimir, esta importa la hoja de estilo con la opción “print” que hayamos creado, la cual debemos procurar que contenga la menor cantidad de colores, imágenes y estilos posibles, definir un tamaño de letra adecuado.

Finalmente, recordemos que la versión imprimible en nuestro sitio o blog, es una opción fundamental para los usuarios que les gusta tener acceso a la información de forma impresa. Esto es un valor agregado para el buen manejo de nuestros contenidos.

Fuente: www.maestrosdelweb.com

afiliados