title image


Smiley Re: Kann man eine CSS-Klasse aufheben ????
>>Eine "Tautologie" ist in der Logik wenn eine logische Aussage, immer wahr ist (z.B. 'Wo bist du? Hier!')



TRUE OR FALSE. p OR NOT p. "Grün ist grün." "Der Mond ist der Mond". "Das Auto fährt oder es fährt nicht." Aber auch "Kleiner Text ist kleiner Text."

Von daher finde ich den Begriff schon passend.





>>Außerdem ist deine Behauptung, der Name 'textklein' "sagt rein gar nichts aus" einfach nicht wahr: 'textklein' sagt ganz eindeutig, dass [...] dieser [Text] i.Ggs. zu anderen klein ist



Wir müssen jetzt unterscheiden zwischen Aussagen über das Aussehen und Aussagen über die Bedeutung eines Elements. Zunächst müssen wir festhalten, dass man vom Aussehen niemals auf die Bedeutung schließen kann.



Kursiver Text kann z.B. alles mögliche bedeuten: Hervorhebung, später eingefügte Passage, spezieller Begriff, Zitat, Name, usw.



Auch ist es i.a. nicht möglich, von der Bedeutung automatisch auf den Inhalt zu schließen. (Obwohl sich bei den Browsern gewisse ungeschriebene Regeln bei den HTML-Tags eingebürgert haben.)



CSS basiert nun auf der Idee, Letztgenanntes doch möglich zu machen. In CSS macht man Aussagen, die das Aussehen auf die Bedeutung zurückführen:



h3 { font-style:italic; color:blue }

Alle Überschriften dritter Ebenene (Bedeutung) sind kursiv und blau (Aussehen).



HTML hingegen trifft Aussagen über die Bedeutung eines Elements.



Feedback

Dieser Abschnitt des Dokuments ist eine Überschrift dritter Ebene.



Die Logik von HTML und CSS kann nur nach diesem Schema funktionieren. Ein HTML-Element weiß selbst nicht, wie es aussieht. Die Aussagen über das Aussehen befinden sich auf einer höheren Ebene, im Stylesheet.



Daher kann man auch mit dem class-Attribut in HTML keine Aussagen über das Aussehen treffen. Es ist dazu gedacht, Inhalte genauer zu spezifizieren.



printf("Hello world!"); // '\n' is missing here





Ich schließe mich den Ausführungen dieses Artikels an.









Das class-Attribut alleine macht also absolut keine Aussagen über das Layout, sondern nur über den Inhalt (wenn man es so verwendet wie ich meine, natürlich, und wie es auch in der Spec steht :)).



Der gesamte HTML-Code macht (idealerweise, abgesehen von ein paar Browser-Schwierigkeiten, die einen dazu zwingen, überflüssige divs und dergleichen einzufügen) keine Aussagen über das Layout. Er macht Aussagen über die inhaltliche Bedeutung aller Abschnitte eines Dokuments. Das ist sehr wichtig, und ich betone es noch einmal:



Das HTML-Element soll nicht wissen, wie es aussieht!



Wenn du dir HTML-Code durchschaust, soll nicht ersichtlich sein, wie die Seite aussieht - besser gesagt: aussehen würde - denn das findet auf einer anderen Ebene statt. Es könnten ja 10 verschiedene optionale Stylesheets eingebunden sein, die die Seite jeweils völlig anders präsentieren. Du weißt auch nicht, auf welchem Medium das Dokument ausgegeben wird.



Im Stylesheet ist das class-Attribut nur eine weitere Möglichkeit, Elemente anzusprechen.



.comment { color:green }



Der erste Teil einer CSS-Zuweisung (hier: ".comment") sagt logischerweise *nichts* aus. Nur die gesamte CSS-Zuweisung als ganzes tut das. Sie besagt:



HTML-Elemente der Klasse "comment" sind grün.



