Richard: :before und geschützte Leerzeichen

Hallo,

ist es eigentlich möglich, im Wert für :before ein geschütztes Leerzeichen ( ) anzugeben? Denn ich lasse damit vor einem Link ein kleines Bild anzeigen. Dazwischen entsteht allerdings ein unschöner Zeilenumbruch, wenn ich nach dem Bild noch ein Leerzeichen angebe. Wenn ich bei :before allerdings   notiere, wird das auch so ausgegeben.

Kann man also auch geschützte Leerzeichen (oder überhaupt HTML-Entities) dort notieren?

Grüße
Richard

  1. Lieber Richard,

    ich lasse damit vor einem Link ein kleines Bild anzeigen.

    ist das Bild ein Hintergrundbild oder ein <img />-Element? Im letzteren Falle kannst Du ja versuchen, dem Teil einen entsprechenden padding-Wert zu verpassen, anstatt ein geschütztes Leerzeichen einzubauen...

    Liebe Grüße aus Ellwangen,

    Felix Riesterer.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:° n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. Hallo Felix,

      ist das Bild ein Hintergrundbild oder ein <img />-Element? Im letzteren Falle kannst Du ja versuchen, dem Teil einen entsprechenden padding-Wert zu verpassen, anstatt ein geschütztes Leerzeichen einzubauen...

      Hm, das geht ja nicht, denn das Bild wird nur über die Pseudoklasse :before mit CSS eingefügt. Ich habe daher ja keinen direkten Zugriff auf das Bild und kann es mit CSS daher nicht ansprechen, oder doch?

      Grüße
      Richard

      1. Hm, das geht ja nicht, denn das Bild wird nur über die Pseudoklasse :before mit CSS eingefügt. Ich habe daher ja keinen direkten Zugriff auf das Bild und kann es mit CSS daher nicht ansprechen, oder doch?

        Du möchtest den Abstand doch zwischen Vorläufer und eigentlichem, nachfolgenden Element haben, also nicht den Inhalt (das Bild) des Vorläufers :before formatieren, sondern den Vorläufer selbst:

        :before { padding-right:0.33em }

        1. Hallo Teufelchen,

          Du möchtest den Abstand doch zwischen Vorläufer und eigentlichem, nachfolgenden Element haben, also nicht den Inhalt (das Bild) des Vorläufers :before formatieren, sondern den Vorläufer selbst:

          :before { padding-right:0.33em }

          Danke, funktioniert! Hätte man natürlich auch selbst drauf kommen können…

          Grüße
          Richard

          1. Hallo,

            Danke, funktioniert! Hätte man natürlich auch selbst drauf kommen können…

            Zu früh gefreut. Bricht trotzdem um.

            Grüße
            Richard

  2. @@Richard:

    Kann man also auch geschützte Leerzeichen […]

    Ja.

    »»» […] (oder überhaupt HTML-Entities) dort notieren?

    Nein.

    Du musst (wie immer!) kontextspezifisch escapen (wenn du nicht das geschützte Leerzeichen als solches in den Quelltext schreibst). Der Kontext ist nicht HTML, sondern CSS.

    Siehe [CSS2 §4.1.3]. Das geschützte Leerzeichen hat den Zeichencode U+00A0.

    Live long and prosper,
    Gunnar

    --
    Erwebsregel 208: Manchmal ist das einzige, was gefährlicher als eine Frage ist, eine Antwort.
    1. Hallo Gunnar,

      Siehe [CSS2 §4.1.3]. Das geschützte Leerzeichen hat den Zeichencode U+00A0.

      OK, danke. Allerdings wird jetzt zwar ein Leerzeichen angezeigt, aber dennoch entsteht ein Zeilenumbruch (nämlich direkt _vor_ dem Leerzeichen).

      Grüße
      Richard

    2. Hallo Gunnar,

      Du musst (wie immer!) kontextspezifisch escapen (wenn du nicht das geschützte Leerzeichen als solches in den Quelltext schreibst). Der Kontext ist nicht HTML, sondern CSS.

      Nitpicking: Wenn das CSS inline eingebunden und nicht mittels CDATA oder HTML-Kommentaren gedingst wird und dort ein &nbsp; steht, dann steht doch aus CSS-Sicht das geschützte Leerzeichen praktisch als solchen im Quelltest.

      Tim

  3. Hallo,

    Wieso verwendest du kein Hintergrundbild+Padding?

    Gruß

    1. Hallo josh,

      Wieso verwendest du kein Hintergrundbild+Padding?

      weil ich das für semantisch falsch hielt. Doch es scheint wohl die einzig funktionierende Möglichkeit zu sein.

      Grüße
      Richard

      1. Hallo,

        weil ich das für semantisch falsch hielt.

        Kommt drauf an, für was das Bild da ist. Sollte es wirklich wichtige Informationen transportieren, würde ich es gleich als <img /> einbinden.

        Gruß

        1. Hallo josh,

          Kommt drauf an, für was das Bild da ist. Sollte es wirklich wichtige Informationen transportieren, würde ich es gleich als <img /> einbinden.

          Es soll vor einem externen Link stehen, damit der Benutzer diesen auf den ersten Blick als solchen erkennt.

          Grüße
          Richard