¿Qué puedes hacer cuando te aburres en casa pero no te apetece salir de fiesta? Pues te subes en coche al alto del León a hacer fotos.
Fruto de dos tardes de drogas y alcohol de aburrimiento. El set completo en flickr
Si estáis cerca de Madrid y queréis verlas en vivo y en directo, las fotos estan expuestas en el pub Cimmeria, en la Calle la Palma, 11.
Lo bueno de trabajar con modelos así es que cuando terminas el trabajo te los comes
Que levanten la mano todos los que han querido meter una caja en su web con un fondo translucido y no han podido por culpa de Internet Explorer.
Hasta su versión 7, Internet Explorer no soporta el uso de PNGs transparentes de modo nativo. Sin embargo es posible usar un PNG transparente en nuestras hojas de estilos usando un filtro propietario. Nos interesa que dicho filtro solo lo interprete Internet Explorer 6 e inferiores, por lo que tendremos que utilizar comentarios condicionales o algún otro método para filtrar CSS. (Yo personalmente uso el Tan hack)
.capa-con-png {
background:url('../img/transparente.png');
}
* html .capa-con-png {
background-image: none; /* Sin esto no veríamos la imagen cargada con el filtro */
filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='img/transparente.png', sizingMethod='scale');
}
Es más que posible que en nuestro sitio la estructura de carpetas sea similar a la de la imagen, y que en nuestra hoja de estilos estemos poniendo las rutas relativas como en el ejemplo de arriba. Es importante saber que en el filtro las rutas no se tienen en cuenta desde el CSS, sino desde la página en la que estemos. Para ahorrarnos problemas es mejor usar rutas absolutas (siempre que tengamos posibilidad).
Las imagenes cargadas con el filtro no aceptan las propiedades background-position y background-repeat. Siempre se posicionarán en la esquina superior izquierda y se repetirán una única vez.
Dentro del filtro, la propiedad sizingMethod acepta dos valores:
Este artículo está basado en el borrador público del estándar HTML5. La información aquí escrita podría no ser válida cuando se apruebe el estandar definitivo.
HTML5 va a suponer un paso importante hacia la web semántica. Las nuevas etiquetas para el marcado permiten describir mejor el contenido de nuestros documentos, lo que mejorará el tratamiento que dan a la información los navegadores y los motores de búsqueda.
Hasta ahora para definir las distintas partes de un documento era necesario el uso de <div>s con el atributo class para organizar el contenido. Aunque el uso de clases es útil para nosotros como desarrolladores, los UAs poco pueden hacer para interpretar el significado semántico de las mismas. Si nosotros escribimos <div class="header"> o <div class="cabecera"> sabemos que se corresponde a la cabecera de un bloque, pero un navegador o un motor de búsqueda no sabría diferenciar ese bloque de cualquier otro.
Con las nuevas etiquetas <section>, <header> y <footer> podremos definir con exactitud la función que desempeña cada bloque de nuestro documento.
Una de las cosas que mas me gustan del nuevo HTML5 son las extensiones de los objetos HTMLDocument y HTMLElement. Si bien son cosas que podemos hacer actualmente con librerías como prototype o jQuery, no viene mal que se puedan realizar de manera nativa.
El nuevo HTML5 define el metodo getElementsByClassName() para seleccionar elementos a través de su clase.
innerHTML pasa a ser estandar, y a nivel de documento (antes solo estaba implementado en HTMLElement). De esta forma podemos serializar todo el documento.
activeElement devuelve el elemento que tiene foco actualmente. Si ningún elemento tiene foco devuelve el body de la página.
hasFocus determina si el documento tiene foco.
getSelection() devuelve un objeto que representa la selección o selecciones actuales del documento. Si por ejemplo el usuario selecciona el siguiente bloque de texto en su navegador
document.getSelection().toString() devolverá "est qui dolorem ipsum quia dolor sit amet"
Tambien implementa getElementsByClassName(). Combinado con getElementById() podemos restringir el ámbito de la búsqueda. Así podremos escribir sentencias como:
var articulos = document.getElementById('contenido').getElementsByClassName('articulo');
Al igual que en HTMLDocument, innerHTML pasa a ser estandar.
classList devuelve un objeto con el que poder manipular las clases de un elemento. Esto es muy útil cuando tenemos un elemento con más de una clase.
clases = document.getElementById('contenido').classList;
clases.has('clase'); // Vemos si el elemento tiene una clase determinada
clases.add('clase'); // Añade una clase al elemento
clases.del('clase'); // Elimina una clase del elemento
clases.toggle('clase'); // Si el elemento tiene la clase, la elimina. Si no la tiene la añade
Para los elementos a, area y link se añade un objeto llamado relList con los mismos métodos para manejar el atributo rel
Lo malo: que las podremos usar cuando Microsoft las implemente en Internet Explorer 17 o así.