Estoy buscando estrategias para enfrentar la inevitable necesidad de cambiar o adaptar una clase de CSS para acomodar nuevos elementos HTML. Me encuentro en esta situación con bastante frecuencia, así que espero que otras personas compartan mi dolor y puedan asesorar aquí.Cómo lidiar con la necesidad de cambiar los nombres de las clases de CSS
Imagine que tiene una tabla de productos con el buen nombre de clase semántica products
. Esto tiene el estilo apropiado en tu hoja de estilo. Unos meses después, su jefe le pide que cree una lista de personal en el sitio, "con el mismo estilo que la lista de productos".
Esto inmediatamente plantea una pregunta importante: cómo llamar a la nueva tabla de personal. Las únicas opciones que puedo pensar son:
- Asígnele el nombre de clase
products
también. Esta es la solución más rápida pero arruina la semántica. La denominación tiene poco sentido especialmente para los futuros desarrolladores. - Cambie el nombre de la clase a algo que pueda abarcar tanto productos como listas de personal. Esto anularía la utilidad de la separación del marcado del estilo, ya que el HTML debería cambiar. Además, no puedo pensar en un solo nombre de clase no presentacional que pueda aplicarse a los productos y a una lista del personal.
- Introduzca un nuevo nombre de clase y edite el archivo CSS de modo que
.products { ... }
se convierta en.products, .staff { ... }
y.products thead th.number { font-weight: bold }
se convierte en.products thead th.number, .staff thead th.number { font-weight: bold }
, etc. Otra solución fea que solo se volverá más complicada con el paso del tiempo.
¿Cuál es la mejor medida a seguir aquí?
N.B. Estoy seguro de que este problema se resuelve fácilmente usando marcos como LESS (no lo he usado personalmente) pero esta solución me parece más un "encubrimiento" que un remedio real.
¡Ah, esa fue la cuarta opción que no pude recordar! No es una solución que me guste particularmente. Rompe los principios DRY y, nuevamente, niega los beneficios que se logran al separar el contenido y el estilo. Y sin embargo, en este momento es la solución más atractiva ... –
También es un poco más a prueba de futuro. –