Christian S.: Zuweisung zweier CSS Properties

Hi,

folgender Snippet:

<html xmlns="http://www.w3.org/1999/xhtml">
 <head>

<style type="text/css">

input[type=text]
{
background-color: #ffcc00;
}

.test
{
background-color: #ff0000;
}

</style>

</head>

<body>
 <form>

<input type="text" onfocus="this.className='test';" onblur="this.className='';" />

</form>
 </body>
</html>

ich möchte, dass alle Textboxen einen bestimmten Style haben, dass sage ich in input[type=text].

Bei einem Event, möchte ich die Klasse wechseln (this.className='').

Klappt auch. Nur die BGColor wird nicht neu gesetzt.

also ersterer Selektor scheint stärker zu binden, als der zweite...?

kann man das Problem lösen?

input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.

Gruß
Christian

  1. Hi,

    input[type=text]
    .test
    Klappt auch. Nur die BGColor wird nicht neu gesetzt.

    natürlich nicht. Sie wird immer noch vom Selektor mit der höchsten Spezifität bestimmt, also von input[type=text] (011) statt .test (010).

    also ersterer Selektor scheint stärker zu binden, als der zweite...?
    kann man das Problem lösen?

    Mach den zweiten Selektor spezifischer.

    input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.

    Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?

    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. Hi,

      Mach den zweiten Selektor spezifischer.

      und zwar wie??

      Habe jetzt ein !important hinter die bgcolor der klasse gesetzt, dann gehts auch. oder geht das auch hinter die gesamte klasse?

      input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.

      Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?

      :focus kann er nicht, daher kann ich es ja nicht verwenden. (da die style änderung idr beim focus kommt).

      also muss in dem focus fall JS her.

      Es ging nur darum, nicht für jede Textbox eine Klasse angeben zu müssen.

      Gruß!

      1. Hi,

        Mach den zweiten Selektor spezifischer.
        und zwar wie??

        indem er mindestens einen Element- und einen Attributselektor enthält, oder mindestens einen ID-Selektor.

        Habe jetzt ein !important hinter die bgcolor der klasse gesetzt,

        Der Regel. Sowas wie Klassen gibt es in CSS nicht.

        dann gehts auch.

        Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.

        oder geht das auch hinter die gesamte klasse?

        Regel. Nein.

        input[type=text]:focus (o.ä.) kommt wegen IE nicht in Frage.
        Wieso, kann er input[type=text]:focus im Gegensatz zu input[type=text] plötzlich?
        :focus kann er nicht, daher kann ich es ja nicht verwenden.

        [type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?

        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. Hi,

          [type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?

          update Cheatah set knowledge = concat(knowledge, "IE kennt [type=text] (nur im Nicht-Quirks-Mode und erst ab Version 7.x)");

          cu,
          Andreas

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

          Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.

          wie kommst du auf !override? davon hab ich nie geredet, und das ist mir auch völlig unbekannt.

          [type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?

          IE 7 schon.

          Gruß!

          1. Hi,

            Es heißt "!important", nicht "!override". Deine Anwendung ist nach unseren aktuellen Kenntnissen falsch.

            wie kommst du auf !override? davon hab ich nie geredet, und das ist mir auch völlig unbekannt.

            Der Punkt ist, dass du !important ohne Not dazu "missbrauchst", um eine andere Zuweisung zu "überschreiben".

            [type=text] kann der IE auch nicht, wieso also kannst Du das verwenden?

            IE 7 schon.

            Tolles Argument. Und warum verwendest du völlig unnötigerweise einen Selektor, den die IEs < 7 nicht verstehen?

            Es reicht nicht, einfach mal eben CSS für seine Site zu verwenden. Man muss sich auch mit der Materie auseinandersetzen und das Ganze verstehen. Deine Vorgehensweise und deine Postings drängen den Verdacht auf, dass du beides noch nicht in ausreichendem Maße getan hast.

            Gruß Gunther

            1. Hi,

              Tolles Argument. Und warum verwendest du völlig unnötigerweise einen Selektor, den die IEs < 7 nicht verstehen?

              Weil ich nicht JEDER Textbox eine Klasse geben will (=> weniger Aufwand).

              Es reicht nicht, einfach mal eben CSS für seine Site zu verwenden. Man muss sich auch mit der Materie auseinandersetzen und das Ganze verstehen. Deine Vorgehensweise und deine Postings drängen den Verdacht auf, dass du beides noch nicht in ausreichendem Maße getan hast.

              habe das mit der Prio nun halbwegs gerafft.

              also
              einfach
              input[type=text].Klasse statt !important.

              Ich würde nicht sagen, dass ich die Materie nicht verstanden habe, nur weil ich die Selektoren noch nicht ganz verstanden hatte.

              IE 7 Unterstützung reicht in meinem Fall aus. (keine öffentliche seite die barrierefrei und so sein muss).

              Gruß!

      2. Aloha!

        :focus kann er nicht, daher kann ich es ja nicht verwenden. (da die style änderung idr beim focus kommt).

        also muss in dem focus fall JS her.

        Das geht auch ohne JS: Gib dem IE :active - das setzt er fälschlicherweise so um, wie :focus gemeint ist.

        Viele Grüße vom Længlich

    2. @Cheatah
      Meld Dich mal bei uns, dringend.

  2. Hi,

    in Ergänzung zu Cheatas Antwort hier noch ein Link bezüglich der Spezifität.

    ich möchte, dass alle Textboxen einen bestimmten Style haben, dass sage ich in input[type=text].

    Man kann dafür auch durchaus eine Klasse verwenden, dann verstehen es auch die IEs.

    Gruß Gunther

    1. Hallo alle!

      Frage steht eigentlich im Topic...

      cascade.html#specifi_ci_ty

      bezüglich der Spezifität.

      Zu mal im Deutschen die Verwechslung mit einem evtl. Wildweststädtchen Specifi City gar nicht gegeben ist ;)

      Viele Grüße aus Frankfurt/Main,
      Patrick

      --

      _ - jenseits vom delirium - _
      [link:hatehtehpehdoppelpunktslashslashwehwehwehpunktatomicminuseggspunktcomslash]
      Nichts ist unmöglich? Doch!
      Heute schon gegökt?