KraKi: <hr /> Transitional färben.

'nAbend
Also ich würde gerne an verschiedensten Stellen meiner Seite ein <hr />-Element einsetzen. Des Weiteren hätte ich das gerne in der Textfarbe. Zunächst habe ich dies einfach mit
<hr size="1" color="#123456" />
gelöst. Das hat funktioniert und jeder getestete Browser hat es geschluckt. Jetzt wollte ich die Seite aber gerne (transitional) valide machen (bisweilen habe ich einfach mal nach Gutdünken gecodet, mal das /> gesetzt und mal nicht... alles sehr wirr) und stelle fest, dass das color-Attribut nicht im hr-Element erlaubt ist.
Mein erster Versuch war das ganze in font-tags zu schließen, aber das ist auch nicht erlaubt. Die letzten Möglichkeiten, die mir einfallen sind CSS oder 1-Pixel-Grafik, das wäre erlaubt und funktionell, möchte ich aber nicht.

Also die Frage ist: Gibt es eine valide Methode _ohne_ CSS ein <hr />-Element zu färben? (darf auch global sein)

  1. Hi,

    Also die Frage ist: Gibt es eine valide Methode _ohne_ CSS ein <hr />-Element zu färben? (darf auch global sein)

    nein - aber was hast Du gegen CSS?

    freundliche Grüße
    Ingo

      • aber was hast Du gegen CSS?

      ansich nichts, wenn ich es nicht anwenden muss. Um's genau zu nennen hatte ich bisher noch keine Zeit mich mit dieser Sprache tiefer zu beschäftigen und ich benutze nicht so gerne Dinge, die ich nicht verstehe.
      Ich meine, man muss ja nicht alles wissen (dafür gibt es Nachschlagewerke) aber das System ansich sollte man verstanden haben. Bisher habe ich nur verstanden, dass ich die Browser gegebenenfalls mit syle="..." zu Dingen überreden kann, die sie sonst nicht täten (sehr kleine Schrift z.B.) aber ich möchte es hier eben nicht benutzen, solange ich es nicht verstanden habe.

      nein

      Schade, ich dachte man könnte hier etwas tricksen (ein Element missbrauchen).

      Naja, dann bleibt es eben erstmal "unfarbig" (dem Browser überlassen) und ich muss mich doch mal in CSS einlesen.

      Danke für die eindeutige Antwort.

      1. Hello out there!

        • aber was hast Du gegen CSS?
          ansich nichts, wenn ich es nicht anwenden muss.

        Keine gute Antwort, aber eine gute! ;-)

        Um's genau zu nennen hatte ich bisher noch keine Zeit mich mit dieser Sprache tiefer zu beschäftigen

        Ein denkbar schlechter Grund, kein CSS einzusetzen.

        und ich benutze nicht so gerne Dinge, die ich nicht verstehe.

        Die Einstellung allerdings ist eigentlich löblich. Wie oft muss man hier lesen „Hab im Netz dieses Script gefunden und weiß nicht, warum es nicht funzt.“

        Bisher habe ich nur verstanden, dass ich die Browser gegebenenfalls mit syle="..." zu Dingen überreden kann,

        Auch das ist CSS, aber an der denkbar schlechtesten Stelle! Am besten gar nicht Inline-Angaben erst angewöhnen, sondern alle Angaben im zentralen Stylesheet tätigen.

        Schade, ich dachte man könnte hier etwas tricksen (ein Element missbrauchen).

        Pfui!

        und ich muss mich doch mal in CSS einlesen.

        Unbedingt. So schwer ist es auch gar nicht. Das Layouten mit CSS ist auch viel einfacher und bietet wesentlich mehr Möglichkeiten als veraltete HTML-Attribute. Bald wirst du von Transitional auf Strict umsteigen.

        http://forum.de.selfhtml.org/archiv/2005/7/t110828/#m696870

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. Am besten gar nicht Inline-Angaben erst angewöhnen, sondern alle Angaben im zentralen Stylesheet tätigen.

          Ich werde diesen Hinweis beachten, allerdings erst später.
          Für's erste dachte ich das Problem mit
          <style type="text/css">
               hr { color:#2832f9; }
          </style>
          Im Kopfbereich lösen zu können... aber scheinbar ist das nicht richtig, denn der FireFox scheint die Angabe zu ignorieren. Der IE stellt es dar wie gewünscht. (bzw. der IE-Tab, FF-Extension)
          <hr size="1" />
          erscheint jetzt also im FireFox weiterhin schwarz anstatt blau (#2832f9).

          1. Hi,

            Für's erste dachte ich das Problem mit
            <style type="text/css">
                 hr { color:#2832f9; }
            </style>
            Im Kopfbereich lösen zu können... aber scheinbar ist das nicht richtig, denn der FireFox scheint die Angabe zu ignorieren. Der IE stellt es dar wie gewünscht.

            Du hast Dir aber auch eine der kompliziertesten Fälle ausgesucht. ;-)

            hr's lassen sich nämlich äußerst schlecht formatieren. Eine Lösung:

            hr { font-size:1px; line-height:1px; height:1px; border:none; color:#2832f9; background:#2832f9; }

            Das Element wird auf 1px Höhe ohne Rahmen getrimmt und bekommt eine entsprechende Vorder- und Hintergrundfarbe; die Vordergrundfarbe braucht der IE.

            Einbinden kannst Du diese Regel so

            freundliche Grüße
            Ingo

            1. Hi

              Du hast Dir aber auch eine der kompliziertesten Fälle ausgesucht. ;-)

              'tschuldigung :-)

              hr { font-size:1px; line-height:1px; height:1px; border:none; color:#2832f9; background:#2832f9; }

              Das Element wird auf 1px Höhe ohne Rahmen getrimmt und bekommt eine entsprechende Vorder- und Hintergrundfarbe; die Vordergrundfarbe braucht der IE.

              Hat funktioniert, schönen Dank.

          2. Hello out there!

            Am besten gar nicht Inline-Angaben erst angewöhnen, sondern alle Angaben im zentralen Stylesheet tätigen.
            Ich werde diesen Hinweis beachten, allerdings erst später.

            ?? Aber das tust du doch schon mit

            <style type="text/css">
                 hr { color:#2832f9; }
            </style>

            der FireFox scheint die Angabe zu ignorieren.

            Ja sicher doch.

            Der IE stellt es dar wie gewünscht.

            Mich wundert eher, dass es im IE funktioniert. 'color' ist die Farbe für den Textinhalt eines Elements; 'hr' hat keinen solchen.

            See ya up the road,
            Gunnar

            --
            „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
            1. Hello out there!

              Am besten gar nicht Inline-Angaben erst angewöhnen, sondern alle Angaben im zentralen Stylesheet tätigen.
              Ich werde diesen Hinweis beachten, allerdings erst später.

              ?? Aber das tust du doch schon (...)

              Ja, ich meinte jetzt auch die externen .css-Dateien, die werde ich mir wahrscheinlich angewöhnen. (Wobei unnötig, da die <head>-Daten ohnhin zentral immer von der selben php-Datei generiert werden).
              Aber appropos, gibt es irgendwelche Probleme, wenn ich die css-Daten als Link einfüge, die Datei aber eine .php-Endung hat? Ich meine den ContentType kann ich ja noch kontrollieren, aber irgendwo in der W3-Hilfe zum Thema CSS stand, dass diese die Endung .css haben müssen, im Nebensatz stand dann aber auch gleich "wie bei Bildern". Bei Bildern kann ich aber eine beliebige Dateiendung nehmen, solange der MIME-Typ stimmt...

              Mich wundert eher, dass es im IE funktioniert. 'color' ist die Farbe für den Textinhalt eines Elements; 'hr' hat keinen solchen.

              Aha, wusste ich nicht, dass sich "color" nur auf text bezieht (heißt schließlich nicht "textcolor"). Wieder 'was gelernt.
              Wie gesagt, in HTML 3 oder 4 hat das color-Attribut im <hr>-Element funtioniert, auch im FireFox.

              Der Internet Explorer interpretiert darüber hinaus noch das Attribut color. Erlaubt ist dabei eine Farbangabe. Dieses Attribut hat jedoch nie zum HTML-Standard gehört. (selfHTML)

              Und selbst wenn ich XHTML als Dokumenttyp angegeben habe hat der Fuchs das wie gewünscht (ich will nicht "richtig" schreiben) gequirxt.

              1. Hello out there!

                Ja, ich meinte jetzt auch die externen .css-Dateien, die werde ich mir wahrscheinlich angewöhnen. (Wobei unnötig, da die <head>-Daten ohnhin zentral immer von der selben php-Datei generiert werden).

                Dann schickst du den CSS-Code aber bei jedem Aufruf einer Seite von deiner Site erneut vom Server zum Client. Hast du dagegen ein externes Stylesheet, auf das alle Seiten deiner Site zugreifen, wird der CSS-Code nur einmal übertragen und ist dann im Cache des Clients.

                Aber appropos, gibt es irgendwelche Probleme, wenn ich die css-Daten als Link einfüge, die Datei aber eine .php-Endung hat?

                Nein, im Web gibt es keine Dateien, sondern Ressourcen. Ergo auch keine Dateiendungen.

                Ich meine den ContentType kann ich ja noch kontrollieren,

                Ja, das musst du. (Das erledigt sonst der Server; der schickt bspw. Dateien mit der Endung '.css' (wir sind jetzt gerade im Dateisystem des Servers!) mit dem Content-Type 'text/css' raus.)

                See ya up the road,
                Gunnar

                --
                „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
  2. Hi,

    Jetzt wollte ich die Seite aber gerne (transitional) valide machen (bisweilen habe ich einfach mal nach Gutdünken gecodet, mal das /> gesetzt und mal nicht... alles sehr wirr)

    ob Du ein Element schließen musst, schließen darfst oder nicht schließen darfst, hat nicht das geringste mit Transitional zu tun. In HTML treten diese drei Fälle alle auf, in XHTML nur der erste.

    Also die Frage ist: Gibt es eine valide Methode _ohne_ CSS ein <hr />-Element zu färben? (darf auch global sein)

    Wieso sollte es so etwas geben? HTML hat nichts mit Darstellung zu tun. Es existiert kein Grund, außerhalb von CSS nach einer Lösung zu suchen.

    Cheatah

    --
    X-Self-Code: sh:( fo:} ch:~ rl:° br:> n4:& ie:% mo:) va:) de:] zu:) fl:{ ss:) ls:~ js:|
    X-Self-Code-Url: http://emmanuel.dammerer.at/selfcode.html
    X-Will-Answer-Email: No
    X-Please-Search-Archive-First: Absolutely Yes
    1. (...) (bisweilen habe ich einfach mal nach Gutdünken gecodet, mal das /> gesetzt und mal nicht... alles sehr wirr)
      ob Du ein Element schließen musst, schließen darfst oder nicht schließen darfst, hat nicht das geringste mit Transitional zu tun. In HTML treten diese drei Fälle alle auf, in XHTML nur der erste.

      Das ist mir klar :-) ich wollte auch nur anschaulich machen, dass ich einfach nicht darauf geachtet habe... es ist ein Beispiel. Ich habe keinerlei valides *whatever* abgeliefert sondern einen bunten Mix aus allem.

      Also die Frage ist: Gibt es eine valide Methode _ohne_ CSS ein <hr />-Element zu färben? (darf auch global sein)

      Wieso sollte es so etwas geben? HTML hat nichts mit Darstellung zu tun. Es existiert kein Grund, außerhalb von CSS nach einer Lösung zu suchen.

      Wieso es so etwas geben sollte? Naja, die Frage müsste man eigentlich andersherum stellen, wieso gibt es das in anderen Elementen?
      Insgesamt finde ich die Antwort sehr provokant, imho hat HTML durchaus 'was mit Darstellung zu tun, wie fast jede Auszeichnungssprache.

      PS: Weiter unten habe ich ausführlicher erklärt, warum ich kein CSS nutze.

      1. Hello out there!

        Wieso sollte es so etwas geben? HTML hat nichts mit Darstellung zu tun. Es existiert kein Grund, außerhalb von CSS nach einer Lösung zu suchen.
        Wieso es so etwas geben sollte? Naja, die Frage müsste man eigentlich andersherum stellen, wieso gibt es das in anderen Elementen?

        „Das sind Artefakte der Entwicklungsgeschichte: Die Browserhersteller überboten sich eine Zeitlang damit, die Darstellungsmöglichkeiten ihres Produktes zu erweitern und immer neue Features zu HTML hinzuzufügen.“ [1]

        Das wurde mit HTML 3.2 nachträglich als Standard abgesegtnet.

        „Durch die Entwicklung von CSS ist all dies überflüssig geworden und inzwischen missbilligt.“ [ebenda]

        Insgesamt finde ich die Antwort sehr provokant

        Welche von Cheatahs Antworten ist das nicht? ;-)

        imho hat HTML durchaus 'was mit Darstellung zu tun, wie fast jede Auszeichnungssprache.

        Du kennst den Unterschied zwischen logischer und physischer Auszeichnung? HTML sollte ausschließlich zur logischen Auszeichnung verwendet werden und dann dann _nichts_ mit Darstellung zu tun.

        „Es gibt Sprachen, die beschreiben, WAS im Browser dargestellt wird: frühe HTML-Versionen, HTML 4.0(1) Strict, XHTML 1.0 Strict, XHMTL 1.1.

        Und es gibt Sprachen, die beschreiben, WAS WIE im Browser dargestellt wird: HTML 3.2, HTML 4.0(1) Transitional, XHTML 1.0 Transitional.

        Dass das Rumgemansche mit HTML-Attributen zum Layouten nicht state of the art ist, darin sind wir [Cheatah und ich] uns völlig einig. Aber es ist eben in einigen Sprachen erlaubt. Leider.“ [2]

        PS: Weiter unten habe ich ausführlicher erklärt, warum ich kein CSS nutze.

        Brauchst du noch eine ausführliche Erklärung, warum du CSS nutzen solltest?

        See ya up the road,
        Gunnar

        --
        „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)
        1. Brauchst du noch eine ausführliche Erklärung, warum du CSS nutzen solltest?

          Nein, ich brauche nur die Zeit mich einzulesen :-)
          Ich will's ja nutzen, aber ich kann's bisher nur inline nutzen und das wiederum will ich nicht.

  3. Hello out there!

    Der Zweck des Feldes „E-Mail“ sollte doch eigentlich klar sein. Willst du keine Adresse angeben, lass das Feld leer; aber dort Unsinn einzugeben ist Unsinn.

    See ya up the road,
    Gunnar

    --
    „Wer Gründe anhört, kommt in Gefahr nachzugeben.“ (Goethe)