Creación de menú (UL) desde cero – 2 Diseño Tab.

En el post anterior creamos la estructura básica del menú utilizando un contenedor y una lista no ordenada como las opciones que el menú va mostrar. Construimos un menú bastante básico pero funcional.

En este post, daremos al menú un aspecto diferente, vamos a simular TABs.

Comencemos…

1.- Estructura Intacta. Para este ejemplo, la estructura que creamos anteriormente no se modificara, seguimos utilizando:

<div class=»contenedorMenu»>        
            <ul class=»menu»>
                <li><a href=»#inicio»>Inicio</a></li>            
                <li><a href=»#seccion1″>Sección 1</a></li>
                <li><a href=»#seccion2″>Sección 2</a></li>
                <li><a href=»#seccion3″>Sección 3</a></li>
            </ul>                        
        </div>

2.- Agregar estilos. Para darle el efecto de tab, tendremos que agregar nuevos estilos y cambiar de lugar algunos otros.

El primer cambio que realizaremos sucede en la regla del contenedor, en el menú original teníamos esta regla:

.contenedorMenu
            {
                background: #E321A6;   /*Color de fondo para el menu*/
                width: 400px; /*ancho del menu */
            }

Como primer cambio moveremos el estilo que establece color de fondo de la regla del contenedor y lo colocaremos en la regla que establece estilos a los ListsItems.

Como segundo cambio, en esta misma regla, agregaremos los estilos para redondear los bordes superiores de los item de la lista, para esto utilizaremos los estilos border-top-left y border-top-right.

La regla queda así:

.menu li
            {
                float:left;    /*alinear los elemntos a la izquierda*/
                width:100px;    /*Establecer el ancho de cada item*/
                text-align:center;    /*centrar contenido en texto*/
                

               /*Para menú en forma de tabs*/
                background: #E321A6;   /*Color de fondo para el menu 1er cambio*/
                border-top-left-radius: 15px;   /*Bordes redondeados 2ndo cambio*/
                border-top-right-radius: 15px;                
            }

Para mayor información acerca del estilo border-radius, ir aquí

Como tercera modificación, agregamos un borde redondeado al evento hover de los ListItems, esto con la finalidad de ver un borde redondeado al colocar el cursor sobre el Item.

.menu li a:hover
            {
                 background-color:white;    /*Color de Fondo*/
                 color:#E321A6;    /*Color de fuente*/
                 /*Para menú en forma de tabs*/

                 border-top:1px #E321A6 solid;
                 border-top-left-radius: 15px;
                 border-top-right-radius: 15px;    
            }       

El menú queda así:

Menu tab

En el siguiente post veremos como agregar submenús al menú principal

Saludos

Creación de menú (UL) desde cero – 1 Estructura y diseño.

Los menús siempre han sido un elemento infaltable en la visualización de información, por qué, es a partir de él que los usuarios pueden acceder de manera fácil y rápida a toda la información que se desea mostrar.

En los sitio web, los menús han pasado de ser una simple lista enlaces a una serie de elementos HTML que combinado con CSS y JavaScript, nos muestran funcionalidades mas ricas y vistas mas atractivas para usarse.

En esta serie de posts, crearemos un menú desde cero utilizando una lista no ordenada (UL), modificando su vista con CSS y dando funcionalidad con JQuery.

Comencemos…….

1.-Estructurar el menu. Utilizo un div «contenedor » que me permitira mover el menu o cambiar su posicionamiento, dentro de él creo un elemento Lista No Ordenada y creo sus ListItems, uno por cada opción que contendrá el menú.

<div class=”contenedorMenu”>        
          <ul class=”menu”>
                <li><a href=”#inicio”>Inicio</a></li>            
                <li><a href=”#seccion1″>Sección 1</a></li>
                <li><a href=”#seccion2″>Sección 2</a></li>
                <li><a href=”#seccion3″>Sección 3</a></li>
       </ul>                        
 </div>

2.- Diseñar los estilos. Una vez creada la estructura HTML que formará mi menú, aplico los estilos necesarios para darle una vista diferente a como se vería normalmente una lista no ordenada. A continuación se muestran los estilos aplicados a cada uno de los elementos así como la función que tiene cada uno de ellos:

 <style type=»text/css»>
