2016-06-26 29 views
1

Ich versuche, meine riesigen Medienabfragen zu bereinigen, und ich habe jede Änderung in Elementwerten entfernt, die den Standardelementwerten entsprechen, so dass dies stattdessen angezeigt wird.Doppelte Werte für Elemente in verschiedenen Medienabfragen

Meine Frage ist, welche Möglichkeiten ich habe, wenn die doppelten Werte in einzelnen Medienabfragen gespeichert werden? Hier

ein Beispiel:

@media only screen and (min-width: 480px) and (max-width: 767px) { 
.fa.fa-check 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 
.fa.fa-shopping-cart 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 
.fa.fa-user 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 

@media only screen and (max-width: 479px) { 
.fa.fa-check 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 
.fa.fa-shopping-cart 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 
.fa.fa-user 
{ 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 

Ich habe viele Veränderungen in Elementwerte, die nicht Duplikate innerhalb der Medien-Anfragen als auch, also kann ich nicht sie alle zusammen kombinieren. Gibt es noch andere Möglichkeiten?

Antwort

1

Es ist schwierig, mit Einzelheiten zu helfen, ohne Ihre genaue Codebasis zu sehen (oder ein Beispiel aus der realen Welt). Mit dem obigen Beispiel würde ich empfehlen, für jedes dieser Elemente eine Basisklasse zu haben, damit Sie diese Stile nicht immer wieder wiederholen.

Edit: Als Beispiel für die Verwendung einer Basisklasse können Sie für den obigen Code die folgende Klasse erstellen und sie jedem der Elemente hinzufügen, die diese Styling-Eigenschaften verwenden sollen (also alle Icon-Elemente):

.standard-icon { 
    font-size: 3em; 
    border-radius: 100px; 
    height: 100px; 
    line-height: 100px; 
    width: 100px; 
} 

Dies würde einen guten Teil doppelten Codes eliminieren und ein modulares Site-Design erstellen.

Soweit Medienabfragen/doppelte Werte betreffen, hier ist, wie ich reagierende Elemente auf Websites, mit denen ich arbeite, behandeln. Es gibt drei primäre Gerätegrößen, die ich in Betracht ziehe: desktop, tablet und mobile. Also, wenn ich ein Symbol bin zu schaffen, zum Beispiel mit Standard-Styling über zwei oder mehr Gerätegrößen, werde ich wie folgt vorgehen:

/* Default styling */ 
.icon-example { 
    width: 40px; 
    height: 40px; 
    margin: 40px 0; /* Style which spans two or more queries */ 
    color: white; 
    background: black; 
} 

@media @mobile-grid { 
    margin: 30px 0; /* Overriding this style only on mobile */ 
} 

nun für jede Medien-Abfrage einen margin Wert erkläre Ich muß nicht , überschreibe es einfach für den, der anders sein wird. Ich würde auch empfehlen, einen CSS-Präprozessor wie SASS oder LESS zu betrachten und zu verwenden. Sie sind überraschend einfach zu verwenden und helfen, Ihren Code so DRY wie möglich zu halten. Viel Glück!

+0

Ich werde in die CSS-Präprozessoren schauen! Ich habe mit einer Reihe von Neudefinitionswarnungen gekämpft, weil ich die Stile wiederhole, und deshalb versuche ich, meine Medienanfragen zu bereinigen. Da dies nicht meine stärkste Farbe ist, wollen Sie mir erklären, wie ich eine Basisklasse für jedes dieser Elemente erstellen würde? Ich habe versucht, so wenig wie möglich zu wiederholen, aber wenn ich die Elementwerte nicht für jede Medienabfrage deklariere, werden automatisch die Standardelementwerte erkannt und sowohl im obigen Beispiel als auch in vielen anderen Fällen der Standardwert Elementwerte sind unterschiedlich. –

+0

Sicher, ich habe meiner ursprünglichen Antwort ein Beispiel für eine Basisklasse hinzugefügt! Medienabfragen sind ein wenig schwierig. Versuchen Sie, sie so weit wie möglich zu minimieren, und versuchen Sie, Abfragen nicht zu überlappen. Lassen Sie mich wissen, wenn Sie konkretere Beispiele haben, mit denen Sie Hilfe benötigen. –

+0

Okay, würde es in etwa so aussehen (.fa.fa-check {.standard-icon}) oder bin ich gerade von Track unterwegs? –