coge la información y corre

Hacer que una web no se vea en Internet Explorer

1 de marzo del 2008 Escrito por Alex Barros

Programando una web, me he topado con esta curiosidad.

El código es el siguiente:

  1.  
  2. <head>
  3. <title>Titulo de la pagina<title>
  4. </head>
  5.  

ie7.jpgNótese que la etiqueta TITLE no se cierra correctamente.

Di con esto por accidente, pero me resultó curioso que navegadores como Firefox o Safari visualizaran correctamente la página, mientras que Internet Explorer símplemente mostraba una pantalla en blanco.

Una nueva técnica para fanáticos anti IE (qué desarrollador no lo es…)?

En cualquier caso es una falta intencionada de sintaxis, que por mucho odio que tengamos a este navegador, no deberíamos cometer.

Categorias: Bug, Código, Curioso, HTML, Internet Explorer | 4 comentarios »

Trucos para hacer diseños en CSS más rápido y mejor

17 de febrero del 2008 Escrito por Alex Barros

Enfrentarse a crear una plantilla de diseño desde cero puede ser muy duro y desmoralizante. Por eso he reunido una serie de trucos que conviene tener a mano, para agilizar el proceso, y hacerlo algo más agradable.

Las tres reglas de oro

Lo primero y principal antes de empezar a escribir la plantilla, es definir estas tres reglas de oro del CSS. Se colocan al principio del archivo CSS, y sirven para evitar las discrepancias principales entre navegadores. Así nos evitamos más de un susto al comprobar si se ve igual en todos los navegadores.

  1. * {
  2.         padding:0;
  3.         margin:0;
  4. }
  5. body {
  6.         font-size: 76%;
  7. }
  8. img {
  9.         border-width: 0;
  10. }

Lo que hacen es inicializar todos los márgenes internos y externos a cero (de TODOS los elementos), prefijar un tamaño de letra uniforme para todos los navegadores, y eliminar el borde de las imágenes.

Conocer más sobre las tres reglas de oro del CSS.

Suelo añadir esta cuarta regla, que evita que salga un recuadro alrrededor de los enlaces al pulsarlos.

  1. a {
  2.         outline-style: none;
  3. }

(más info)

Centrar contenedores (elementos div) en CSS

Para centrar un contenedor en CSS, además de definir un ancho determinado, debemos asignar el valor auto al margen izquierdo y derecho del contenedor. Esto no da resultado en Internet Explorer, que requiere de la propiedad text-align: center. Si usamos las dos, nos aseguramos la victoria.
HTML:

  1. [...]<body>
  2.  
  3. <div id="contenedor">
  4.       <h1>Titulo</h1>
  5.       <p>Texto…</p>
  6. </div>
  7.  
  8. </body>

CSS:

  1. body {
  2.         text-align: center;
  3. }
  4. #contenedor{
  5.         text-align: left;
  6.         margin: 10px auto;
  7.         width: 80%;
  8. }

(más info)

Hacer columnas con CSS

Para crear varias columnas en un skin, debemos colocar elementos de bloque (div, ul, form…) que las representen, de forma contigua (uno al lado de otro) en nuestro HTML. A continuación, en el CSS usaremos la propiedad float, que “flota” un elemento a la izquierda o a la derecha, sacándolo del flujo de contenido.

Hay varias formas de aprovechar la propiedad float para crear columnas, algunos ejemplos:

Usando propiedad Float de CSS Usando propiedad Float de CSS
Usando propiedad Float de CSS Usando propiedad Float de CSS

Las flechas indican si se ha flotado a izquierda o a derecha, aúnque resulta bastante obvio.

Ejemplo, el código CSS para hacer que todos los elementos li de una lista, esté flotados a la izquierda, con un tamaño de 100×100 px:

  1. li {
  2.         width: 100px;
  3.         height: 100px;
  4.         float: left;
  5. }

Evitar solapamiento en la propiedad Float

Da definicion en el estándar de CSS, hace que la propiedad float saque al elemento del flujo, y provoca que el resto de elementos “lo ignoren” en muchos aspectos, como que el elemento que lo contiene no adapta su ancho para incluirlo.

Lo que quiero:
Lo que quiero
Lo que ocurre:
Lo que ocurre

Esto lo podemos solventar muy fácilmente.

