Formatierung der durch das <q>-Tag gesetzen Anführungszeichen soll sich auf den umliegenden Text beziehen



  • Wie bekomme ich es hin, daß die Anführungszeichen, die durch das <q>-Tag gesetzt werden, dieselbe Formatierung wie der umliegende Text haben, statt die Formatierung des Zitats?

    Beispiel: Ich habe im Stylesheet folgendes definiert:

    q { color: red; }
    

    Und in meinem HTML-Code steht nun das:

    Er sagte <q>Hallo, wie geht es Dir?</q> und gab mir die Hand.
    

    Das Zitat wird korrekterweise rot. Aber in dem Fall werden die Anführungszeichen, die das <q>-Tag setzt, auch rot. Doch das will ich nicht, da die Anführungszeichen selbst ja noch nicht zum Zitierten gehören, sondern es nur umschließen und somit eigentlich zugehörig zum drum herum liegenden Text sind.
    Ich könnte zwar folgendes definieren:

    q:before, q:after { color: black; }
    

    Aber das würde bedeuten, daß ich die Farbe explizit festsetze. Mir geht es aber darum, daß die Anführungszeichen immer so aussehen, wie der umliegende Text. Das heißt, wenn sich das Zitat zwischen einem blauen Text befindet, sollen die Anführungszeichen dann blau sein, während das Zitat selbst rot ist. Und wenn sich das Zitat zwischen schwarzer Schrift befindet, sollen die Anführungszeichen schwarz sein, während das Zitat weiterhin rot ist.



  • Hallo,

    ich nehme an dein Text steht in einem Abstatz

    <p></p>
    

    .
    Und dafür hast du sicher auch eine KLasse definiert

    p.absaetze
    

    Da die Anführungsszeichen deiner Meinung nach noch zum Absatz gehören, dann formatier sie doch einfach mit

    p.absaetze, q:before, q:after
    


  • Wie kommst Du darauf, daß ich für Absätze noch eine extra Klasse deklariert habe? Absätze haben normalerweise die Formatierung, die <body> generell hat. Außerdem, selbst wenn: Das würde noch nicht das Problem lösen, da es ja auch innerhalb des Absatzes verschiedene Formatierungen geben kann. Ein Beispiel:

    <p>
       Hans, Fritz und Klaus trafen sich und redeten.
       <span class="Hans">Hallo, wie geht's Euch?</span>
       <span class="Fritz">Mir geht es gut.</span>
       <span class="Klaus">Naja, mir nicht so. Aber Ihr wißt ja, wie es heißt:
          <q>Heb mal'd Been, wird schon jeh'n.</q></span>
    </p>
    

    (Fehlende Zeichenumbrüche (<br>) sind gewollt. Der Text steht komplett hintereinander.)

    Im Stylesheet ist folgendes deklariert:

    body   { color: black; }
    .Hans  { color: red; }
    .Fritz { color: blue; }
    .Klaus { color: green; }
    q      { color: magenta; }
    

    Ich gebe zu, daß das nicht gerade das beste Beispiel ist, da es reichlich konstruiert ist. Aber es geht ja hier um ein generelles Problem.

    Nun sieht der Text im Browser so aus:
    http://i40.tinypic.com/5x36f7.gif

    Er soll aber so aussehen:
    http://i42.tinypic.com/m8303p.gif

    Das heißt, die Anführungszeichen gehören ja noch zum Text von Klaus und nicht zum Sprichwort.

    Besonders deutlich würde das werden, wenn ich einen Text aus einem Buch, das in altdeutscher Schrift verfaßt wurde, zitieren und dafür dann ebenfalls altdeutsche Schrift nehmen würde. Da müssen ja die von mir bzw. vom <q>-Tag um das Zitat gesetzten Anführungszeichen logischerweise in meiner normalen Schrift stehen, da man sonst denken würde, die Anführungszeichen wären bereits im Originaltext im Buch zu finden. Aber so, wie es jetzt ist, würde der Browser es genauso machen, wie es nicht sein soll: Die Anführungszeichen würden in altdeutsch erscheinen, obwohl ja nur das, was auch tatsächlich in dem Buch steht, in altdeutsch geschrieben sein soll.

    Quellcodetechnisch gehören die Anführungszeichen natürlich zum <q>-Tag, weshalb sie dieselbe Formatierung bekommen wie der Text innerhalb des <q>-Tags. Aber sprach- und rechtschreibtechnisch gehören die Anführungszeichen zum Zitierenden. Nur der Text selbst, innerhalb der Anführungszeichen, gehört zum Zitierten. Und deshalb sollen die Anführungszeichen auch prinzipiell das gleiche Format haben wie der umliegende Text und nicht das Format des Zitats selbst.

    Kann man das irgendwie bewerkstelligen?


  • Mod

    html ist eine markup language. sprich: eine was und keine wie sprache. du weisst also garnicht ob bei <q> wirklich anfuehrungszeichen erscheinen...





  • Hallo,

    und was spricht jetzt dagegen das Beispiel von cssler umzusetzen 😕

    body, q:before, q:after    { color: black; } 
    .Hans, q:before, q:after   { color: red; } 
    .Fritz, q:before, q:after  { color: blue; } 
    .Klaus, q:before, q:after  { color: green; } 
    q      { color: magenta; }
    

    LG, Micha



  • Na das wüsste ich jetzt aber auch gerne?

    Erst schreibts du du willst deine Absätze nicht extra formatieren, dann gehst du aber sogar her und formatierst einzelne Sätze per span.



  • RandomAccess85 schrieb:

    und was spricht jetzt dagegen das Beispiel von cssler umzusetzen 😕

    body, q:before, q:after    { color: black; } 
    .Hans, q:before, q:after   { color: red; } 
    .Fritz, q:before, q:after  { color: blue; } 
    .Klaus, q:before, q:after  { color: green; } 
    q      { color: magenta; }
    

    Ähm, also dieser spezielle Code funktioniert gar nicht so, wie gedacht. Hier überschreibst Du nämlich q:before und q:after immer wieder, so daß Zitatanführungszeichen am Ende immer grün sind, weil das der letzte gesetzte Wert war.
    Dieser Code:

    <p>
       NormalerText <q>NormalesZitat</q> Normaler Text<br>
       <span class="Hans">TextHans <q>ZitatHans</q> TextHans</span><br>
       <span class="Fritz">TextFritz <q>ZitatFritz</q> TextFritz</span><br>
       <span class="Klaus">TextKlaus <q>ZitatKlaus</q> TextKlaus</span><br>
    </p>
    

    wird also hierzu: http://i42.tinypic.com/5ecnc4.gif

    Aber was das Prinzip an sich betrifft: In dem Fall würde es bedeuten, daß ich jedem Absatz und jedem Span, das in meinen Dateien vorkommt und das ein Zitat beinhalten kann, diese spezielle Formatierung mitgeben muß. Es ist zwar möglich (denke ich), aber es ist nicht sonderlich elegant. Der Sinn der Sache ist ja, daß ich bei solchen Tags Attribute festlegen kann. Und die Attribute, die ich nicht festlege, die übernimmt das Tag dann entsprechend vom umliegenden Text. Wenn ich also dem <em>-Tag nur ein einziges Attribute angebe, nämlich das, daß es tatsächlich kursiv dargestellt werden soll, dann weiß ich, daß alle anderen Attribute vom drumherumliegenden Tag übernommen werden. Das heißt, ich muß nicht extra ein <em> für <p> deklarieren, dann eines für <h1>, das explizit die gleichen Formatierungen wie <h1> hat, dann eines für diese und für jene Formatierung. Sondern ich weiß: Wenn <em> in einem großen fetten Text vorkommt, dann ist es ebenfalls groß und fett und wenn es in einem Arial-Text vorkommt, dann ist es ebenfalls in Arial geschrieben.
    Und so möchte ich das auch bei den Anführungszeichen haben: Ich will mich nicht explizit drum kümmern müssen, daß ich für jede Formatierung, die ein Quote beinhaltet, dahinter nochmal speziell q:before und q:after deklarieren muß, um ihm zu sagen: "Ja, in genau diesem Fall mach die Anführungszeichen bitte so, wie der umliegende Text!"
    Leider hat der W3C-Standard es verkackt. Denn Anführungszeichen bekommen per default die Formatierung des zitierten Texts. Was ich aber für Unsinn halte. Denn die Anführungszeichen sind nicht Teil des Zitierten, sondern sie sind ein Beitrag des Zitierenden. Wenn ich eine Stelle aus einem Buch zitiere und mich dazu entscheide, den Text aus dem Buch fett darzustellen, dann müßte das so aussehen:

    Ihr wißt ja, wie es heißt: "To be or not to be."

    Und nicht so:

    Ihr wißt ja, wie es heißt: "To be or not to be."

    Denn die Anführungszeichen kommen im Buch nicht vor, sondern sind von mir, also werden sie auch in der Formatierung meines Textes geschrieben.

    cssler schrieb:

    Erst schreibts du du willst deine Absätze nicht extra formatieren, dann gehst du aber sogar her und formatierst einzelne Sätze per span.

    Ich sagte nicht, daß ich Absätze nicht formatieren will, sondern daß ich nicht pauschal Absätze formatiere, so daß also nicht jeder Absatz ein class="" hat. Aber wenn dann mal eine Stelle kommt, wo ganz explizit formatiert wird und wenn diese Stelle dann auch noch ein Zitat in sich trägt, dann möchte ich eben, daß die Anführungszeichen automatisch richtig aussehen und ich im Stylesheet nicht extra hingehen muß und sagen muß: "Guck mal, ein Text in dieser speziellen Formatierung kann unter Umständen ein Zitat beinhalten. Wenn dem so ist, dann achte doch bitte darauf, die Anführungszeichen explizit mit derselben Formatierung zu belegen wie der Abschnitt." Genauso, wie ich mich bei einem <em> nicht drum kümmern muß, ob es in einer Überschrift, einem normalen Text oder einem selbst formatierten Absatz steht, sondern es die Formatierung des bisherigen Textes übernimmt und dann nur die spezifischen Formatierungen setzt, will ich, daß die Anführungszeichen bei einem <q>-Tag auch automatisch so formatiert werden wie der umliegende Text. Und die Formatierung innerhalb des q { } soll er erst auf den zitierten Text und nicht auf die Anführungszeichen anwenden.



  • Hallo,

    ein bißchen Eigeniniative bei der Lösungsfindung wär toll

    <style>
    body,   body   q:before, body   q:after  { color: black; } 
    .Hans,  .Hans  q:before, .Hans  q:after  { color: red; } 
    .Fritz, .Fritz q:before, .Fritz q:after  { color: blue; } 
    .Klaus, .Klaus q:before, .Klaus q:after  { color: green; } 
    q                          { color: magenta; } 
    </style>
    
    <p> 
       NormalerText <q>NormalesZitat</q> Normaler Text<br> 
       <span class="Hans">TextHans <q>ZitatHans</q> TextHans</span><br> 
       <span class="Fritz">TextFritz <q>ZitatFritz</q> TextFritz</span><br> 
       <span class="Klaus">TextKlaus <q>ZitatKlaus</q> TextKlaus</span><br> 
    </p>
    

    Du versuchst Standards zu brechen und hoffst darauf dass es eine fertige Lösung dafür gibt? Der IE zum Beispiel stellt gar keine Anführungsstriche dar!

    Zudem ist es nunmal so dass Formatierungen in Formatierungen explizit angegeben werden müssen und wenn der Stil um die Quotas herum variabel ist, musst du die CSS entsprechend anpassen!

    LG, Micha



  • RandomAccess85 schrieb:

    ein bißchen Eigeniniative bei der Lösungsfindung wär toll

    In wie weit bin ich nicht eigentinitiativ? Bei der Lösung, die Du nennst, habe ich doch schon gesagt, wieso ich sie nicht so ideal finde. Was ist daran also uneigeninitiativ? Zumal ich selbst es war, der die Grundlage dieses Lösungsansatzes im ersten Post nannte.



  • Hallo,

    ich meine damit dass du den funktionierenden Code auch selbst hättest ermitteln können. Stattdessen stellst du es aber in Frage. Fakt ist doch, dass es außer Workarounds keine plausible Lösung für dein Problem gibt.

    die Anführungsstriche gehören nunmal zum Zitat, nicht zum Text drumrum und sie werden - wie gesagt - noch nicht einmal in jedem Browser angezeigt.

    LG, Micha



  • RandomAccess85 schrieb:

    ich meine damit dass du den funktionierenden Code auch selbst hättest ermitteln können. Stattdessen stellst du es aber in Frage.

    Ich hab es nicht in Frage gestellt. Daß der Code so nicht funktioniert, war nur eine Randnotiz, aber ich habe nicht angedeutet, daß das nicht generell funktionieren würde. Ich fand nur den Lösungsansatz generell nicht ideal, weil man dann jedes verschiedene Anführungszeichen extra deklarieren muß. Da ich eben der Meinung bin, daß das:

    RandomAccess85 schrieb:

    die Anführungsstriche gehören nunmal zum Zitat, nicht zum Text drumrum

    zwar quellcodetechnisch richtig, linguistisch gesehen dagegen falsch ist, was dann natürlich eher ein Fehler der W3C-Konsortiums ist.

    RandomAccess85 schrieb:

    und sie werden - wie gesagt - noch nicht einmal in jedem Browser angezeigt.

    Das liegt aber nur daran, weil Microsoft mal wieder sein eigenes Süppchen kocht.



  • Hallo,

    es mag sein dass es linguistisch inkorrekt ist, ändert aber nix daran, dass es quellcodetechnisch nicht ohne Aufwand korrigiert werden kann! Zumindest nicht dann wenn du für deine Absätze oder Textpassagen verschiedene Formatierungen verwendest. Da die Anführungsstriche zum Zitat (<q>) und nicht zum Text gehören (was absolut in Ordnung is - siehe hier) müssen sie explizit formatiert - und dem vorangehenden Text entsprechend angepasst - werden.

    LG, Micha


Anmelden zum Antworten