body{ margin:0px;}
/*Estilos para el contendor del menu*/
.contenedorMenu
{
background: #E321A6;   /*Color de fondo para el menu*/
width: 400px; /*ancho del menu considerando que cada una de las opciones del menu tiene como ancho 100px;*/
}
/*Estilos para el elemnto ul*/
.menu
{
list-style: none;  /*Quitar viñetas de la lista*/
padding: 0px;    /*Quitar sangría de la lista */
margin:0px; /*Quitar espacios que genera la lista ul*/
height: 30px;    /*Establecer el ancho del menu*/
line-height: 30px; /*Centrar el contenido al medio*/
}
/*Estilos para los items de menu*/
.menu li
{
float:left;    /*alinear los elemntos a la izquierda*/
width:100px;    /*Establecer el ancho de cada item*/
text-align:center;    /*centrar contenido en texto*/
}
/*Estilos para el enlace dentro de los Items de menu*/
.menu li a
{
text-decoration: none;    /*Quitar el subrayado*/
color: white;    /*Color de fuente*/
display: inline-block;    /*Expandir el enlace a lo alto del LI*/
width: 100%;    /*Expandir el enlace a lo largo del LI*/
}
/*Estilos para los enlaces cuando el mouse se coloca sobre ellos*/
.menu li a:hover
{
background-color:navy;    /*Color de Fondo*/
color:#fff;    /*Color de fuente*/
}

</style>

Hasta ahora, tenemos un menú bastante básico pero funcional. Algo asi:

Menu básico

En próximos post, agregaremos algunas funcionalidades y características a este menú.

2.-Menu en forma de TAB

Gracias.

Almacenar Arrays en Cookies con Javascript

Cuando un servidor web responde a una solicitud de un cliente el servidor termina la conexión que se establece entre ellos y se «olvida» de lo que esta pasando con el cliente, es por ello que se ideó la idea de almacenar en el cliente información que puede ser necesaria en caso de reestablecer la conexión con el servidor para realizar mas peticiones. Tomemos como ejemplo el inicio de sesión de un usuario en sitio web, el usuario iniciará su sesión al ingresar al sitio por primera vez, esta página pedirá recordar estas credenciales para evitar que el usuario tenga que iniciar sesión cada que se reestablece la comunicación con el servidor.

Esto es posible gracias a que el lenguaje JavaScript es capaz de escribir esta información directamente en el cliente a través de archivos de texto. Las cookies se administran de forma diferente para cada navegador, en algunos casos se crea un archivo de cookies por dominio y en algunos otros por cada usuario del equipo cliente. Esto no nos afecta en nada ya que en el lenguaje JavaScript las cookies se manejan de la misma forma, independientemente del navegador que el cliente utilice.

Desde el JavaScript las cookies se guardan la propiedad cookie del objeto document y de igual manera es desde ahí donde se recuperan las cookies almacenadas.

Cabe recordar que los datos que se almacenan dentro de las cookies se almacenan como cadena de caracteres, entonces les presento aquí una forma de almacenar datos de un arreglo dentro de una cookie:

//Teniendo un array con datos:
var ganadores = [«Luis»,120,»Ernesto»,87,»Vane»,145];
//creamos una variable que almacenara las cadenas que contienen el arreglo
var strGanadores=»»;
//mediante un ciclo concatenamos los valores del arreglo a la cadena.
for(var i=0;i<ganadores.length;i++)
{
strGanadores+=ganadores[i]+»,»;  //agregamos un carácter ‘,’ (coma) como separador de los elementos en la cadena
}
//Quitamos el ultimo carácter, que es una coma.
strGanadores = strGanadores.substr(0, strGanadores.length-1);
//Generamos el tiempo de duración que tendrá la cookie
var hoy = new Date();    //Fri May 09 2014 10:43:00 GMT-0500 (Hora de verano central (México))
var unAnio  = 365*24*60*60*1000; // establecer la duración que tendra la cookie 365 dias * 24 horas *60 minutos * 60 segundos * 1000 milisegundos (1 año en milisegundos)
var duracion = hoy.getTime() + unAnio; //la suma de la fecha de hoy en ms ´un año en ms, como resultado = Fri May 09 2024 10:43:00 GMT -0500 en ms
hoy.setTime(duracion);
var expira = hoy.toUTCString();
//guardamos la cookie con los datos del arreglo y que expirara dentro de un año
document.cookie = strGanadores+»;expires=»+expira;

//Para recuperar la informacion
ganadores = document.cookie.split(«,»);  //obtenemos los elementos que se separaron por coma, retorna un arreglo
for(var i=0;i<ganadores.length; i++)
{
document.getElementById(i+1).innerHTML=ganadores[i];
}

Gracias

[IIS] Subir archivos de mas de 4MB

En algunas ocasiones es necesario adjuntar archivos desde el cliente, ya sea para enviar mi CV (Hoja de Vida) en algún registro a un Diplomado o simplemente para asociar una imagen a mi cuenta (Avatar), anteriormente ya vimos Cómo cargar archivos en SQL Server con ASP.NET usando C#  Pero IIS tiene definido por default permitir solo el cargado de archivos menores a 4Mb, es decir archivos relativamente pequeños.

En caso de necesitar archivos de mas de 4MB, se deberá hacer lo siguiente:

En el archivo de configuración Web.config:

