Ferenc: was macht das? * html

ich hab in einem quelltext diesen befehl gefunden versteh aber nicht was
der macht:

* html #pr_options .btn_warenkorb {
margin-bottom: -17px;
m\argin-bottom: -17px;
}

ich meine das:" * html "
vor der classe

hab auch nix bei google gefunden

danke im vorraus ferenc

  1. Hallo Ferenc,

    das Sternchen ist ein Universalselektor.

    Siehe

    http://de.selfhtml.org/css/formate/zentrale.htm#elemente
    http://bs-markup.de/blog/archiv/2005/12/12/css-hack-diat/
    http://www.thestyleworks.de/ref/se_universal.shtml

    Mit freundlichen Gruessen,
    Sympathizer

    --
    "Was ist ist, was nicht ist ist moeglich"
  2. Hallo Ferenc,

    * html #pr_options .btn_warenkorb {
    margin-bottom: -17px;
    m\argin-bottom: -17px;
    }

    * selektiert jedes element.

    Obiger code würde ein Elelemnt mit der Klasse btw_warenkorb selektieren, die sich ein einem Element mit der id pr_options befindet, welches sich innerhalb des html-Element befindet, welches sich innerhalb irgendeines Elementes befindet.

    Das nennt sich star-html-Hack. Normalerweise ist html das Stammelement, d.h. es befindet sich innerhalb von keinem Element. Der Internet Explorer glaubt das aber trotzdem, und so wird obige Regel nur vom Internet Explorer beachtet werden.

    Jonathan

  3. @@Ferenc:

    ich hab in einem quelltext diesen befehl gefunden

    Kein Befehl, sondern eine Regel. [CSS2 §4.1.7]

    * html #pr_options .btn_warenkorb {
    margin-bottom: -17px;
    m\argin-bottom: -17px;
    }

    Der selektiert alle Elemente der Klasse ".btn_warenkorb", die Nachfahren des Elements mit der ID "pr_options" sind, welche wiederum Nachfahren eines Elements des Typs 'html' sind, welche wiederum Nachfahren eines beliebigen Elements sind.

    Da 'html' in HTML das Wurzelelement ist, also kein Nachfahre eines anderen Elements, selektiert der Selektor gar nichts – in standardkonformen Browsern. Im Ich-halte-mich-nicht-an-Standards-IE tut es doch was und wird als Hack verwendet.

    ich meine das:" * html "
    hab auch nix bei google gefunden

    "star html hack" wäre dein Suchbegriff.

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. hi,

      ich verstehe sowieso nicht genau.

      * html #pr_options .btn_warenkorb {
      margin-bottom: -17px;
      m\argin-bottom: -17px;
      }

      das waer dann nicht das selber wie:

      #pr_options .btn_warenkorb {
      margin-bottom: -17px;
      m\argin-bottom: -17px;
      }

      was macht denn * html im css anders in diesem fall?

      Gruss

      1. Hallo Inita_,

        was macht denn * html im css anders in diesem fall?

        Das sorgt dafür, dass nur der Internet-Explorer die Style-Regeln benutzt. Weil nur der falscherweise glaubt, dass html noch ein Elternelement hat.

        Das m\argin-bottom: -17px; dagegen dürfte wirklich weggelassen werden.

        Jonathan

      2. Hi,

        ich verstehe sowieso nicht genau.

        nicht schlimm, dazu sind wir ja da.

        * html #pr_options .btn_warenkorb {
        das waer dann nicht das selber wie:
        #pr_options .btn_warenkorb {

        Nein. Es gibt zwei Unterschiede:

        1.) Der erste Selektor betrifft nur Elemente, die sich innerhalb eines <html>-Elements befinden, welches sich innerhalb eines beliebigen anderen Elements befindet. In HTML ist dies niemals der Fall, außer im IE; in einem anderen ML (z.B. einem XML) könnte es vorkommen.

        2.) Der erste Selektor ist um einen Typselektor spezifischer. Er obsiegt[1] beispielsweise über ein nachfolgendes ".btn_warenkorb#active", welches auf das selbe Element zutrifft; der Selektor ohne "* html" unterliegt hierbei.

        was macht denn * html im css anders in diesem fall?

        "*" ist der Universalselektor. Er selektiert jedes Element.
        "html" ist der Element-Selektor (Typselektor) für das <html>-Element.

        Cheatah

        [1] Das betrifft nur widersprüchliche Deklarationen innerhalb der entsprechenden Regeln, nicht die Regel als solche.

        --
        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
    2. * html #pr_options .btn_warenkorb {}

      Da 'html' in HTML das Wurzelelement ist, also kein Nachfahre eines anderen Elements, selektiert der Selektor gar nichts – in standardkonformen Browsern. Im Ich-halte-mich-nicht-an-Standards-IE tut es doch was und wird als Hack verwendet.

      Ergänzend: siehe <http://de.selfhtml.org/css/layouts/browserweichen.htm#star_html_hack@title=SELFHTML, Star-HTML-Hack>.

      Roland

      --
      Top Fives // »Falco († 06.02.1998)«
  4. @@Ferenc:

    Die interessantere Frage ist: Was macht

    margin-bottom: -17px;
    m\argin-bottom: -17px;

    Mal abgesehen davon, dass der Hack in der zweiten Zeile wegen des identischen Wertes überflüssig ist, sollte man den '' nicht vor Buchstaben setzen, die nicht als Hexadezimalziffern interpretiert werden?

    Oder sollte man besser auf solche Hacks nicht gänzlich verzichten und (wenn’s denn unbedingt sein muss) verschiedene Stylesheets mit conditional comments referenzieren?

    Live long and prosper,
    Gunnar

    --
    „Das Internet ist ein großer Misthaufen, in dem man allerdings auch kleine Schätze und Perlen finden kann.“ (Joseph Weizenbaum)
    1. Hi,

      Die interessantere Frage ist: Was macht

      margin-bottom: -17px;
      m\argin-bottom: -17px;

      das Falsche.

      Mal abgesehen davon, dass der Hack in der zweiten Zeile wegen des identischen Wertes überflüssig ist, sollte man den '' nicht vor Buchstaben setzen, die nicht als Hexadezimalziffern interpretiert werden?

      Japp. Hier ist von einer "m10rgin-bottom"-Eigenschaft die Rede. Stünde der Backslash vor z.B. dem "r", wäre es ein Hack, der dem IE 5.x den erstgenannten und dem IE 6 (bzw. auch jedem anderen Browser, wenn man den Star-HTML-Hack außer Acht lässt) den zweitgenannten Wert liefert.

      Oder sollte man besser auf solche Hacks nicht gänzlich verzichten und (wenn’s denn unbedingt sein muss) verschiedene Stylesheets mit conditional comments referenzieren?

      Dazu habe ich eine ziemlich strikte Meinung: Die Einbindung von CSS-Ressourcen über Conditional Comments ist hanebüchener Unfug.

      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. Hallo Cheatah,

        margin-bottom: -17px;
        m\argin-bottom: -17px;

        Stünde der Backslash vor z.B. dem "r", wäre es ein Hack, der dem IE 5.x den erstgenannten und dem IE 6 (bzw. auch jedem anderen Browser, wenn man den Star-HTML-Hack außer Acht lässt) den zweitgenannten Wert liefert.

        ...Was aber auch völlig unerheblich ist, weil in beiden Zeilen "-17px" steht.

        Jonathan