Frage zur Syntax in CSS

milesdavis

New member
Hey Leute,
ich habe in D3 folgendes definiert:

Code:
var tooltip = d3.select("body")
	.append("div")
	.attr("class", "tooltip")..................

Nun habe ich in der CSS-Sektion zum Gestalten des Tooltips folgende Notation:

HTML:
div.tooltip {   
 .......         
}

Meine Frage:

Warum funktioniert der Spass nicht, wenn ich im CSS-Teil "div." weglasse, quasi so:

HTML:
tooltip {   
 .......         
}

?

Vielen lieben Dank!
Gruss
 
Hey, danke dir!
Dazu hätte ich folgende Frage:
Ich habe ebenfalls Knoten definiert:

Code:
var node = svg.selectAll(".node")
              .data(nodes)
            .enter().append("g")
              .attr("class", "node")
              .call(force.drag);

node
  .append("circle")

Diese aber werden im CSS-Teil folgendermassen gestaltet:

HTML:
.node circle {
  ....

Nun die Frage: "class" ist ja in diesem Fall "node". Und das Element ist das Gruppenelement "g".
Es geht also auch:
HTML:
g.node {
 ...
}

Gibt es da irgendeinen Grund, warum die erste schreibweise ".node circle" auch funktioniert? Kannst du mir diese Schreibweise vielleicht kurz erläutern?
 
Zuletzt bearbeitet:
CSS Selectors Reference

Gibt es da irgendeinen Grund, warum die erste schreibweise ".node circle" auch funktioniert? Kannst du mir diese Schreibweise vielleicht kurz erläutern?
mit dem 1. selektierst du circle-elemente die innerhalb von elementen mit class node sind
mit dem 2. elemente mit class node

da css-eigenschaften an die kinder vererbt werden, kann das auch funktionieren, solange du das nicht überschreibst
https://wiki.selfhtml.org/wiki/CSS/Kaskade
auch wichtig beim überschreiben ist die spezifität
https://wiki.selfhtml.org/wiki/CSS/Kaskade#Spezifit.C3.A4t_der_Regels.C3.A4tze

was du aber mit dem 2. selektor auch erwischschst sind alle anderen elemente von dem element mit klasse node abwärts, also nicht nur die circle-elemente
 
Zurück
Oben