CSS: Trabajando con espacios en blanco

27 de octubre de 2009 | Etiquetas: , | Categoría: CSS

Cuando trabajamos con espacios en blanco sobre html lo normal es que nuestro navegador los elimine, interpretando sólamente aquellos que aparecen entre palabras. Para mí eso es perfecto, pero habrá quien añore el preformato tipo procesador de texto, para vosotros aquí tenéis una solución con css.

La propiedad white-space te permite manejar los espacios en blanco a tu antojo ¿Cómo? Simple, con un mismo ejemplo os demuestro su funcionamiento, el código que voy a usar es el mismo, cambiaré solo la propiedad en css.

<p>Lorem ipsum dolor sit        amet, consectetur adipiscing elit.
Aenean sit amet   mauris et sapien sollicitudin semper sit     amet quis erat. Quisque feugiat lorem ut ipsum
varius a faucibus sapien aliquam.</p>

white-space: normal
Es el valor por defecto, NO muestra los espacios en blanco añadidos ni los saltos de línea, aunque crea saltos de línea automáticamente para que el texto no se salga de su contenedor.

css normal

white-space: pre
Este valor SI muestra los espacios en blanco y los saltos de línea. Lo malo, que si no añadimos saltos de línea el texto continuará en la misma línea, llegando a salirse del contenedor.

css pre-wrap

white-space: pre-wrap
Aquí SI nos muestra los espacios en blanco y los saltos de línea, y SI ajustas las líneas automáticamente para que no se salga el texto del contenedor.

css pre

Puede no parecer algo muy importante, pero es una propiedad no muy habitual, por lo que o no se aprovecha o se desconoce directamente. Siempre es bueno conocer todos nuestros recursos :)

Twittea esto Guardalo en Delicious Compartelo en Facebook

CSS3: Un vistazo a los nuevos selectores

20 de octubre de 2009 | Etiquetas: , | Categoría: CSS

En cuanto nos descuidemos tenemos encima la nueva versión de CSS así que ya es hora de que empecemos a ponernos las pilas con el CSS3. Con esta nueva versión de las hojas de estilo aparecen muchos más selectores que los que teníamos hasta CSS2 y la verdad, ya nos iban haciendo falta. Por eso vamos a ir acostumbrándonos a ellos poco a poco ¡Empecemos!

Selectores generales en CSS3

* selecciona todo
E selecciona un elemento (E)
E.warning selecciona un elemento (E) con la clase warning
E#home selecciona un elemento (E) con la id home
E F selecciona el elemento F dentro del elemento E

Hasta aquí ya los conocíamos, ahora vienen los nuevos:

E:not(s) selecciona los elementos (E) que no contengan s
E > F selecciona los elementos hijos (F) del primer elemento (E)
E + F selecciona los elementos E y F hermanos, que están dentro de un mismo bloque
E ~ F selecciona los elementos F que aparezcan despues de E

p:not(".personal")
//Ejemplo: selecciona todos los párrafos que no tengan la clase personal

Selectores de atributos

Los podemos diferenciar porque van entre corchetes, estos ya se han convertido en mis favoritos.

E[foo] elemento con el atributo foo
E[foo="bar"] elemento con el atributo foo y el valor idéntico a bar
E[foo~="bar"] elemento con el atributo foo y contiene una lista de valores separados por espacios en blanco entre los cuales uno es idéntico a bar
E[foo^="bar"] elemento con el atributo foo y que su valor comience por bar
E[foo$="bar"] elemento con el atributo foo y que su valor termine por bar
E[foo*="bar"] elemento con el atributo foo y que su valor contenga la cadena bar
E[hfoo|="en"] elemento con el atributo foo y contiene una lista de valores separados por guiones donde el primer valor comience por en

a[href="http://blog.nnatali.com"]
//Ejemplo: selecciona todos los enlaces que vayan a esa url

Pseudo-classes

Separadas por dos puntos (:) del elemento, ya conociamos unas cuantas (E:link, E:visited, E:active, E:hover, E:focus) y ahora nos amplian la lista bastante más.

