Ausnahmn für Klassen möglich?
JT
- css
Hallo,
ist es möglich, in einer Klasse
input[type=submit] {
...
}
auch Ausnahmen zu definieren?
Oder anders gefragt, wie muss ich meine einen Submit-Button behandeln, wenn er nicht per o.g. Regeln formatiert werden soll?
Derzeit habe ich in meinem Formular folgenden Eintrag:
<input type="submit" name="userinput1" class="button_back" value="">
Das PNG-Bildchen, was der Klasse "button_1" hinterlegt ist, wird aber durch die Formatierung meines
input[type=submit] {
geplättet.
Wie löse ich das Problem??
Gruß, JT
Hallo!
Arbeite mit 'id' statt 'class'.
Liebe Grüße aus Norddeutschland.
Hallo!
Arbeite mit 'id' statt 'class'.
Danke!
JT
Danke!
Das ist aber nicht dein ernst, oder?
Danke!
Das ist aber nicht dein ernst, oder?
Sicher. Es funktioniert doch.
Tut mir ja auch leid, dass da irgenwer Euch in die Parade gefahren ist, nur weil er meine Frage anscheinend verstanden hat.
Sicher. Es funktioniert doch.
Ja, aber imho wenig schlau.
Es funktioniert, weil die Spezifität eines Selektors mit einer ID höher ist als ein Attribut- oder Klassenselektor - genauso hätte man dir raten können "nimm !important" oder "nimm zwei Klassen" oder "stelle deinem Selektor ein 'form ' voran" oder "ändere die Reihenfolge der Deklarationsblöcke".
Tut mir ja auch leid, dass da irgenwer Euch in die Parade gefahren ist, nur weil er meine Frage anscheinend verstanden hat.
Die Frage hat auch Gunnar verstanden, ich ebenfalls - allerdings ist aufgrund der gegegebenen Informationen deinerseits eine sinnvolle Antwort schwer möglich - "nimm eine ID statt einer Klasse" ist aber jedenfalls fast immer eine dämliche Lösung - sie zeugt von Unwissen oder wenig Erfahrung.
Was ist, wenn du auf derselben Seite mehrere submit-Buttons hast - das ist z.B. bei mehrseitigen Formularen nicht ungewöhnlich - packst du dann in jeden Button eine ID oder gar in jeden Button dieselbe ID?
Dieses vorgehen verstößt gegen eines der Grundprinzipien beim Verfassen von Code - namentlich "DRY".
Wenn dabei solcher Code rauskommt (oder bei Erweiterungen rauskommen kann), ist der Lösungsvorschlag fahrlässig.
#button_1,
#button_2,
#button_3,
#button_4,
#button_5,
#button_6,
#button_7 {
foo: bar;
}
@@JT:
nuqneH
ist es möglich, in einer Klasse […] auch Ausnahmen zu definieren?
Ja.
Ach so, du wolltest auch wissen, wie? ;-)
(1) Pseudoklasse :not() (verstehen aber noch nicht alle aktuellen Browser)
(2) Überschreiben mit spezifischerem Selektor
Wie löse ich das Problem??
Welches?
Bevor du sagst „na meins“, liest du bitte nochmal die Tips für Fragende in der Charta.
Qapla'
(1) Pseudoklasse :not() (verstehen aber noch nicht alle aktuellen Browser)
:not() ist für komplexe Aufgaben leider auch nicht immer geeignet - Sizzle bietet hier aber ein paar nette Features, die man dringenderweise auch in CSS einarbeiten sollte.
:not(#foo) ist ein CSS 3 möglich, :not(#foo>.bar) z.b aber nicht.
Eine weitere wirklich hilfreiche Sizzle-Ergänzung ist :has() - was indirekt einem Vorfahren-Selektor entspricht.
Hallo,
ist es möglich, in einer Klasse
input[type=submit] {
...
}
Das ist ein Attributselektor.
auch Ausnahmen zu definieren?
:not() ist die einzig technisch korrekte Antwort in diesem Fall - aber nur aufgrund deiner Fragestellung.
Oder anders gefragt, wie muss ich meine einen Submit-Button behandeln, wenn er nicht per o.g. Regeln formatiert werden soll?
Weise ihm ein spezielles Merkmal zu - z.B. eine Klasse (wenn er zu einer Gruppe gleichartiger Elemente gehört) oder eine ID (wenn es genau ein explizites Element ist)
Derzeit habe ich in meinem Formular folgenden Eintrag:
<input type="submit" name="userinput1" class="button_back" value="">
Das is völlig ausreichend.
Das PNG-Bildchen, was der Klasse "button_1" hinterlegt ist, wird aber durch die Formatierung meines
Da steht zwar nirgens "button_1" aber was solls.
input[type=submit] {
geplättet.
Die Spezifität eines Attribut-Selektors und eines Klassenselektors ist gleich - eine spätere Deklaration überschreibt also eine frührere.
Wie löse ich das Problem??
Am sinnvollsten: indem du die Spezifität eines der Selektoren veränderst oder indem du die Reihenfolge änderst.
Hi,
input[type=submit] {
Das ist ein Attributselektor.
und ein Elementselektor.
cu,
Andreas
Weise ihm ein spezielles Merkmal zu - z.B. eine Klasse (wenn er zu einer Gruppe gleichartiger Elemente gehört) oder eine ID (wenn es genau ein explizites Element ist)
Dann war die Antwort gar nicht so (Zitat) "dämlich", denn "button_back" ist tatsäclich einmalig.
Das PNG-Bildchen, was der Klasse "button_1" hinterlegt ist, wird aber durch die Formatierung meines
Da steht zwar nirgens "button_1" aber was solls.
Oops. Verschrieben. button_back war gemeint.
Die Spezifität eines Attribut-Selektors und eines Klassenselektors ist gleich - eine spätere Deklaration überschreibt also eine frührere.
Soweit verstanden. Also Reihenfolge ändern, falls gewünscht.
Wie löse ich das Problem??
Am sinnvollsten: indem du die Spezifität eines der Selektoren veränderst oder indem du die Reihenfolge änderst.
Siehste. Sind nicht solche Antworten dämlich, da ohnehin klar ist, dass der Fragende rückfragen muss, was Du mit Spezifität ändern genau meinst??
Grüße, JT
Mahlzeit JT,
Am sinnvollsten: indem du die Spezifität eines der Selektoren veränderst oder indem du die Reihenfolge änderst.
Siehste. Sind nicht solche Antworten dämlich, da ohnehin klar ist, dass der Fragende rückfragen muss, was Du mit Spezifität ändern genau meinst??
Nein. Weder sind sie dämlich, noch ist klar dass der Fragende rückfragen muss ... da nämlich <http://de.selfhtml.org/css/formate/kaskade.htm#spezifitaet@title=in SELFHTML> (und an diversen anderen Stellen im Netz) erklärt ist, was "Spezifität" im Zusammenhang mit CSS bedeutet.
MfG,
EKKi
[latex]Mae govannen![/latex]
Am sinnvollsten: indem du die Spezifität eines der Selektoren veränderst oder indem du die Reihenfolge änderst.
Siehste. Sind nicht solche Antworten dämlich, da ohnehin klar ist, dass der Fragende rückfragen muss, was Du mit Spezifität ändern genau meinst??
Keinesfalls. Das ist CSS-Grundwissen und außerdem auch bei SelfHTML dokumentiert. Hier wird erwartet, daß sich der Frager zuerst in SelfHTML über Grundlagen selbst informiert. Insofern stellt sich die Frage nicht.
Cü,
Kai
@@JT:
nuqneH
Die Spezifität eines Attribut-Selektors und eines Klassenselektors ist gleich - eine spätere Deklaration überschreibt also eine frührere.
Soweit verstanden. Also Reihenfolge ändern, falls gewünscht.
Nicht empfehlenswert, IMHO. Das macht den Code bei späteren Änderungen fehleranfällig. Ich vermeide möglichst Selektoren gleicher Spezifität für ein bestimmtes Element, dann muss man sich nicht auf die bestimmte
Reihenfolge der Regeln verlassen.
Siehste. Sind nicht solche Antworten dämlich, da ohnehin klar ist, dass der Fragende rückfragen muss, was Du mit Spezifität ändern genau meinst??
Solche Antworten sind nicht dähmlich. Rückfragen nach einem in der Antwort gegebenen Stichwort kann der Fragende nämlich zuerst der Suchmaschine seiner Wahl stellen. LMGTFY.
Qapla'
Dann war die Antwort gar nicht so (Zitat) "dämlich"
Das dämlich war darauf bezogen, dass eine Antwort hingerotzt wird, ohne überhaupt nur ansatzweise die Gegebenheiten zu kennen - und die sich bei bestem Willen aus deiner Fragestellung nicht zu erraten da du einerseits technische Fehler machst (du sprichst von Klassen, nennst aber einen Attribut-Selektor) und andererseits eben logische (nennst die eine, im Code zeigst du eine andere).
Genausogut hättest du tatsächlich 2x Klasse meinen können und dabei den Internet Explorer 6 verwenden, der versteht Selektoren mit mehreren Klassen (z.B. input.foo.bar) schlichtweg nicht. Woher hätte Jeremy das wissen sollen?
Eine Antwort ins blaue ohne den Warnhinweis auf "mal ins blaue getippt" ist dämlich.
denn "button_back" ist tatsäclich einmalig.
Also ist genau dieser einzele Button einzigartig und alle anderen Formularbuttons welche in irgend einer Form vorkommen oder vorkommen können sind anders und allgemein formatiert?
Dann ist das ggf. ein Indiz für die Verwendung einer ID.
Allerdings bezweifle ich immer noch, dass es so ist - denn wo es einen Button-Back gibt, gibt es irgendwo in der Umlaufbahn oder in anderen Formularen auch noch andere Buttons (zumindest theoretisch).
Der entscheidende Unterschied ist nicht sein "einmaliges Vorkommen" sondern seine Einzigartigkeit und die Notwendigkeit zur eindeutigen Identifikation.
Der Seitenkopf z.B. bekommt die ID "header", den kann es unter gar keinen umständen mehrfach geben. Ein Warnhinweis hingegen würde die Klasse "warnung" bekommen, auch wenn es aktuell in der gesamten Site nur eine einzige Warnung gibt - es ist ein generischer Bestandteil der zu einer Gruppe von Warnhinweisen gehört, die ggf. mehrfach an verschiedenen stellen vorkommen können.
Dasselbe gilt für deinen Back-Button - man stelle sich z.B. ein Warenkorbsystem vor wo man zurück zur Artikelliste gelangt oder eben ein mehrseitiges Formular. Da gibts die Buttons möglicherweise auch überall nur 1x aber es ist nicht ausgeschlossen, dass sie nicht mehrfach vorkommen - z.B. einer oben und einer unten.
Oops. Verschrieben. button_back war gemeint.
Siehe oben - das war der logische Fehler.
Soweit verstanden. Also Reihenfolge ändern, falls gewünscht.
Ohne dein CSS zu kennen ist das eine Möglichkeit, ja - das sind allerdings CSS-Grundlagen.
.foo { color: red; } [class~=foo] { color: green; }
ergibt grün
[class~=foo] { color: green; } .foo { color: red; }
ergibt rot
Siehste. Sind nicht solche Antworten dämlich, da ohnehin klar ist, dass der Fragende rückfragen muss, was Du mit Spezifität ändern genau meinst??
Nein, denn im Kopf des Forums steht explizit, dass sich die Fragesteller bereiterklären, sich mit der Materie zu beschäftigen. Was Spezifität im Kontext CSS bedeutet, spuckt dir die Suchmaschine deiner Wahl sehr schnell aus - wahlweise gibts auch bei <http://de.selfhtml.org/css/formate/kaskade.htm#spezifitaet@title=SELFHTML einen Abschnitt zur Spezifität>.
Genausogut könnte ich jetzt Argumentieren, dass antworten dämlich sind, in denen auf die Verwendung von Klassen verwiesen wird, da man ja nicht davon ausgehen kann, dass der Fragesteller weiß, was eine Klasse ist.
denn "button_back" ist tatsäclich einmalig.
Also ist genau dieser einzele Button einzigartig und alle anderen Formularbuttons welche in irgend einer Form vorkommen oder vorkommen können sind anders und allgemein formatiert?
Ja. Genau so ist es.
Dann ist das ggf. ein Indiz für die Verwendung einer ID.
Deshalb habe ich es auch so gelöst.
Grüße, JT
Also ist genau dieser einzele Button einzigartig und alle anderen Formularbuttons welche in irgend einer Form vorkommen oder vorkommen können sind anders und allgemein formatiert?
Ja. Genau so ist es.
Ich glaub's immer noch nicht, aber wenn du das sagst wirds schon stimmen.
Deshalb habe ich es auch so gelöst.
cum hoc ergo propter hoc :)