„CC sollten vermieden werden, da sie […] mit wesentlich höherer Wahrscheinlichkeit HTML-Änderungen bedeuten, sobald eine neue Version des Internet Explorers erscheint
Kann ich nicht nachvollziehen. Ich verweise mal auf https://forum.selfhtml.org/?t=185702&m=1232778.
Und wo bitte ist das Problem dabei, eine läppische Zeile in ein Master-Template hinzuzufügen?
eine alte geht
Was soll das bedeuten?
Wenn ich eine alte IE-Version nicht mehr unterstützen will, dann lösche ich den CC und das zugehörige Stylesheet.
Ja, richtig: Dann muss ich im Master-Stylesheet eine Zeile löschen.
Aber wo ist das Problem dabei? Friert die Hölle ein wegen dieser Änderung?
Im Vergleich dazu: Wenn ich IE-spezifische Regeln über 27 Stylesheets verteilt habe, muss ich diese alle editieren, diese Regeln heraussuchen und händisch löschen. Das ist doch nicht einfacher.
oder vielleicht »einfach nur« IE-Stylesheets neu arrangiert werden.“
Was soll da neu arrangiert werden? Wieso sollte ich das tun? Wann kommt das vor?
„Irgendeine Änderung einer Deklaration im »Haupt-Stylesheet«, die bereits im IE-Stylesheet für den Internet Explorer überschrieben wurde, kann andernfalls Konfusion bedeuten (»warum benimmt sich der IE anders«) […]“
Hier sehe ich keinen signifikanten Unterschied:
Wenn ich einen Bereich umformatiere, dann muss ich jeweils darauf achten, was für IE-Fixes für den Bereich gelten.
Bei einem ausgelagerten IE-Stylesheet muss ich dort nachschlagen, ansonsten muss ich im aktuellen Stylesheet nach einem Fix suchen. Klar, der »liegt nahe« und fällt daher eher ins Auge. Dem stimme ich zu.
Es kann also sein, dass mich der naheliegende IE-Fix daran erinnert, ihn zu aktualisieren, wenn ich nicht von selbst daran denke. Aber den Fall, dass ich mich verzweifelt frage, warum sich der IE anders verhält, ohne darauf zu kommen, als erstes im IE-Sylesheet nachzuschauen - den halte ich für ziemlich konstruiert. Der Grund, warum sich der IE (absichtlich) anders verhält, ist doch in erster Linie das IE-Stylesheet - dafür habe ich es eingebunden. Wie kann ich plötzlich vergessen, dass ich IE-Fixes auslagere? ;) Diese besagte Konfusion dauert deshalb ganze 15 Sekunden.
Also, ich finde diesen Fall reichlich hypothetisch und an den Haaren herbeigezogen. Ich kann bestätigen, dass ich oftmals nicht weiß, welche Regeln auf ein Element wirken oder z.B. welche Eigenschaft gerade hasLayout auslöst. Da ist es echt schwierig, die ganze Vererbung im IE 6 ohne ein Tool wie Firebug hinzubekommen. Die IE 7 Developer Toolbar und auch die IE 8 Developer Tools arbeiten m.E.n. ebenfalls nicht ganz korrekt, was das Zurückverfolgen von Styles angeht.
Aber bisher kam es nur sehr, sehr selten vor, dass die Fehldarstellung daher kam, dass im IE-Stylesheet für den jeweiligen Selektor noch veraltete Fixes herumlagen, die nach der Änderung des Haupt-Stylesheets überflüssig und kontraproduktiv geworden sind - und ich partout nicht darauf kam, die Ursache dort zu suchen.
„Diese Problematik ist logisch, da das »Prinzip der Nähe« verletzt wird, konzeptionell zusammengehörige Regeln mittels CC getrennt werden.“ – Sagte ich in diesem Thread ja auch schon.
Ja, das ist ein Argument. Wenn auch kein sonderlich stichhaltiges. Ich wüsste nämlich nicht, wo das Problem besteht, wenn man diese Arbeitsweise verinnerlicht hat. Ich mache das täglich und es ist für die Beteiligten kein Problem, IE-Fixes in die zugehörigen Stylesheets zu schreiben. Es wäre für sie genauso eine Bürde, jedes Mal die richtigen Selektor-Hacks herauszusuchen und die Abgrenzung zu den normalen Styles korrekt vorzunehmen. Klar, auch damit kommt man irgendwann zurecht. Ich halte das für eine Gewöhnungssache. In einem Team muss man sich auf eines einigen. Beides erfordert Einarbeitung, beides hat Schwachstellen.
Was mir die Sache vereinfachen würde, wenn ich häufig gebrauchte Fixes wie zoom:1 als hasLayout-Trigger zum Einschließen von Floats und zur generellen Stabilisierung des Layouts direkt ins Haupt-Stylesheet schreiben könnte - dummerweise macht das das CSS invalide. Ich vergesse es häufig, hasLayout anzuschalten, wenn ich in standardkonformen Browsern einen Block Formatting Context erzeuge. Allerdings glaube ich nicht, dass das Vergessen damit zu tun hat, in welche Datei ich diese Fixes schreibe.
Mathias