>>Sie ist überhaupt nicht stärker als 'textklein', weil sie nämlich nur eine Aussage macht, nämlich, dass es um Notizen/Anmerkungen handelt.



Auch bei diesem Beispiel dasselbe Schema: Der Klassenname alleine ist in der CSS-Zuweisung bloß Teil einer Aussage. ".textklein" als Einzelteil sagt natürlich genausowenig aus wie ".comment".



Aber .comment { color:green } sagt aus "Kommentare sind grün." (Eine noch stärkere und hier bessere Aussage wäre übrigens code.comment { color:green } )



>>Das impliziert aber überhaupt nicht (!), dass sie klein sind. Es geht nicht aus dem Namen hervor.



Soll es auch nicht. Wie gesagt: keine Angaben über das Layout im HTML-Code. Trennung von Struktur (HTML) und Layout (CSS).



Alle HTML-Elemente und HTML-Attribute (außer den nicht-standardisierten und denen, die spätestens bei XHTML 2.0 aus dem Standard verschwinden werden) treffen Aussagen über die inhaltliche Bedeutung eines Elements.





>>Das suggerierst du dir nur, weil für dich anscheinend Anmerkungen immer klein sein.



Nein, eben nicht! Ich spreche hier genau vom Gegenteil! Anmerkungen können alle möglichen Formen annehmen:



.note { border:3px ridge black; background:#EEE; color:black }

oder:

.note { font-style:italic }

oder:

.note { font-size:0.8em }

oder:

.note:before { content:url(rightarrow.png) }

oder:

.note { text-decoration:underline; font-weight:bold }



Mit CSS hast du die wunderbare Möglichkeit in der Hand, diese Information zu kapseln und vom HTML-Code unabhängig zu machen, mit allen daraus resultierenden Vorteilen, wie etwa der einfachen späteren Änderung, dem Einbinden optionaler Stylesheets, der Ausgabe verschiedener Stylesheets für Medien wie Drucker, usw.





>>'notes' macht 1 Aussage, 'textklein' macht 2 Aussagen!!



Beide machen 1 Aussage. Ich frage mich nur, in welchem Zusammenhang du diese Aussage siehst. Im HTML-Kontext sähe es so aus:





vs.





Jeweils eine Aussage. Letztere hat den Nachteil, dass sie Layout-Informationen fix mit dem HTML-Code verbindet und damit die Kapselung völlig aufgibt. Die inhaltliche Bedeutung ist unklar. Was mag sich hinter diesem div-Element verbergen? Eine Anmerkung? Ein Copyright-Hinweis? Eine Untersektion?



Im CSS-Kontext dagegen:



.notes { font-size:smaller }

vs.

.textklein { font-size:smaller }



Die erste Zuweisung macht 1 Aussage, die zweite gar keine.



>>Die Anwendungen der Klasse 'textklein' lassen sich nicht inhaltlich zusammenfassen, sondern lediglich in der Tatsache, dass ein Text klein gebraucht wird.



Wenn sie sich nicht zusammenfassen lassen, sind unterschiedliche Klassennamen angebracht, was für die CSS-Syntax jedoch gar kein Problem darstellt:



.notes, .copyright, .subsection { font-size:smaller }



>>Man hätte auch 'text_8pt_grau' nehmen können



Das wäre noch um eine Stufe bedenklicher. Was, wenn du irgendwann auf die Schriftgröße "0.9em" umsteigen willst?



>>Hat man jedoch eine Website, [...] wo viele verschiedene Elemente in allen möglichen Varianten (!) angeordnet sind, ist eine inhaltliche Benennung nicht nur sinnlos, sondern unmöglich.



Das Beispiel möchte ich sehen. Noch einmal: Es macht nichts, wenn Elemente verschiedene Bedeutung haben, aber gleich aussehen sollen. CSS hat dafür eine platzsparende einfache Syntax (s. Beispiel oben).

geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: