Si no es necesaria la compatibilidad con IE7-8, puede utilizar el :not()
CSS selector.
Pero si necesita soportar IE7 +, que aún puede ser el caso, hay un pequeño truco que puede usar y que generalmente lo lleva bastante lejos. Un hecho menos conocido es que el selector de psuedo :first-child
en realidad funciona en IE7 + (no en :last-child
) como en some other css selectors y esto hace que sea posible agregar márgenes verticales en un diseño de flotación horizontal.
Imagínese esto html:
<ul>
<li>Item #1</li>
<li>Item #2</li>
<li>Item #3</li>
<li>Item #4</li>
</ul>
Y esto como un poco de CSS:
/* General reset */
ul, li { list-type: none; margin: 0; padding: 0; }
/* Make horizontal */
ul > li { float: left; }
Así que ahora todos los elementos de la lista son horizontalmente uno junto al otro, y ahora queremos añadir un margen en el medio todos los artículos, pero no en el lado derecho o izquierdo, podemos hacer esto en CSS:
/* General reset */
ul, li { list-type: none; margin: 0; padding: 0; }
/* Make horizontal */
ul > li { float: left; margin-left: 10px; }
ul > li:first-child { margin-left: 0; }
esto suele cubrir s El 95% de los casos en los que deseo algo único, luego el resto de 'forgotten' selectors cover another few percent, después de eso debe agregar algunas clases que generalmente no son un cuello de botella de todos modos en el back-end de la página.
Creo que la solución más común es aplicar estilos a todo, entonces eliminar los no deseados mediante la selección de la primera y la última en hacerlo. – kinakuta
Use el selector ': not': http://jsfiddle.net/FGfmj/ –