Was ist der Unterschied zwischen #
und .
beim Deklarieren einer Reihe von Stilen für ein Element und welche Semantik spielt bei der Entscheidung, welche verwendet werden soll, eine Rolle?
quelle
Was ist der Unterschied zwischen #
und .
beim Deklarieren einer Reihe von Stilen für ein Element und welche Semantik spielt bei der Entscheidung, welche verwendet werden soll, eine Rolle?
#
ist ein ID-Selektor , der verwendet wird, um auf ein einzelnes bestimmtes Element mit einer eindeutigen ID abzuzielen. ist ein Klassenselektor , mit dem mehrere Elemente mit einer bestimmten Klasse als Ziel ausgewählt werden. Um es anders zu sagen:
#foo {}
formatiert das mit einem Attribut deklarierte Einzelelementid="foo"
.foo {}
Stil wird alle Elemente mit einem Attribut class="foo"
(Sie auch mehrere Klassen zugeordnet zu einem Element haben, trennen sie nur mit Leerzeichen, zum Beispiel class="foo bar"
)Im Allgemeinen verwenden Sie #, um etwas zu stylen, von dem Sie wissen, dass es nur einmal angezeigt wird, z. B. Dinge wie Layout-Divs auf hoher Ebene wie Seitenleisten, Bannerbereiche usw.
Klassen werden verwendet, wenn der Stil wiederholt wird. Wenn Sie beispielsweise eine spezielle Form der Kopfzeile für Fehlermeldungen verwenden, können Sie einen Stil erstellen, h1.error {}
der nur für gilt<h1 class="error">
Ein weiterer Aspekt, bei dem sich Selektoren unterscheiden, liegt in ihrer Spezifität - ein ID-Selektor wird als spezifischer als ein Klassen-Selektor angesehen. Dies bedeutet, dass bei Konflikten zwischen Stilen und Elementen mit dem spezifischeren Selektor weniger spezifische Selektoren überschrieben werden. Zum Beispiel gegebene <div id="sidebar" class="box">
Regeln für #sidebar
mit überschreiben widersprüchliche Regeln für.box
Weitere Informationen zu CSS-Selektoren finden Sie im Selectutorial. Sie sind unglaublich leistungsfähig. Wenn Sie einfach davon ausgehen, dass "# für DIVs verwendet wird", sollten Sie genau nachlesen, wie Sie CSS effektiver einsetzen können.
EDIT: Sieht aus wie Selectutorial haben könnte auf die große Website gegangen in den Himmel, versuchen Sie so dieses Archiv - Link statt.
Das
#
bedeutet, dass es mit demid
eines Elements übereinstimmt . Das.
bedeutet den Klassennamen:Beachten Sie, dass in einem HTML-Dokument das ID-Attribut eindeutig sein muss. Wenn Sie also mehr als ein Element haben, das einen bestimmten Stil benötigt, sollten Sie einen Klassennamen verwenden.
quelle
Der Punkt (
.
) kennzeichnet einen Klassennamen, während der Hash (#
) ein Element mit einem bestimmten ID- Attribut kennzeichnet . Die Klasse gilt für jedes Element, das mit dieser bestimmten Klasse dekoriert ist, während der # -Stil nur für das Element mit dieser bestimmten ID gilt.Klassenname:
Benanntes Element:
quelle
Es ist auch erwähnenswert, dass in der Kaskade ein id (
#
) - Selektor spezifischer ist als ein ab (.
) - Selektor. Daher überschreiben Regeln in der ID-Anweisung Regeln in der Klassenanweisung.Zum Beispiel, wenn beide der folgenden Aussagen:
werden auf dasselbe HTML-Element angewendet:
Die Regel Farbe: Blau würde die Regel Farbe: Rot überschreiben .
quelle
Ein paar kurze Erweiterungen zu dem, was bereits gesagt wurde ...
Ein
id
muss eindeutig sein, aber Sie können dieselbe ID verwenden, um verschiedene Stile spezifischer zu gestalten.Beispiel: HTML-Auszug:
Mit diesen können Sie verschiedene Stile anwenden:
Eine weitere nützliche Sache, die Sie wissen sollten: Sie können mehrere Klassen für ein Element haben, indem Sie sie durch Leerzeichen abgrenzen ...
Die Sie erlaubt , gemeinsamen Styling zu haben in
.menu
mit bestimmten Arten mit.main.menu
und.sub.menu
quelle
.class
zielt auf das folgende Element ab:#class
zielt auf das folgende Element ab:Beachten Sie, dass die ID im gesamten Dokument eindeutig sein muss, während eine beliebige Anzahl von Elementen eine Klasse gemeinsam nutzen kann.
quelle
Wie so ziemlich jeder schon gesagt hat:
Ein Punkt (
.
) gibt eine Klasse an , und ein Hash (#
) gibt eine ID an .Der grundlegende Unterschied besteht darin, dass Sie eine Klasse auf Ihrer Seite immer wieder verwenden können, während eine ID einmal verwendet werden kann. Das ist natürlich, wenn Sie sich an die WC3-Standards halten.
Eine Seite wird weiterhin gerendert, wenn Sie mehrere Elemente mit derselben ID haben. Wenn Sie jedoch versuchen, diese Elemente dynamisch zu aktualisieren, indem Sie sie mit ihrer ID aufrufen, treten Probleme auf, da sie nicht eindeutig sind.
Es ist auch nützlich zu beachten, dass ID-Eigenschaften Klasseneigenschaften ersetzen.
quelle
Das # ist ein ID-Selektor. Es werden nur Elemente mit einer übereinstimmenden ID abgeglichen. Die nächste Stilregel stimmt mit dem Element überein, das ein ID-Attribut mit dem Wert "grün" hat:
Weitere Informationen finden Sie unter http://www.w3schools.com/css/css_syntax.asp
quelle
Hier ist mein Ansatz, die Regeln zu erklären
.style
und#style
Teil einer Matrix zu sein. Wenn sie nicht in der richtigen Reihenfolge sind, können sie sich gegenseitig überschreiben oder Konflikte verursachen.Hier ist die Aufstellung.
Matrix
Wenn Sie diese beiden überschreiben möchten, können Sie
<style></style>
eine1,0,0,0.
Matrixebene verwenden, oder die Abfrage von @media überschreibt alles oben Genannte ... Ich bin mir nicht sicher, aber ich denke, der ID-Selektor#
kann nur einmal auf einer Seite verwendet werden.quelle