CMS setzt ID's in klassen - wie kann ich die umgehen im CSS
cruisi
- css
0 cruisi0 Willi0 cruisi
0 Felix Riesterer
0 Felix Riesterer
hallo,
ich habe ein problem mit CSS und einem CMS.
ich erstelle nur die templates und eine weitere firma baut dahinter dann die logik - das portal - und zwar mit dem cms (glaube ich) ContentXXL.
und dieses ContentXXL generiert bei einigen DIV's noch eigenmächtig
nicht vorhersehbare ID's dazu.
meine DIV-hierarchie an einem beispiel sieht z.b. so aus:
html > body > div .outer > div .teaserdiv > div .teaser_1 > h2
ContentXXL macht daraus z.B. eigenmächtig:
html > body > div .outer > div #ctl00_teaserdiv .teaserdiv > div .teaser_1 > h2
und da meine css-klasse hier z.B. so heißt ".teaserdiv" und nicht
"#ctl00_teaserdiv .teaserdiv" wird der bereich im IE6 völlig ohne formatierung dargestellt, weil die zuordnung fehlt. alles folgende ebenso.
aber nur im IE6. die übrigen gängigen browser umgehen das problem.
nun suche ich nach einer lösung für meine css-datei, damit diese "willkürlich" gewählten ID's von ContentXXL umgangen werden können. geht das wohl irgendwie? ich habe leider nicht die geringste idee für einen ansatz.
vielen dank schon einmal im voraus,
cruisi
nachtrag:
so sieht dann das div z.b. aus: <div id="ctl00_teaserdiv" class="teaserdiv">
und ich spreche es ja nur über die klasse an. eigentlich dürfte doch die ID gar nicht stören, oder? zumal ich nicht eine einzige ID in meiner css-datei habe.
Hallo,
nachtrag:
so sieht dann das div z.b. aus: <div id="ctl00_teaserdiv" class="teaserdiv">
und ich spreche es ja nur über die klasse an. eigentlich dürfte doch die ID gar nicht stören, oder? zumal ich nicht eine einzige ID in meiner css-datei habe.
Genau das wollte ich auch gerade schreiben.
Aber vielleicht wird durch irgendwelche inline-/Styles im HTML-Dokument die ID beeinflusst? IDs haben ja eine viel höhere Wertigkeit als Klassen.
Grüße,
Willi
hallo willi,
hmm, könntest du mir ein beispiel nennen, wie so eine beeinflussung theoretisch aussehen könnte? denn ich weiß gar nicht, wonach ich genau suchen muss.
viele grüße,
cruisi
Aber vielleicht wird durch irgendwelche inline-/Styles im HTML-Dokument die ID beeinflusst? IDs haben ja eine viel höhere Wertigkeit als Klassen.
Grüße,
Willi
Lieber cruisi,
zumal ich nicht eine einzige ID in meiner css-datei habe.
gibt es denn alle Deine Elemente in mehrfachen Varianten auf Deiner Seite (also mehrere Teaser-Divs und so)? Sonst wäre die Verwendung von IDs vielleicht sinnvoller (z.B. <div id="seitensuche"> oder <div id="footer">)...
Liebe Grüße aus Ellwangen,
Felix Riesterer.
hallo und vielen dank für eure antworten,
das mit den leerzeichen hatte ich nur hier so schnell mal hingeschrieben, die kommen so im quellcode nicht vor.
dort heißt meine klasse z.b. nur:
.teaserdiv {
margin: 0 0 0 10px;
left: 0;
width: 184px;
float: left;
}
klassen habe ich durchgängig verwendet, weil ich von der weiterverarbeitenden firma aufgrund des CMS darum gebeten wurde, weil dies eben die ID's verteilt, damit man nicht durcheinander kommt. daher solte ich nur klassen verwenden.
aber ich habe den verdacht, dass es gar nicht daran liegt. denn es passiert nur auf einer speziellen seite. auf anderen seiten, wo auch ID's zugefügt werden, klappt alles.
und wenn ich den kompletten quellcode der cms basierten seite kopiere und in meine lokale statische seite kopiere, wird auch alles korrekt angezeigt im IE6. das spricht doch eigentlich gegen die vermutung, dass es daran liegt, oder? habe ich gerade erst getestet.
viele grüße,
cruisi
Hallo.
klassen habe ich durchgängig verwendet, weil ich von der weiterverarbeitenden firma aufgrund des CMS darum gebeten wurde, weil dies eben die ID's verteilt, damit man nicht durcheinander kommt.
Mit "man" ist hier vor allem der Browser gemeint. Deshalb sind mehrfache ID in einem einzigen Element nicht zulässig.
aber ich habe den verdacht, dass es gar nicht daran liegt.
Damit liegst du richtig.
MfG, at
Lieber cruisi,
meine DIV-hierarchie an einem beispiel sieht z.b. so aus:
html > body > div .outer > div .teaserdiv > div .teaser_1 > h2
meinst Du nicht eher das hier?
html > body > div.outer > div.teaserdiv > div.teaser_1 > h2
Wenn Du das Leerzeichen zwischen "div" und dem Klassennamen entfernst, dann ändert das die Bedeutung.
div .teaserdiv will meinen "Ein Kindelement eines <div> mit der Klasse 'teaserdiv'", z.B.
<div><p class="teaserdiv">...</p></div>
Was Du vermutlich willst sieht aber so aus:
<div class="teaserdiv"><p>...</p></div>
Dazu braucht es eben die Schreibweise ohne Leerzeichen.
ContentXXL macht daraus z.B. eigenmächtig:
html > body > div .outer > div #ctl00_teaserdiv .teaserdiv > div .teaser_1 > h2
Das sollte eigentlich nicht passieren, wenn zwischen Deinen "div"s und den dazugehörigen Klassennamen kein Leerzeichen steht. Dann sollte daraus nämlich das hier werden:
div#ctl00_teaserdiv.teaserdiv { }
etc.
Damit stimmt dann die Schreibweise wieder bezüglich Nachfahrenselektor und so.
Liebe Grüße aus Ellwangen,
Felix Riesterer.
Hallo Felix,
meine DIV-hierarchie an einem beispiel sieht z.b. so aus:
html > body > div .outer > div .teaserdiv > div .teaser_1 > h2meinst Du nicht eher das hier?
html > body > div.outer > div.teaserdiv > div.teaser_1 > h2
Wenn Du das Leerzeichen zwischen "div" und dem Klassennamen entfernst, dann ändert das die Bedeutung.
div .teaserdiv will meinen "Ein Kindelement eines <div> mit der Klasse 'teaserdiv'"
Ich denke mal, er hat das aus der Web-Developer-Toolbar kopiert - dort wird nämlich auch vor jede Klasse ein Leerzeichen gesetzt, vermutlich damit es übersichtlicher wird.
Grüße,
Willi
hallo und auch dir danke für die antwort,
ich habe gerade schon felix geantwortet. wirst du darüber dann auch benachrichtigt? das weiß ich hier immer nicht, daher der kurze hinweis an dieser stelle auf meine "andere" antwort.
viele grüße,
cruisi
Hallo.
ich habe gerade schon felix geantwortet. wirst du darüber dann auch benachrichtigt?
In einem Forum wird jeder benachrichtigt, der die Antwort auswählt und liest.
MfG, at