Mehrere Klassen funktionieren nicht?
God
- css
Hi,
folgendes habe ich im Stylesheet:
.stfont {
background-color: transparent;
color: black;
font-weight: normal;
font-size: 11px;
font-family: Verdana, Tahoma, sans-serif;
text-decoration: none;
}
.stbold {
font-weight: bold;
}
Wenn ich jetzt schreibe:
<span class="stfont stbold">Text</span> wird die 2. Klasse nicht berücksichtigt, also der Text wird nicht fett ausgegeben. Warum?
Ich hatte das Problem auch mal mit einer Definition für Links, da hats aber geholfen in der CSS Datei jeder Klasse ein a davorzuhängen. Hier kann ich aber kein span davorschreiben, weil ich ja nicht weiß ob ich die Klasse nur in span Tags verwende.
Bye, God
Hi
<span class="stfont stbold">Text</span> wird die 2. Klasse
nicht berücksichtigt, also der Text wird nicht fett
ausgegeben. Warum?
IE
Wieso lässt du font-weight: normal; nicht weg?
Gruss
chlori
Wieso lässt du font-weight: normal; nicht weg?
Hm, ist eigentlich nicht wikrlich notwendig, stimmt. Aber trotz allem müsste die Schrift doch fett angezeigt werden, oder?
Hi
Wieso lässt du font-weight: normal; nicht weg?
Hm, ist eigentlich nicht wikrlich notwendig, stimmt.
Aber trotz allem müsste die Schrift doch fett angezeigt werden, oder?
Macht sie ja, oder? "Müsste" nützt nichts.
Gruss
chlori
Nein, auch wenn ich das font-weight in stfont lösche bleibt der Text normal. Ich dachte eigentlich, wenn ich schreibe class="stfont stbold" wird der Text fett, schreibe ich class="stbold stfont" wird der Text normal, also immer in der Reihenfolge in der die Klassen geschrieben werden.
Hi
Nein, auch wenn ich das font-weight in stfont lösche
bleibt der Text normal.
Dieser Code erzeugt bei mir (Moz1.7b/IE5 Win) Text,
der bold ist:
<body>
<style type="text/css">
<!--
.stfont {
background-color: transparent;
color: black;
font-size: 11px;
font-family: Verdana, Tahoma, sans-serif;
text-decoration: none;
}
.stbold {
font-weight: bold;
}
-->
</style>
<span class="stfont stbold">Text</span>
</body>
Gruss
chlori
Stimmt, ich bin rad auf was extre bescheuertes gekommen. Ich habe die Klassen anders herum im Stylesheet gehabt, also zuerst stbold dann stfont. Und nur deshalb ist der Text nicht fett? Stelle ich stbold nach stfont gehts auch bei mir. Das verstehe ich jetzt aber gar nicht.
Hi,
Stelle ich stbold nach stfont gehts auch bei mir. Das verstehe ich jetzt aber gar nicht.
ist doch ganz einfach: bei gleicher Wertigkeit wird die zuletzt angegebene Definition verwendet.
Das Problem ättest Du z.B. nicht, wenn Du bei .stfont auf font-weight:normal; verzichtest.
Aber wie schon angemerkt, wäre ein zusätzlicher sinnvoller Tag eine bessere Lösung.
Alternativ ginge auch die in einem anderen Beitrag angesprochene Mehrfachzuweisung
.stfont, .stbold {}
.stbold { font-weight:bold; }
wodurch das Ganze dann auch im NN4 funktioniert und Du nicht unnötiger Weise mehrere Klassen angeben mußt.
freundliche Grüße
Ingo
Wenn ich jetzt schreibe:
<span class="stfont stbold">Text</span> wird die 2. Klasse nicht berücksichtigt, also der Text wird nicht fett ausgegeben. Warum?
Nur mal so als Anregung.
CSS dient in erster Linie dazu HTML Elemente zu formatieren. D.h. du zeichnest deinen Text mit HTML Tags aus und giobst diesen dann mit CSS ein aussehen. Falls es kein passendes HTML Tag gibt, das die von dir gewübnschte Formtierung ausdrückt werden Klassen verwendet.
Um das auf dein Codeschnipsel zu übertragen. Mein Eindruck ist, du hast einen Bereich, in dem der Text eine bestimmte Formatierung (.stfont) erhalten soll und dort sind Textabschnitte fett. Nach der Vorstellung wie man mit CSS/HTML auszeichnend sollte sowas bei dir rauskommen:
<div id="bereich">
normaler Text <b>fetter text</b>
</div>
statt DIV kannst du evtl. auch <p> verwenden je nachdem wie komplex der Bereich ist.
und im CSS:
#bereich
{
background-color: transparent;
color: black;
font-size: 11px;
font-family: Verdana, Tahoma, sans-serif;
}
Struppi.
Also den <b> Tag verwende ich wohl wirklich nicht mehr. Der ist doch total veraltet. Ziel ist ja auch, dass ich die fettschrift für die ganze Seite nachträglich mit einem Handgriff zb. etwas dicker oder dünner machen kann, ich will nicht jedes <b> entfernen. Und ids kann ich nicht verwenden, da sie öfter als einmal auf der Seite vorkommen würden.
Hi
Ziel ist ja auch, dass ich die fettschrift für die ganze
Seite nachträglich mit einem Handgriff zb. etwas dicker
oder dünner machen kann
<strong> ist dafür da.
<strong style="font-weight:blah;"
Gruss
chlori
Ok, von mir aus <strong>. Aber gehen wir mal weg von der Fettschrift und nehmen wir an in stbold steht color: red;
Dann wird der Text ja auch nicht rot. stbold - oder besser gesagt jede weitere Klasse - wird einfach irgnoriert und das stört, weil das nicht normal sein kann.
Ok, von mir aus <strong>. Aber gehen wir mal weg von der Fettschrift und nehmen wir an in stbold steht color: red;
Auch das ist mit der Vorgehensweise, die ich beschrieb enfach und schnell möglich.
Wie gesagt du verzettelst dich und das evtl. unnötigerweise. Zumal das verwenden von mehreren Klassen noch längst nicht in allen Browsern funktioniert.
Struppi.
Dann erklär mal wie du es machen würdest mit der Farbe.
Hi
Dann erklär mal wie du es machen würdest mit der Farbe.
strong{
color:red;
}
Gruss
chlori
Ich will ja nicht jedes strong rot haben. Ich will eben bestimmte Textpassagen zusätzlich rot einfärben, dann muss ich eben eine Klasse hinzufügen.
Hi
Ich will ja nicht jedes strong rot haben.
<strong>blah</strong> blah </strong class="foo">foo</strong>
Gruss
chlori
Das Problem ist ja das:
<span class="stfont">blablabla</span> so siehst aus. Und wenn ich das jetzt rot will, kann ich entweder nochmal span Tags schreiben oder gleich die Klasse dranhängen. Das klappt aber komischerweise nur, wenn stbold in der CSS Datei auch hinter stfont steht, was ich total abartig finde.
Hi
Und wenn ich das jetzt rot will, kann ich entweder
nochmal span Tags schreiben oder gleich die Klasse dranhängen.
Kannst du ja bei strong auch.
Gruss
chlori
Ja aber wozu sollte ich strong schreiben wenn ichs nicht brauche?
Ja aber wozu sollte ich strong schreiben wenn ichs nicht brauche?
Du willst einen Textabschnitt hervorheben, oder anders auszeichnen, folglich will du eine HTML Tag verwenden, was das tut. Wie das dann am Ende aussieht bestimmt dein (oder mein) CSS.
Eine Klasse ist lediglich eine Möglichkeit Auszeichnungen zu verwenden die du mit HTML nicht ausdrücken kannst. Die zu häufige Verwendung von Klassen macht es für dich schwerer.
Struppi.
Hi
Ja aber wozu sollte ich strong schreiben wenn ichs nicht brauche?
Gruss
chlori
Ich will ja nicht jedes strong rot haben. Ich will eben bestimmte Textpassagen zusätzlich rot einfärben, dann muss ich eben eine Klasse hinzufügen.
Nein, wie ich schon schrieb, du definierst Bereiche in denen die HTML Tags verschieden aussehen können. Aber in den Bereichen haben die Tags die Gleiche Bedeutung. Wenn du aber eine auszeichnung hast, die mit keinem Tag auszudrücken ist, dann nimmst du eine Klasse. Also wenn du einen Bereich hast, in dem hervorgehobener Text rot sein soll dann machst du das so:
#bereich strong{ color:red;}
Wenn es aber nicht hervorgehobener Text sein soll, sondern etwas anderes überlege ob du es mit einem anderen Tag auszeichnen kannnst http://www.w3.org/TR/1998/REC-html40-19980424/struct/text.html#edef-STRONG
wenn nicht, dann ist eine Klasse deine Wahl.
Struppi.
Dann erklär mal wie du es machen würdest mit der Farbe.
wie gesagt es kommt drauf an was du mit deiner Klasse ausdrücken willst. Wenn es darum geht einen Text in einem Fließtext hervorzuheben benutze <strong> und im CSS:
strong
{
color:red;
font-weight:normal;
}
Struppi.
Hi
Dann wird der Text ja auch nicht rot.
Bei mir ist der Text rot.
Gruss
chlori
Also den <b> Tag verwende ich wohl wirklich nicht mehr. Der ist doch total veraltet. Ziel ist ja auch, dass ich die fettschrift für die ganze Seite nachträglich mit einem Handgriff zb. etwas dicker oder dünner machen kann, ich will nicht jedes <b> entfernen. Und ids kann ich nicht verwenden, da sie öfter als einmal auf der Seite vorkommen würden.
ok, strong statt b
Aber das ist doch genau das was mit meinem Beispiel möglich ist, während du dich mit doppelten Klassen verzettelst, kannst du das ganze in meinem Beispiel mit einem Handgriff ändern du kannst auch schreiben:
strong (in meinem Beispiel b)
{
font-weight:normal;
}
wie ich schon schrieb, du solltest HTML tags benutzen, die das was du ausdrücken willst beschreiben, wenn es die nicht gibt, dann nimm Klassen, aber letztlich kann man für Klassen nur sagen, je weniger umso besser. Also wenn der Text hervorgehoben werden soll -> strong. Wie er dann hervorghehoben wird bestimmt dein CSS.
Struppi.
Hi
<div id="bereich">
normaler Text <b>fetter text</b>
</div>
Vermutlich meinst du <strong> statt <b>, oder?
Gruss
chlori
Ich hab mal ein paar Seiten rausgesucht, wo vielleicht besser beschrieben wird, was ich meine:
eine kurze Ausführung:
http://www.sysiphus.de/anybrowser/t_htmlweb.html
eine sehr lange
http://www.jendryschik.de/wsdev/einfuehrung/xhtml/bodyelemente.html ff.
es gibt sicher noch mehr, aber vielleicht hilft dir das.
Struppi.