Si queremos que un elemento que va a continuación de un float, no se vea afectado, le podemos dar la propiedad clear: both

Pero si el problema es que tenemos elementos “flotados”, y queremos que el contenedor los envuelva, nada más fácil que aplicar al contenedor la propiedad overflow: hidden. La explicación la encontraréis aquí

Todas las propiedades a mano

Es muy importante tener siempre las propiedades a mano, y sobretodo conocer las 95 propiedades del CSS 2.1 para conocer las herramientas de que disponemos. Podéis encontrar un agradable listado, muy bien explicado (en inglés) en CulturedCode CSS 2.1 Reference (es un recurso alucinante, muy muy útil)

Usar estructuras prefabricadas

Podremos ahorrarnos tiempo, si partimos de estructuras prefabricadas en CSS y HTML.

  • Layout Gala contiene muchas estructuras combinando tres elementos principales, cabecera y pié de página.
  • Css Easy te ofrece las principales configuraciones para skins, listas para descargar y manipular.
  • En Listmatic encontraréis muchos tipos de lista, para aplicar a menús, o a lo que queráis.
  • En CSS Showcase podréis encontrar muchos ejemplos de barras de navegación.

Plantillas ya elaboradas

Otro recurso es acudir a skins completamente elaborados, y extraer lo que nos interese de ellos. Algunos enlaces:
OpenSourceWebDesigns, FreeCssTemplates, Free-css-templates, TheStyleArchive, TemplateWorld

O recurrir a sitios donde muestran plantillas únicamente para inspirarte:
Inspirational CSS, CSSBeauty, Elegant Desighns

Por último, en del.icio.us (tag: css) podéis encontrar muchos recursos interesantes de CSS, y en Webéame (categoria diseño) otros tantos.

Categorias: Código, CSS, Diseño, Estándar, HOWTO/CóMO, HTML, Web | 14 comentarios »

El aspecto de un correcto HTML

4 de noviembre del 2007 Escrito por Alex Barros

Via del.icio.us descubro esta imágen que transmite de una forma muy acertada todo lo que un buen documento HTML debe contener.

Me gustaría transcribir y traducir este interesante recurso a continuación para todos vosotros:

Doctype declarado correctamente

Parece un galimatías, pero los DOCTYPE son importantes. No sólo hace que tu código sea válido, sinó que dicen a tu navegador detalles de cómo debe renderizar tu página.

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2.  
  3. <html xmlns="http://www.w3.org/1999/xhtml">

Encabezado ordenado

Que conste de título, conjunto de caracteres, enlace a hojas de estilo (incluida la de impresión!) y scripts (enlazados, que NO incluidos).
Los archivos externos (CSS o JavaScript) en carpetas propias (css/ y script/ por ejemplo).

  1. <head>
  2.       <title>Titulo del documento</title>
  3.       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  4.       <link rel="stylesheet" href="css/estilo.css" type="text/css" media="screen, projection"/>
  5.       <link rel="stylesheet" href="css/print.css" type="text/css" media="print"/>
  6.       <script type="text/javascript" src="script/javascript.js"></script>
  7. </head>

ID para Body

El ponerle una id a la etiqueta body te permite crear propiedades CSS específicas para una página en concreto. Por ejemplo diferenciar los h2 del homepage, con un código similar a #home h2 {}, y así no afectar a ningún otro h2.

  1. <body id="home">

Div principal para todo el contenido de la página

El poner un div que contenga todo el contenido nos permite mantener el control del diseño sobre la página en su conjunto. Por ejemplo podemos determinar un ancho fijo de toda la página.

  1. <div id="contenedor">

Menú limpio semánticamente

Un menú debe tener este aspecto:

  1. <div id="menu">
  2.       <ul>
  3.             <li><a href="inicio.php">Inicio</a></li>
  4.             <li><a href="info.php">Info</a></li>
  5.             <li><a href="contacto.php">Contacto</a></li>
  6.       </ul>
  7. </div>

Incluir el contenido repetido

Mucho contenido es común entre página y página. Menús, barras laterales, piés de página, etc. Este tipo de contenido debería ser incluido dinámicamente. Esto puede conseguirse con una simple instrucción de PHP.

  1. <?php include_once("botonero.html") ?>

Contenido importante primero