E:root
E:nth-child(n)
E:nth-last-child(n)
E:nth-of-type(n)
E:nth-last-of-type(n)
E:first-child
E:last-child
E:first-of-type
E:last-of-type
E:only-child
E:only-of-type
E:empty elementos E vacíos, que no tengan hijos
E:target elementos E que enlacen a un url
E:lang(fr) elementos en el idioma especificado
E:enabled elementos activados (formularios)
E:disabled elementos desactivados (formularios)
E:checked solo validos para radiobutton o checkbox (formularios)

html:lang(en)
//Ejemplo: selecciono todos los elementos de idioma inglés

Pseudo-elementos

Hay veces que aplicar estilo a un elemento se nos queda corto, para eso tenemos los pseudo-elementos.

E::first-line selecciona la primera linea del elemento
E::first-letter selecciona la primera letra del elemento
E::before y E::after ya veníamos utilizándolos desde CSS2 para generar contenido adicional junto a la propiedad content.

p::first-letter
//Ejemplo: selecciono la primera letra de los párrafos

Sí, ya sé, me faltan unas cuantas pseudo-clases por analizar, pero no pretendáis que haga yo sola todo el trabajo! A ver quién se anima a contarnos lo que hacen y podemos completar nuestra lista al 100% :D

Podéis encontrar una buena ayuda en: W3C: CSS3 Selectors

Twittea esto Guardalo en Delicious Compartelo en Facebook

CSS: Posicionar elementos con z-index

15 de octubre de 2009 | Etiquetas: | Categoría: CSS

zindex

Muchas veces queremos posicionar un elemento delante de otro, ya sea por estética o por optimizar, y no encontramos la forma de hacerlo o tiramos por el camino más fácil.

Por ejemplo, la imagen que he puesto en la cabecera del artículo, más de una vez me he encontrado con eso, una imagen. El hecho de no saber cómo superponer un bloque con otro hace que tengamos que añadir un peso extra a nuestra web.

Por eso, para quienes no sepáis como hacerlo (quienes lo sepáis ya, también podéis leer eh) os lo explico:

Con la propiedad z-index podemos calcular el posicionamiento tridimensional de un elemento, para ello lo podemos controlar añadiéndole un valor numérico a esta, ya sea positivo o negativo. Aquí debemos tener en cuenta que el elemento con el número mayor aparecerá por encima del resto.

#elemento1 { z-index:1; }
#elemento2 { z-index:0; }

Así el elemento2 aparecerá por debajo del elemento1, este sería en el ejemplo el cuadro azul.

Pero para que podamos superponer elementos debemos saber que la propiedad z-index sólo funcionará si está acompañada de las propiedades position o float, ya que son las que consiguen situar elementos de forma que se solapen en alguna parte.

Ahora sí que podemos posicionar el elemento1 por encima del elemento2:

#elemento1{
	float:left;
	margin-top:-70px;
	margin-left:30px;
	z-index:1;
}

Si aún así no os ha quedado del todo claro podéis ver el ejemplo completo, aunque cómo mejor se aprende es practicando :D

Twittea esto Guardalo en Delicious Compartelo en Facebook

Cheat Sheet, descúbrelo de un vistazo

29 de septiembre de 2009 | Etiquetas: , , , | Categoría: Recursos
cheat sheets

Me encanta las Cheat Sheet, las referencias rápidas, las hojas de trucos o como queráis llamarlas. Yo soy de las que se acuerdan del argumento de la película pero no recuerda el título, por lo que muchas veces me acuerdo del funcionamiento de funciones, propiedades, etc, pero no recuerdo el nombre de las mismas.

Por eso tengo siempre a mano unas cuantas hojas de referencia rápida, cuando te bloquees, solo tienes que dar un vistazo a la hoja apropiada y.. ¡Tachán! Habrá vuelto a tu memoria ;)

Algunas de las que tengo en mis favoritos son:

- Guía de Referencia CSS 2.1 (w3c.es)
- HTML 5 Visual Cheat Sheet (woork.blogspot.com)
- Emezeta Card PHP Cheat Sheet (emezeta.com)
- JQuery 1.3 Visual Cheat Sheet (woork.blogspot.com)
- Mootools 1.2 Cheat Sheet (mediavrog.net)
- WordPress Cheat Sheet (Español) (lordmax.org)

¿A vosotros os pasa también esto o yo soy un espécimen defectuoso? ¿Me he dejado alguna interesante?

Twittea esto Guardalo en Delicious Compartelo en Facebook

6 pages