Creo que sí que es una práctica lícita, pero
no me parece recomendable en absoluto.

Como tú explicas, lo ideal sería organizarlo todo
estructuralmente y usar el menor número de clases
e ids posible.

Siguiendo tu ejemplo de titular, no necesitas crear
una clase inmediatamente. En su lugar, puedes redefinir
un elemento html:

h3 {
    font: 120%/150% verdana, arial, sans-serif;
    color: #a36;
}

Luego, si necesitas otro tipo de titular especial, podrías
crear una clase:

.ultimaHora {
    color: #fff;
    background: #a36;
}

Esta clase aplicada a un h3 tendrá la fuente definida como
en el primer ejemplo.

CSS son hojas de estilo en cascada, lo cual se supone que quiere
decir que ante definiciones de estilo contradictorias se sigue un
orden :-P

Los más importantes son:

Sort by specificity of selector: more specific selectors will override more general ones.

Por lo que no es buena idea usar selectores tipo #noticia.titular si sólo
con .titular obtienes el mismo resultado. Si más adelante tienes que
alterar #noticia.titular con otro estilo, vas a tener que hacer malabarismos
porque tal vez sea demasiado específico. Las reglas de estilo, cuanto más
generales sean, más flexibles resultan.

Sort by order specified: if two rules have the same weight, origin and specificity, the latter specified wins. Rules in imported style sheets are considered to be before any rules in the style sheet itself.

Es decir, mejor si empiezas por definir reglas generales y
continuas hacia lo específico, porque en caso de conflicto o
error, la última gana.

Para terminar esta chapa que os estoy dando, creo que
los cuatro capítulos más importantes a entender de las
especificaciones (y que, relativamente, son bastante legibles) son:

http://www.w3.org/TR/2004/CR-CSS21-20040225/selector.html
http://www.w3.org/TR/2004/CR-CSS21-20040225/cascade.html
http://www.w3.org/TR/2004/CR-CSS21-20040225/box.html
http://www.w3.org/TR/2004/CR-CSS21-20040225/visuren.html

Otro recurso es el mejor tutorial de selectores que he leído hasta la fecha:

http://css.maxdesign.com.au/selectutorial/

Una herramienta increíble es el inspector de Mozilla. Probadla, en serio.

Y lo mejor de todo es ponerse a destripar páginas para "ver cómo lo han
hecho"...

¡Las dos de la mañana! Me cago en...



Joseba Alonso wrote:
Igualmente se podría llamar a ambos estilos si los dos son Class. Por
ejemplo:
    

  
.marco  { ... }
.fuente { ... }
    

  
<div class="marco fuente">
    

Ya habia visto esto antes, ¿Pero seguro que es una practica "licita"? y si
lo es ¿es recomendable?

Me refiero a lo siguiente: Muchas veces, haciendo la hoja de estilos de
alguna pagina, me he encontrado con la "necesidad" de crear herencia entre
clases, es decir, tener una clase .a que tome todas las propiedades de .b y
añada/modifique alguna más. Quizas es una pedazo de deformacion profesional
probocada por el uso de estrategias OOP en otros lenguajes, pero lo habria
encontrado terriblemente util (como el uso de variables para nombrar
colores, pero eso es otra historia). He visto algunas veces esta solucion
que planteas de un elemento perteneciente a 2 clases. Pero el metodo puede
ser un poco ambiguo, si las 2 clases modifican la misma propiedad, ¿cual de
las 2 prevalece?.

El caso de arriba es perfectamente logico si tus clases CSS son del tipo:
'.marcoRojo', '.fuenteAzul' o '.negrita'. Pero esto desde luego no me parece
una buena practica a la hora de componer las CSS, tiene muchos
inconvenientes. Normalmente es más productivo organizar las cosas
estructuralmente. Algo asi como '#noticia .titular', '#menu .botonActivo' o
'#cuerpo>.texto>.nota'. Creo que la mayoria estareis de acuerdo conmigo en
que esta es mejor practica. Pero desde luego si tienes una estructura de
este tipo, el tener un elemento asociado a multiples clases deja de tener
ningun sentido. Pero sin embargo, si de repente hace falta crear dos clases
de titulares dentro de las noticias muchas veces me veo obligado a duplicar
el selector '#noticia .titular' y derivar un '#noticia .titular2' que casi
copia al anterior. Mala solucion, ¿Como atajariais este tipo de problemas?

un saludo

Joseba Alonso
www.sidedev.net
www.5dms.com



_______________________________________________
Ovillo mailing list
[EMAIL PROTECTED]
http://ovillo.org/mailman/listinfo/ovillo_ovillo.org

  
_______________________________________________
Ovillo mailing list
[EMAIL PROTECTED]
http://ovillo.org/mailman/listinfo/ovillo_ovillo.org

Responder a