Ich weiß, dass diese Frage alt ist, aber hoffentlich ist das, was Sie gesucht haben (da es keine Antwort gab). Und ich weiß auch nicht, ob das Hinzufügen einer Spezifitätsklasse zu deinem CSS deine Anforderung, CSS nicht zu wiederholen, gebrochen hat.
Sie können erreichen, was Sie tun möchten, indem Sie die Definition Ihrer @media
Abfrage ändern. Anstatt zu sagen, dass etwas passieren soll, wenn der Bildschirm kleiner als ein Wert wird, halten Sie Ihren kleinen Bildschirm CSS OUT der Medienabfrage und lassen Sie Ihre Medienabfragen für größere Bildschirme eingerichtet werden.
Dann müssen Sie nur die Reihenfolge ändern, dass Sie das CSS aufrufen und Spezifität zu den Stilen hinzufügen, wo Sie die Klasse like-small
aufrufen möchten.
HTML:
<div class="wrapper like-small">
<div class="a"></div>
<div class="b"></div>
</div>
<div class="wrapper">
<div class="a"></div>
<div class="b"></div>
</div>
CSS:
.wrapper.like-small .a,
.wrapper .a {
height:200px;
width:200px;
background:purple;
}
.wrapper.like-small .b,
.wrapper .b {
height:200px;
width:200px;
background:blue;
}
@media all and (min-width: 400px), (min-height: 300px) {
.wrapper .a {
height:100px;
width:100px;
background:yellow;
}
.wrapper .b {
height:100px;
width:100px;
background:red;
}
}
Und die Geige: http://jsfiddle.net/disinfor/70n37hhj/
Hoffentlich ist das, was Sie waren nach (über ein Jahr und einen halben Tag :)
Vielleicht mit [* weniger *] (http://lesscss.org). –
@JaredFarrish: Auch mit weniger, Sass oder Stylus wird das gerenderte CSS dupliziert. – Naor
Interessante Frage, ist es nur für den Debug-Zweck? – zessx