Konrad Rudolph: :after-Element "content" mit Unicode-Zeichen befüllen

Hallo Forum,

es ist ja möglich, die Pseudoklasse ":after" mit einem Inhalt zu definieren, also z.B.

\\ a:after {
    content: ' Hi!';
}
///

Nur leider kann man keine Entities verwenden. Kennt trotzdem jemand einen Weg, Unicode-Chars da reinzubekommen?

Hintergrund: ich habe folgendes XML:

\\ <list notation="ebnf">
     <dfn>
          <lhs>Char</lhs>
          <rhs>'a' - 'z' | 'A' - 'Z'</rhs>
     </dfn>
</list>
///

nun soll das als Liste angezeigt werden, dafür habe ich folgendes CSS:

\\ body list {
    display: block;
}

body list dfn{
    display: list-item;
}

body list[notation="ebnf"] dfn lhs:after{
    content: ' ::= ';
}
///

das ist die übliche EBNF-Notation für Definitionen (wird auch von W3C verwendet ...). Nun will ich aber nicht das Zeichen "::=" verwenden, sondern stattdessen →, also den Pfeil.

D.h. ich möchte, daß da am Ende so eine ähnliche Liste ist:

Char --> ['\x20'-'\xFF']
Letter --> ['A'-'Z''a-z']
Digit --> ['0'-'9']

Ist das machbar?

Gruß,
KonRad -

