norbert: xhtml unterschied zwischen " und '

hallo,

wie im topic beschrieben, will ich wissen, ob es einen unterschied zwischen " und ' gibt. also zB
<img src='myimage.gif' />
und
<img src="myimage.gif" />

gibt es irgendeine offizielle aussage (es ist schwer nach " und ' zu suchen :() vom w3 konsortium bezügl. dessen?
Hat jmd. von euch schlechte Erfahrungen mit '?

danke im voraus!

  1. Hallo,

    wie im topic beschrieben, will ich wissen, ob es einen unterschied zwischen " und ' gibt. also zB
    <img src='myimage.gif' />
    und
    <img src="myimage.gif" />

    Nein, das macht keinen Unterschied.

    gibt es irgendeine offizielle aussage (es ist schwer nach " und ' zu suchen :() vom w3 konsortium bezügl. dessen?

    http://www.w3.org/TR/html401/intro/sgmltut.html#h-3.2.2

    Du kannst in HTML entweder keine Anführungszeichen nützen, oder konsequent einen von beiden. Wobei es empfehlenswert ist Anführungszeichen zu benützen.

    In XHTML musst du Attributwerte in Anführungszeichen setzen.

    Hat jmd. von euch schlechte Erfahrungen mit '?

    Als Begrenzer von Attributwerden ist es besser wenn du »"« benützt, denn bei »'« kann es zu Problemen kommen, wenn du z.B. JavaScript-anweisungen im Attributwert hast, z.B. »onlick='myFunction('a', 'b')'« oder wenn im Text einen Apostroph vorkommt z.B. »title='a'la carte'«
    Da müsstest du dann die Apostrophe mit &#39; oder mit &apos; maskieren.

    Eingebürgert hat sich eben daher die Benützung vom »"«.

    Grüße
    Thomas

    --
    Surftip: kennen Sie schon Pipolino's Clowntheater?
    http://www.clowntheater-pipolino.net/
    1. Hi,

      Als Begrenzer von Attributwerden ist es besser wenn du »"« benützt, denn bei »'« kann es zu Problemen kommen, wenn du z.B. JavaScript-anweisungen im Attributwert hast, z.B. »onlick='myFunction('a', 'b')'« oder wenn im Text einen Apostroph vorkommt z.B. »title='a'la carte'«
      Da müsstest du dann die Apostrophe mit &#39; oder mit &apos; maskieren.

      Da kann man aber genausogut argumentieren, daß ' besser als " ist, denn es könnte zu Problemen kommen, wenn z.B. Javascript-Anweisungen im Attributwert sind (z.B. onclick="myFunction("a", "b")) oder wenn im Text ein Anführungszeichen vorkommt, z.B. title="ein "tolles" Beispiel". Da müßte man dann &#34; oder &quot; verwenden.

      Man muß halt jeweils im Attributwert entweder die jeweils anderen Zeichen verwenden oder eben geeignet maskieren.

      Wobei &apos; in HTML gar nicht existiert (erst in XHTML, weil es in XML immer vorhanden ist).

      cu,
      Andreas

      --
      Warum nennt sich Andreas hier MudGuard?
      Schreinerei Waechter
      Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
    2. Tag,

      Eingebürgert hat sich eben daher die Benützung vom »"«.

      IMO bietet es sich auch an " zu benutzen. Wie Du schon sagst brauchen so die ' nicht maskiert werden. Da im Windowsfilesystem " verboten und ' erlaubt sind, kann man mit " einfache auf Links mit ' im Filenamen referenzieren.

        
      <img src="/andreas'rad.jpg" />  
      <img src='/andreas&#39;rad.jpg' />  
      
      

      Grüße,
      Steffen.

    3. Moin!

      Du kannst in HTML entweder keine Anführungszeichen nützen, oder konsequent einen von beiden. Wobei es empfehlenswert ist Anführungszeichen zu benützen.

      Wobei man in HTML die Anführungszeichen nur weglassen darf, wenn der Attributwert nur aus Buchstaben A-Z, a-z, Ziffern, Minus -, Unterstrich _, Punkten und Kommas besteht. Das Vorkommen irgendwelcher anderer Zeichen erfordert zwingend, dass Anführungszeichen gesetzt werden.

      Es wird außerdem empfohlen, sie IMMER zu setzen, auch wenn man sie weglassen könnte.

      Hat jmd. von euch schlechte Erfahrungen mit '?

      Als Begrenzer von Attributwerden ist es besser wenn du »"« benützt, denn bei »'« kann es zu Problemen kommen, wenn du z.B. JavaScript-anweisungen im Attributwert hast, z.B. »onlick='myFunction('a', 'b')'« oder wenn im Text einen Apostroph vorkommt z.B. »title='a'la carte'«

      Ein schlechtes Beispiel, da man ja einfach auch onclick='myFunction("a","b")' schreiben könnte, ohne irgendeine Funktionalität zu verlieren.

      Das Title-Beispiel hingegen ist "gültig". :) Andersherum existiert es aber auch: Doppelte Anführungsstriche als Attributwert sind innerhalb von doppelten Anführungsstrichen als Attributbegrenzer ebenfalls nicht erlaubt:

      alt="17"-LCD-Monitor" -> alt="17$quot;-LCD-Monitor"
      title='a'la carte' -> title='a&apos;la carte'

      Es ist aber nicht verboten, sich passend zum Attributwert und auch gerne wild wechselnd im Dokument jeweils die günstigsten Attributbegrenzer auszusuchen:

      alt='17"-LCD-Monitor'
      title="a'la carte"

      Nur bei diesem Beispieltext kommt man um Entities für das eine oder andere Anführungszeichen nicht herum:

      17"-LCD-Monitor a'la carte

      Eingebürgert hat sich eben daher die Benützung vom »"«.

      Das könnte aber auch daran liegen, dass man es auf der Tastatur besser tippen kann, oder dass es das klassische Stringbegrenzerzeichen in vielen Programmiersprachen ist, und deshalb eine gewisse Gewöhnung besteht. Technisch gesehen ist es in HTML und XHTML vollkommen egal, welches Zeichen man benutzt.

      - Sven Rautenberg

      1. Hi Sven,

        alt="17"-LCD-Monitor" -> alt="17$quot;-LCD-Monitor"
        title='a'la carte' -> title='a&apos;la carte'

        Das Problem tritt gar nicht erst auf, wenn man die typographisch richtigen Zeichen verwendet. Dann sieht’s auch besser aus.

        alt="17″-LCD-Monitor"* (alt="17&Prime;-LCD-Monitor")
        title='a’la carte'     (title='a&rsquo;la carte')

        Live long and prosper,
        Gunnar

        * Nein, nach der 17 steht kein U+0022 quotation mark, sondern ein U+2033 double prime.

        --
        „Weisheit ist nicht das Ergebnis der Schulbildung, sondern des lebenslangen Versuchs, sie zu erwerben.“ (Albert Einstein)
        1. Hi,

          title='a’la carte'     (title='a&rsquo;la carte')

          Das ist ziemlicher Unsinn.

          Es müßte

          title='&agrave; la carte'
          bzw.
          title='à la carte'

          heißen.

          Ein Apostroph kommt darin gar nicht vor.

          cu,
          Andreas

          --
          Warum nennt sich Andreas hier MudGuard?
          Schreinerei Waechter
          Fachfragen per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
          1. Hallo,

            title='a’la carte'     (title='a&rsquo;la carte')

            Das ist ziemlicher Unsinn.

            Es müßte

            title='&agrave; la carte'
            bzw.
            title='à la carte'

            heißen.

            Ein Apostroph kommt darin gar nicht vor.

            Dann nehmen wir à l'extrémité à la française. ;-)

            Grüße
            Thomas

            muss man jetzt wirklich um die Beispiele streiten?

            --
            Surftip: kennen Sie schon Pipolino's Clowntheater?
            http://www.clowntheater-pipolino.net/
    4. hallo!

      danke für eure ausführlichen antworten.

      thx,
      norbert