Es apropiado que incluyas tus contenidos más importantes al principio, como noticias, eventos, que pueden ser listadas al principio del HTML. Si tu barra lateral es sólo para navegación o cosas menos relevantes incluso, deberías ponerla al final del HTML.

Código tabulado

Si cada sección de código se presenta tabulada como un conjunto, la estructura del código queda mucho más comprensible. Cuando un código está completamente alineado a la izquierda es prácticamente imposible de comprender.

Sin estilo!

Tu HTML debe estar completamente orientado a la estructura y al contenido, no al estilo! Deja que el CSS se encargue de todo lo relacionado con el estilo, y por supuesto olvida la etiqueta font

Contenido, contenido, contenido

Aquí has de insertar todo tu contenido, así que manos a la obra. No olvides separar los distintos párrafos con la etiqueta p. Utiliza listas dónde sea apropiado. Utiliza códigos para los símbolos (& copy; & iacute; etc). No abuses de los hr para el salto de línea.

Etiquetas de cierre

Empezaste con fuerza, ahora acaba con fuerza. No seas perezos@ y cierra todas las etiquetas que lo requieran, incluso si la página se renderiza bien sin ellas!

Categorias: Código, HOWTO/CóMO, HTML, Web | 8 comentarios »

Pequeña comparativa de editores HTML en Linux

14 de septiembre del 2007 Escrito por José Cabo

Muchos de los programadores de HTML, PHP, CSS, etc… siguen afirmando que en Linux es imposible o poco productivo trabajar. Me siento obligado a negar tal hecho porque es simplemente.. falso. En el mundo Linux, como en otros Sistemas Operativos (tanto Windows como MacOS) hay montones de editores de montones de sabores y, en el caso de Linux, abundan los multiplataforma y… libres.

Actualmente podemos ver montones de editores relacionados con la programación web. Es un ejemplo el abandonado NVU y su sucesor Kompozer (que hace nada liberaron su última versión), Quanta Plus (que pinta muy muy bien), el mismo gedit, etc… Muchos de ellos se complementan así mismo aunque mi preferido hasta el momento es KompoZer o Quanta plus (que explicaré el porqué).

kompozer.pngEn primer lugar NVU es un proyecto de Mozilla que pretendía revolucionar a los editores HTML del momento en Linux… y bueno, casi lo consigue solo que se abandonó el proyecto. Una verdadera pena porque estaba siendo bastante completo para lo que había actualmente en Linux. Pero gracias a unos buenos programadores se creo un fork, KompoZer, y se empezó a solucionar los bugs y a añadir nuevas herramientas en este “nuevo” programa de edición. Tiene varios modos: el modo normal (ves la página como si estuvieras en el navegador), el modo source para ver el código y el modo tag, para ver las etiquetas, son los más usados. Trae buenas herramientas que más bien podrían pasar por simples gestores de ayuda. Lo que yo creo que le hace falta… es un autocompletado al escribir código.

quanta1.pngTenemos también a Quanta Plus un editor gráfico que usa las librerías de KDE y por lo tanto… se ve mejor en KDE (aunque os puedo asegurar que no se ve tan mal en Gnome). Este programa parecía que iba a ser el que realmente me iba a llamar la atención… y lo fue durante un tiempo porque es el único que conozco que tiene el autocompletado, aunque es una versión muy rudimentaria y no funciona en todos los lenguajes (en CSS por ejemplo no funciona y en HTML no funciona como se espera). Este editor no tiene pestaña para ver lo que llevas hecho sin necesidad de ir al navegador.

gedit1.pngEso por lo que respecta a editores gráficos y nos lanzamos, pues, a editores de texto el que más destaca es sin duda Gedit el -editor de texto plano- de Gnome. Pero no os engañéis, no tiene nada que ver con el Notepad de Windows. Éste es mucho más profesional, bello y funcional. Destaca por su gran capacidad para colorear código en muchos tipos de lenguajes (no solo web, sino de código fuente de C, VB, C++, Perl, Python, etc). Éste es sin duda el preferido por cualquier usuario que se atreva a escribir a pelo sin pijadas.

Por lo que respecta a otros editores no-gráficos (como Gedit) desconozco de otros que estén a su altura (dentro de lo que cabe). Así que si alguien se siente la necesidad de informarme de algún otro programa con mucho gusto lo añadiré.

