2017-02-13 4 views

Antwort

-1

Nicht, wenn Sie alles wollen. Sie können alles mit #load * bekommen.

1

wenn sie immer direkte Kinder von #load sein werden, könnte man

#load > * { 
    font-size: 80%; 
    margin: 2%; 
} 

tun, aber denken Sie daran, dass diese Regeln für ein unmittelbares Kind #load

gelten sonst könnten Sie auch entscheiden, alle, eine Klasse, wie zum Beispiel load-child

#load .load-child { 
    font-size: 80%; 
    margin: 2%; 
} 
0

In CSS zu geben, bestimmte Eigenschaften erben t Die Eigenschaften der Kapselung von HTML-Elementen (sofern nicht manuell überschrieben). Dies bedeutet also, dass man konnte einfach tun:

#load { 
 
    font-size: 40px; 
 
    margin: 2%; 
 
}
<div id=load> 
 
    <p>hello from p</p> 
 
    <h3>hello form h3</h3> 
 
</div>

Wie Sie sehen können herefont-size standardmäßig ist eine erbliche Eigenschaft. (Diese Referenz ist CSS2 - Ich kann die CSS3 man überall finden?)

Dies bedeutet also, der requried #load CSS jetzt seine Kinder h und p Elemente kapselt.

Hinweis Ich gebe nur 40px für die Sichtbarkeit in das Beispiel.

https://www.w3.org/wiki/Inheritance_and_cascade ist ein gutes schnelles Lesen der Elementvererbung, aber zusammenzufassen;

Durch die Vererbung können Eigenschaften auf übergeordneten Elementen deklariert werden, und diese Eigenschaften können auf alle untergeordneten Elemente reduziert werden. Nur einige Eigenschaften werden standardmäßig vererbt, aber die Vererbung kann mit dem Schlüsselwort erben erzwungen werden.

2

Sie können immer eine Klasse auf die Elemente hinzufügen:

<h1 class="myclass"></h1> 
<h2 class="myclass"></h2> 
etc... 

And then select them all with that class: 

#load .myclass { 
    font-size: 80%; 
    margin:2%; 
} 



Wenn Sie SASS (oder jede CSS-Präprozessor), dann würde es in etwa so aussehen:

#load { 
    p, h1, h2, h3, h4, h5, h6 { 
    font-size: 80%; 
    margin: 2%; 
    } 
} 

SASS muss drin sein angehalten auf dem Server, der dann den Code zu reinem CSS kompiliert. Das Ergebnis wird dasselbe sein, das Sie in der Frage gepostet haben.



Auch ich bin, diese als Option,
gibt es die passende CSS-Selektor:

#load :-moz-any(p, h1, h2, h3, h4, h5, h6) { /* firefox 4+*/ 
    font-size: 80%; 
    margin:2%; 
} 

#load :-webkit-any(p, h1, h2, h3, h4, h5, h6) { /* chrome 15+, safari 5+, opera 15+ */ 
    font-size: 80%; 
    margin:2%; 
} 

Es gibt keine Unterstützung für die matching selector von IE/Edge

+0

Der SASS-Code funktioniert nicht für mich. Brauche ich eine CSS-Datei oder einen Hass? –

+0

@DamianToczek Es ist ein Präprozessor, Sie müssen es auf dem Server installieren. Der Code wird dann zu reinem CSS kompiliert. Wenn es fertig ist, wird das Ergebnis der gleiche Code sein, den Sie in der Frage geschrieben haben. - Wenn Sie es nicht installieren können, ist es das Beste, eine Klasse zu allen Elementen hinzuzufügen, denen Sie hinzufügen möchten. - Der passende Selektor wird in IE/Edge nicht unterstützt. - Ich habe diese Informationen in der Antwort hinzugefügt. – pol

+0

Verwenden Sie eine Klasse für diese wird mehr Buchstaben als diese CSS :) 75 Header. –

Verwandte Themen