--
Warum der Staat (nicht) töten darf :: polithink.org -
the politicultural e-zine :: http://www.polithink.org
  1. Hi,

    es ist ja möglich, die Pseudoklasse ":after" mit einem Inhalt zu definieren, also z.B.
    a:after {
        content: ' Hi!';
    }

    Daß das nur wenige Browser können, weißt Du?

    Nur leider kann man keine Entities verwenden. Kennt trotzdem jemand einen Weg, Unicode-Chars da reinzubekommen?

    Entities haben in CSS ja auch keinen Sinn, die sind was SGML-typisches. CSS ist aber kein SGML.

    Benutze das, was CSS vorsieht.
    Backslash gefolgt vom Hexadekadischen Unicode:
    z.B. \20AC für das Eurozeichen.

    cu,
    Andreas

    --
    Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
    http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
    1. Hi,

      Daß das nur wenige Browser können, weißt Du?

      yepp. Das ganze wird eine Grammatikspezifikation, die nicht unbedingt ein breites Publikum lesen muß. Da kann ich ruhig Moz voraussetzen, denke ich.

      Nur leider kann man keine Entities verwenden. Kennt trotzdem jemand einen Weg, Unicode-Chars da reinzubekommen?

      Entities haben in CSS ja auch keinen Sinn, die sind was SGML-typisches. CSS ist aber kein SGML.

      hast recht.

      Benutze das, was CSS vorsieht.
      Backslash gefolgt vom Hexadekadischen Unicode:
      z.B. \20AC für das Eurozeichen.

      ah, das war mir nicht bekannt! Vielen Dank für die Aufklärung!
      Dank auch an molily!

      PS: klasse Aufsatz über das Hottes auf deiner Site! Ich bin zwar nach wie vor überzeugt, daß der schwäbische Ursprung nicht ganz ernst zu nehmen ist, aber nun endlich habe ich eine Alternative zum doch sehr langen Wort "Mobiltelefon"!

      Gruß,
      KonRad -

      --
      Warum der Staat (nicht) töten darf :: polithink.org -
      the politicultural e-zine :: http://www.polithink.org
      1. Hi,

        PS: klasse Aufsatz über das Hottes auf deiner Site! Ich bin zwar nach wie vor überzeugt, daß der schwäbische Ursprung nicht ganz ernst zu nehmen ist, aber nun endlich habe ich eine Alternative zum doch sehr langen Wort "Mobiltelefon"!

        Frag mal einen Engländer/Amerikaner/..., was ein "Handy" für ein Gerät ist.
        Dann weißt Du, daß es kein englisches Wort ist.
        Also KANN es nur aus Schwaben kommen...

        cu,
        Andreas

        --
        Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
        http://mud-guard.de/? http://www.andreas-waechter.de/ http://www.helpers.de/
        1. Frag mal einen Engländer/Amerikaner/..., was ein "Handy" für ein
          Gerät ist. Dann weißt Du, daß es kein englisches Wort ist.

          Ob du's glaubst oder nicht: ne Freundin von mir aus Schottland kennt
          das Wort! Allerdings durch den Kontakt mit Deutschen ;)

          Also KANN es nur aus Schwaben kommen...

          na, ich denke mal, daß da einfach jemand auf die glorreiche Idee
          gekommen ist, ein englisches Wort klinge besser als ein deutsches.
          Wahrscheinlich hat der sich dafür dann Werbungen angesehen (und
          vielleicht nicht übersetzt in Deutschland auch verwendet) und da
          stand dann sowas wie: "Forget about phones -- get something handy
          instead". Tataa, das Wort "Handy" wäre geboren. Erscheint mir
          plausibler als die Schwabentheorie.

          Gruß,
          KonRad -

          --
          Warum der Staat (nicht) töten darf :: polithink.org - the
          politicultural e-zine :: <a
          href="http://www.polithink.org">http://www.polithink.org</a>
          1. Hi,

            Erscheint mir plausibler als die Schwabentheorie.

            Du hast aber schon bemerkt, in welchem Kapitel meiner Webpräsenz der
            Artikel eingeordnet ist?!

            cu,
            Andreas

            --
            Der Optimist: Das Glas  ist halbvoll.  - Der Pessimist: Das Glas ist
            halbleer. - Der Ingenieur: Das Glas ist doppelt so groß wie nötig.
            <a href="http://mud-guard.de/?">http://mud-guard.de/?</a> <a
            href="http://www.andreas-waechter.de/">http://www.andreas-waechter.de/</a>
            <a href="http://www.helpers.de/">http://www.helpers.de/</a>
            1. Du hast aber schon bemerkt, in welchem Kapitel meiner WebprÃ&#164;senz der
              Artikel eingeordnet ist?!

              ahm *nachschau* ach sooo!
              ;-)

              Gruß,
              KonRad -

              --
              Warum der Staat (nicht) töten darf :: polithink.org -
              the politicultural e-zine :: http://www.polithink.org
  2. Hallo Konrad,

    es ist ja möglich, die Pseudoklasse ":after" mit einem Inhalt zu definieren

    Nur leider kann man keine Entities verwenden. Kennt trotzdem jemand einen Weg, Unicode-Chars da reinzubekommen?

    Du könntest dein Dokument bzw. dein externes Stylesheets mit einer Kodierung bzw. unter Verwendung eines Zeichensatzes speichern, welches das Zeichen direkt kodiert enthält, ein entsprechender Editor vorausgesetzt (siehe auch http://edition-w3c.de/TR/1998/REC-CSS2-19980512/kap04.html#heading-4.4). Praktischer ist wohl, mit Escapes zu arbeiten, siehe CSS-Spezifikation (http://edition-w3c.de/TR/1998/REC-CSS2-19980512/kap04.html#Backslash|):
    »In CSS2 kennzeichnet ein Backslash () drei Arten von Zeichen-Escapefolgen. [...] die Backslash-Escapes erlauben den Autoren, Zeichen zu verwenden, die nicht ganz einfach in ein Dokument aufgenommen werden können. In diesem Fall folgen dem Backslash höchstens sechs hexadezimale Ziffern (0..9A..F), was für die ISO 10646-Zeichen [...] mit der jeweiligen Nummer steht.«

    Der Entity → weist auf das Zeichen Unicode Dezimal 8594 (siehe http://selfhtml.teamone.de/html/referenz/zeichen.htm und http://www.w3.org/TR/html401/sgml/entities.html#h-24.3.1), folglich hexadezimal 2192. Als Backslash-Escape wäre das Zeichen folglich \2192 und in einer content-Eigenschaft content:'\2192';.

    Mathias