Ahora lo que realmente os traigo es una sorpresa, aunque posiblemente al sector más conservador de Linux no le agrade la idea. Os traigo a mi amigo Wine, que no es un emulador, y que gracias a él vamos a poder portar ciertas aplicaciones que para los nostálgicos y gente como yo viene realmente bien. Hablo del conocido Dreamweaver, creado por Macromedia y comprado por Adobe después. Gracias a Wine tenemos casi un perfecto porte de esta aplicación nativa de Windows a Linux. Eso sí, me temo que actualmente con la versión actual de Wine (0.9.44) no funciona en su última versión. Así que deberemos usar la versión anterior, la 8 y puedo asegurar que funciona realmente bien, aunque seguro que pronto dan soporte para la que sacaron hace poco: Dreamweaver CS3.

Para instalarlo bajo Wine no necesitáis ningún añadido extra más que el instalador (ejecutable o CD) y seguir como si fuera una instalación normal en Windows (supongo que todos sabéis como funciona Wine $ wine PROGRAMA.exe). Aunque parezca que no, Wine consigue lo imposible. Dreamweaver 8 está bastante integrado en el escritorio y funciona a la perfección con las últimas versiones de Compiz Fusion, incluido exposé, el efecto gelatina y la transparencia en los menús, una gozada.

dw1.png
dw2.png
dw3.png

Como ya he dicho, si tenéis dudas sobre los mismos programas o queréis añadir cosas nuevas (features o lo que sea) tenéis un maravilloso sistema de comentarios para contactar y hablar con nosotros (y con quien sea) ahí debajo.

Categorias: Comparativa, CSS, GNU/Linux, HTML, Internet, PHP, Software libre, Web | 6 comentarios »

Comet, la nueva etapa de Ajax

30 de agosto del 2007 Escrito por Alex Barros

generic-comet.jpgAjax sigue siendo un completo desconocido para muchos programadores web. Se habla de que es un lenguaje (no lo es, es una herramienta!) y se asocia automáticamente a la nueva generación de webs, más potentes, amigables, sociales, usables…

Ajax consiste, básicamente, en mandar mensajes (con formato XML, o texto plano) del servidor al cliente mediante una petición asíncrona por parte del cliente.

Un ejemplo: Cuando el usuario pulsa en un botón de búsqueda, se envía una petición al servidor solicitando los resultados de esta búsqueda, cuando los tiene los devuelve, y el usuario los ve en pantalla, todo sin cambiar de página.

Esto implica que para que el servidor me de información, el cliente tiene que solicitarla, es decir, al ocurrir algún evento en el lado cliente. Y aquí radica la diferencia entre AJAX y Comet (o HTTP Push), y es que Comet no requiere que el ordenador cliente solicite ninguna información, sinó que es el servidor el que decide cuándo enviar la información al cliente, de forma asíncrona.

Un ejemplo: En un sistema de mensajería instantánea, en lugar de hacer contínuos chequeos al servidor, para ver si hay nuevos mensajes, símplemente cada vez que el servidor recibe un nuevo mensaje envía esta información a las máquinas cliente.

La forma de hacer esto es mediante una conexión HTTP de larga duración, de esta forma el servidor tiene una línea contínua de comunicación con el cliente. Aquí el cliente envía información al servidor, y el servidor al cliente; pero cada uno lo hace en el momento oportuno, en lugar de viajar la información como bloque de datos en respuesta a una petición.

Para usar esta tecnología tendremos que usar alguno de los pocos frameworks que actualmente existen con soporte para Comet, por ejemplo Xaja, un framework PHP que permite este tipo de conexión, o HTTP.Push, pequeña biblioteca javascript con este tipo de llamada.

Personalmente todabía he de investigar sobre esta tecnología, porque no tengo muy claro lo de generar eventos en el servidor, o lo de que un archivo en lado servidor esté siempre disponible con el cliente.

Categorias: HTML, JavaScript, Web | 1 comentario »

del.icio.us meneame.net RSS

Search:

Bicivalencia Localiza las estaciones de Valenbisi, servicio público de bicicletas en Valencia, España. Ver más Gpsia Descubre y comparte rutas por todo el mundo, tomadas con GPS. Ver más Imaset Edita tus imágenes de Wordpress con este sencillo plugin. Ver más

¡Mi música es tuya!

Digo yo que...

Mis fotos de Flickr

Entradas recientes

Meta:

Respeta el copyleft

,