Agregar la etiqueta <httpRuntime>, como propiedad agregar maxRequestLength y como valor de esta propiedad, establecer como entero (Int32) el tamaño en KB del limite del búfer, es decir del tamaño máximo del archivo que se puede seleccionar.

<httpRuntime maxRequestLength="10240"/> //10 MB

Saludos

¡¡Bienvenidos colaboradores!!

Le damos la más cordial bienvenida a nuestros colegas del Grupo Desarrollador SLP

Que de ahora en adelante se unen como colaboradores de este blog con aportaciones sobre nuevos temas y enriquecimiento de los actuales, sin duda cada una de las entradas generadas por estos nuevos colaboradores enriquecerán el contenido de sitio y apoyará a todos aquellos que buscan tips, trucos, códigos y experiencias!.

Bienvenidos y a compartir!

@chuy_rodriguez & @igarperez

PhoneGap API + Visual Studio 2012 + Windows Phone 8.0 SDK sobre Windows 8.1

Esta es una pequeña guía de como configurar tu ambiente de desarrollo para PhoneGap sobre Windows 8.1 utilizando VS2012 como IDE y con el emulador de Windows Phone 8.0.

NOTA: Las aplicaciones creadas con Windows Phone 8 solo correrán en dispositivos Windows Phone 8.

1-. Requisitos del Sistema

Sistema Operativo

  • Windows 8, Windows 8 Pro

Hardware:

  • 6.5 GB libre de espacio en disco
  • 4 GB de RAM
  • CPU de 64-bit (x64)

Emulador de Windows Phone 8:

  • Windows 8 Pro edition or greater
  • Requires a processor that supports Second Level Address Translation (SLAT)

SDK + IDE ( Visual Studio )

2.- Instalación IDE

  • Descargar e instalar VS2012
  • Descargar e instalar SDK Windows Phone 8.0

3.- PhoneGap API

  • Descargar la versión 2.8.1 de Phonegap
  • Extraer el contenido, el directorio que utilizaremos será lib\windows-phone-8\
  • Copiar el archivo CordovaWP8_2_8_0.zip a la carpeta \Mis Documentos\Visual Studio 2012\Templates\ProjectTemplates

4.- Crear proyecto

  • Abrir Visual Studio 2012 y elegir Nuevo Proyecto
  • Seleccionar CordovaWP8_2_8_0

Win8Phonegap3

  • Dar nombre y ubicación al proyecto
  • Correr el proyecto utilizando alguna opción del emulador

Win8Phonegap5Win8Phonegap4

Si se desea correr la aplicación directamente en un dispositivo es necesario registrarlo. Aquí la documentación de como hacerlo. Una vez hecho esto selecciona la opción Device  y corre tu proyecto.

Gracias

[IIS] Permisos de escritura en directorio

Hola entusiasta del desarrollo!…. Te invitamos a revisar este mismo contenido en nuestro nuevo sitio CodeTips.com.mx !
http://www.codetips.com.mx/iis/iis-permisos-de-escritura-en-directorio/

En ciertas ocasiones es necesario que nuestra aplicación ASPX deba generar archivos temporales o permanentes dentro de directorios propios de la aplicación con el fin de usarlos durante el proceso o para descarga de parte del cliente, esto puede representar un problema si no se dan los permisos necesarios al IIS para poder hacer uso de este directorio.

En teoría por default, IIS no es capaz de crear, modificar o eliminar un archivo de un directorio, entonces es necesario agregar los permisos correspondientes al directorio para permitirle a IIS hacerlo posible.

Entonces, abrimos nuestro sitio publicado en IIS y nos dirigimos al directorio en donde se crearán los archivos, y arimos sus propiedades

Seguir leyendo este post…….

[ASPX] Mostrar Imagen en Base de Datos en una etiqueta <img>

Hola entusiasta del desarrollo!…. Te invitamos a revisar este mismo contenido en nuestro nuevo sitio CodeTips.com.mx !
http://www.codetips.com.mx/asp-net/aspx-mostrar-imagen-en-base-de-datos-en-una-etiqueta-img/

Es muy común que en alguna aplicación además de información de tipo texto o numérico (entre otras), sea también necesario almacenar imágenes correspondientes a la información que se requiere representar.

Supongamos una aplicación en la cual se desean mostrar los eventos que se realizaran en cierta institución ordenada en cierta manera pero que además de la información propia del evento, se quiera mostrar un carrusel con JQuery en el cual se muestren los banners correspondientes a cada evento.

Para esto se deberá almacenar dicho banner en Base de Datos junto con la información textual del evento. He aquí la pregunta. Si mi imagen esta almacenada en base de datos, ¿Cómo puedo mostrar esta imagen en una etiqueta IMG? A continuación se muestra una opción para hacerlo.

Paso 1: Crear un WebForm llamado Imagen.aspx

Este formulario funcionara como url local para acceder a la imagen.

Seguir leyendo este post…….