Werte zurücksetzen? (die x-te)
alx
- css
0 Cheatah0 alx0 Ingo Turski0 Cheatah
Hallo!
Nicht böse sein, ich muss leider noch ein mal eine Frage ansprechen, an der ich schon öfter zu knabbern hatte ( http://forum.de.selfhtml.org/archiv/2004/2/t72613/ ) aber diesmal wäre ein Workaround sehr aufwändig.
Ich habe mir auch andere verwandte Beiträge dazu angesehen, Lösung war leider keine dabei:
Gibt es eine Möglichkeit Werte, die man per CSS gesetzt hat, auch wieder zu entfernen?
Konkret: Ich baue meine Stylesheets vom allgemeinen zum speziellen auf. Dann steht am Anfang z.B. so was wie
table,
tr,
td
{
border: none;
margin: 0px;
padding: 0px;
vertical-align: top;
}
damit ich nicht auf jede Tabelle aufpassen muss und weiter unten definiere ich dann Tabellen, für die das nicht gilt.
Jetzt setze ich aber zurzeit ein CMS auf, in dem es Content-Bereiche gibt, in denen die Redakteure Tabellen mit HTML-Attributen modifizieren können sollen (ist vom CMS so vorgegeben)(als z.B. border=1).
Das sieht man dann natürlich nicht mehr.
Was ich bräuchte wäre also so etwas wie
div.derfreiebereich table {border: default;}
oder so.
div.derfreiebereich table[border=1] {border: 1px solid black;}
oder
table:not(div.derfreiebereich) {border: 1px solid black;}
sind leider auch keine Lösung, weil es natürlich auch im IE funktionieren muss (abgesehen davon, dass die Tabelle dann nur einen Außenrahmen hat und der Rest ganz schön aufwändig wird).
Danke
Alexander
Hi,
Gibt es eine Möglichkeit Werte, die man per CSS gesetzt hat, auch wieder zu entfernen?
es gibt kein "entfernen". Jedes Element verfügt zu jedem Zeitpunkt über jede CSS-Eigenschaft mit genau einem Wert (und dem daraus resultierenden Calculated Value). Wenn Dir der aktuelle Wert eines Elementes nicht zusagt, setze einen besseren Wert.
damit ich nicht auf jede Tabelle aufpassen muss
Hm, wie viele Tabellen gibt es denn in Deiner Site?
div.derfreiebereich table {border: default;}
Mache aus "default" einen für die border-Eigenschaft gültigen Wert und gut is'.
Cheatah
Hallo Cheatah,
danke für Deine Antwort, Du hast mir ja auch schon vor einem halben Jahr auf die Sprünge geholfen.
Wenn Dir der aktuelle Wert eines Elementes nicht zusagt, setze einen besseren Wert.
Einen ’besseren’ Wert gibt es in dem Fall leider nicht, eine Tabelle in den Zustand zurück zu versetzen, dass sie border=1 gleicht.
Hm, wie viele Tabellen gibt es denn in Deiner Site?
Vor allem ist das Stylesheet *wesentlich* übersichtlicher, wenn ich erst mal definieren kann "Alle Tabellen sollen diese und jene Eigenschaften haben" und dann "Diese und jene Tabellen aber nicht". Wenn die über CSS gesteuert wären, wäre das alles ja auch kein Problem, leider steht die border in diesem Fall aber in einem HTML-Attribut.
Mache aus "default" einen für die border-Eigenschaft gültigen Wert und gut is'.
Siehe oben & leider eben auch nicht, die läuft dann nur außen rum.
Ich bin ja nicht der einzige, der auf dieses Problem stößt.
Ich fürchte auch, es gibt da wirklich keine andre Lösung als jede Tabelle einzeln anzusprechen :(( um dann die eine bestimmte eben raus zu lassen und über HTML-Attribute anzusprechen.
Es wäre aber wirklich sinnvoll, wenn es in CSS so eine Möglichkeit gäbe, gesetzte Werte zu entfernen.
Alexander
Hi,
Ich fürchte auch, es gibt da wirklich keine andre Lösung als jede Tabelle einzeln anzusprechen :(( um dann die eine bestimmte eben raus zu lassen und über HTML-Attribute anzusprechen.
Korrekt. CSS überstimmt zumeist HTML-Attribute.
Es wäre aber wirklich sinnvoll, wenn es in CSS so eine Möglichkeit gäbe, gesetzte Werte zu entfernen.
Nö. Für den bei Dir vorliegenden Fall vielleicht - aber dieser selbst ist ja wenig sinnvoll. ;-)
freundliche Grüße
Ingo
Hi,
ergänzend zu Ingos Antwort:
Einen ’besseren’ Wert gibt es in dem Fall leider nicht, eine Tabelle in den Zustand zurück zu versetzen, dass sie border=1 gleicht.
Selbstverständlich gibt es den. Es _muss_ ihn geben, denn das, was Du ohne den Einsatz von CSS gesehen hast, hat der Browser durch ein internes CSS hergestellt. Simuliere dieses also.
Cheatah