Verzicht aus das class Attribut möglich?
Anton
- css
In einer Webseite existieren zwei Typen von Listen. Während bei Listentyp 1 auf die führenden Punkte verzichtet werden soll, sollen diese im Listentyp 2 angezeigt werden. Die einzige Möglichkeit die ich für die Umsetzung sehe, ist dem Listentyp 1 ein class Attribute zuzuweisen (sieh Quellcode unten).
Wäre das das richtige Vorgehen um solch ein Problem zu lösen oder gibt es die Möglichkeit auf das class-Attribut zu verzichten?
Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
<html>
...
<body>
...
<div id="content">
...
<ul class="listType1">
<li>Listentyp 1 Element 1</li>
<li>Listentyp 1 Element 2</li>
<li>Listentyp 1 Element 3</li>
</ul>
...
<ul>
<li>Listentyp 2 Element 1</li>
<li>Listentyp 2 Element 2</li>
<li>Listentyp 2 Element 3</li>
</ul>
...
</div>
...
</body>
...
</html>
ul {
// Formatierung die für alle Listentypen gilt
}
.listType1{
list-style: none;
}
Die einzige Möglichkeit die ich für die Umsetzung sehe, ist dem Listentyp 1 ein class Attribute zuzuweisen (sieh Quellcode unten).
Wäre das das richtige Vorgehen um solch ein Problem zu lösen
Ja.
Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
Ja klar. Aber vielleicht solltest du einen sprechenderen Bezeichner als »listType1« wählen.
Mathias
Lieber Anton,
Wäre das das richtige Vorgehen um solch ein Problem zu lösen
ja.
oder gibt es die Möglichkeit auf das class-Attribut zu verzichten?
Keine sinnvolle.
Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
Ja. Aber hinsichtlich der Semantik ist "Stil1" absolut nicht zu vertreten.
Liebe Grüße,
Felix Riesterer.
Keine sinnvolle.
Wenn die listen in unterschiedlichen Seitenbereichen vorkommen, ist der Nachfahrenselektor sicher Sinnvoll.
z.B. #content ul {}
und #sitebar ul {}
»» Keine sinnvolle.
Wenn die listen in unterschiedlichen Seitenbereichen vorkommen, ist der Nachfahrenselektor sicher Sinnvoll.
z.B.
#content ul {}
und#sitebar ul {}
Genau das ist das Problem. Die unterschiedlichen Seiten kommen im GLEICHEN DIV-Container vor. Deshalb kann ich leider nicht auf den Nachfahrenselektor zurückgreifen.
Diesbezüglich hatten wir schonmal gesprochen. hier der Link:
Hi,
Wenn die listen in unterschiedlichen Seitenbereichen vorkommen, ist der Nachfahrenselektor sicher Sinnvoll.
Genau das ist das Problem. Die unterschiedlichen Seiten kommen im GLEICHEN DIV-Container vor. Deshalb kann ich leider nicht auf den Nachfahrenselektor zurückgreifen.
Ob die Listen selber nun einer Klasse angehoeren, oder Nachfahren anderer Elemente sind, die per CSS identifizierbar sind, ist ja auch grundsaetzlich erst mal uninteressant.
MfG ChrisB
Wäre das das richtige Vorgehen um solch ein Problem zu lösen oder gibt es die Möglichkeit auf das class-Attribut zu verzichten?
ul:first-child
ul:last-child
Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
Was ist deine Frage? Ist es vertretbar, dass das attribut list-style mehr als einmal vorkommt?
In Anbetracht dessen, dass es über das CSS Equivalent definiert werden kann, ist auch 1 Mal 1 Mal zu viel.
CSS Selbst aber schafft keine Semantik. Es greift höchstens darauf zu.
Und natürlich dürfen so viele und verschiedene Listentypen verwenden werden, wie das Standart erlaubt.
mfg Beat
Hi,
Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
absolut. Die zu stellende Frage lautet: *Warum* unterscheiden sie sich?
Die Antwort gibt Hinweise auf einen passenden Bezeichner - und darauf, ob die Liste zu klassifizieren ist, oder ob es sich um einen Identifier handelt, oder ob vielleicht sogar die CSS-Hausmittel (":first-child", "+" usw.) gewählt werden sollten.
Cheatah
Hi,
»» Ist es hinsichtlich der Semantik eigentlich zu vertreten, dass zwei Listentypen innerhalb einer Seite existieren?
absolut. Die zu stellende Frage lautet: *Warum* unterscheiden sie sich?
»»
Die Antwort gibt Hinweise auf einen passenden Bezeichner - und darauf, ob die Liste zu klassifizieren ist, oder ob es sich um einen Identifier handelt, oder ob vielleicht sogar die CSS-Hausmittel (":first-child", "+" usw.) gewählt werden sollten.
Cheatah
»»
in den AGBs steht als Übersicht am Anfang eine Liste der Paragraphen:
§ 1 Vertragsabschluss
§ 2 Widerruf
§ 3 Ausschluss des Widerrufs
§ 4 Preise
§ 5 Gewährleistung
§ 6 Lieferung
§ 7 Transportschäden
§ 8 Haftung
§ 9 Eigentumsvorbehalt
§ 10 Aufrechnung, Zurückbehaltung
§ 11 Datenschutz
§ 12 Entsorgung von alten Batterien und Elektroschrott
§ 13 Schlussbestimmungen
Diese Liste ist die einzige in meiner ganzen Seite die keine führenden Punkte haben soll, außer der Navigation natürlich. Hierbei handelt es sich um die erste Liste in der Seite agb.html. Demnach wäre der Identifier :first-child dem class-Attribut vielleicht vorzuziehen. Was meint ihr?
Allerdings hab ich in Erinnerung, dass der Kram mit den Identifiern bei manchen Browsern Probleme macht. Ist das richtig?
Hi,
in den AGBs steht als Übersicht am Anfang eine Liste der Paragraphen:
[...]
Diese Liste ist die einzige in meiner ganzen Seite die keine führenden Punkte haben soll, außer der Navigation natürlich. Hierbei handelt es sich um die erste Liste in der Seite agb.html. Demnach wäre der Identifier :first-child dem class-Attribut vielleicht vorzuziehen. Was meint ihr?
Und wenn sie irgendwann mal nicht mehr first-child von irgendwas sein soll, sondern "weiter unten" im Dokument platziert wird ...?
Die Liste zeichnet sich also durch die Eigenschaft aus, eine Liste von Paragraphen zu sein. Also ist bestimmt auch die Vergabe einer ID fuer diese Liste gerechtfertigt.
Dass sie ohne Listenpunkte dargestellt werden soll, ist ein zum Zeitpunkt der Erstellung des HTML-Codes absolut uninteressanter und nebensaechlicher Punkt.
MfG ChrisB
Hi,
in den AGBs steht als Übersicht am Anfang eine Liste der Paragraphen:
das ist erstens offenbar eine sortierte Liste, also ein <ol>. Zweitens ist sie - als eine Art Index - bemerkenswert eindeutig und sollte somit, wie ChrisB schon sagte, eine ID bekommen.
Allerdings hab ich in Erinnerung, dass der Kram mit den Identifiern bei manchen Browsern Probleme macht. Ist das richtig?
Nur, wenn Du ID- und Klassenselektor in einem Simple Selector kombinieren möchtest und das mehr als einmal benötigst. Dann nämlich versagt der IE bis Version 6, sofern Du die Regeln nicht auf unterschiedliche Stylesheets verteilen kannst.
Cheatah
Hi,
»» in den AGBs steht als Übersicht am Anfang eine Liste der Paragraphen:
das ist erstens offenbar eine sortierte Liste, also ein <ol>. Zweitens ist sie - als eine Art Index - bemerkenswert eindeutig und sollte somit, wie ChrisB schon sagte, eine ID bekommen.
Ihr habt mich überzeugt. Ich werde eine ID verwenden.
Eine Frage trotzdem noch:
Es kann ja sein, dass früher order später noch andere Listen hinzukommen, die ebenfalls keine Navigationspunkte enthalten sollen. Würde ich für die Liste mit den Paragraphen statt einer ID eine Klasse verwenden, so könnte ich falls ich später noch andere Listen ohne Punkte formatieren will diesen einfach nur die Klasse zuweisen die die Punkte entfernt.
Mir ist schon irgendwie klar, dass das nicht der richtige Weg ist. Trotzdem wäre ich über ein paar warme Worte von euch diesbezüglich dankbar. Warum sollte ich besser eine ID als eine Klasse verwenden?
Hi,
Es kann ja sein, dass früher order später noch andere Listen hinzukommen, die ebenfalls keine Navigationspunkte enthalten sollen.
Trenne das Aussehen betreffende Entscheidungen von den inhaltlichen.
Würde ich für die Liste mit den Paragraphen statt einer ID eine Klasse verwenden, so könnte ich falls ich später noch andere Listen ohne Punkte formatieren will diesen einfach nur die Klasse zuweisen die die Punkte entfernt.
Wenn sich fuer eine zweite, ebenfalls eindeutig IDentifizierbare Liste ebenfalls der Wunsch ergibt, diese ohne Punkte darstellen zu lassen, wuerdest du diese Formatierung eben auch ueber die ID zuweisen - ggf. sogar einfach ueber entsprechende Erweiterung des Selektors vor der Regel.
Trotzdem wäre ich über ein paar warme Worte von euch diesbezüglich dankbar. Warum sollte ich besser eine ID als eine Klasse verwenden?
Verwende IDs in den Faellen, wo der *Inhalt*, den ein Element beschreibt, eine spezielle IDentifizierende Auszeichnung rechtfertigt.
Verwende hingegen Klassen, wenn mehrere Elemente Inhalte beschreiben, die eine Zusammengehoerigkeit aufweisen.
MfG ChrisB
Hi,
Es kann ja sein, dass früher order später noch andere Listen hinzukommen, die ebenfalls keine Navigationspunkte enthalten sollen. Würde ich für die Liste mit den Paragraphen statt einer ID eine Klasse verwenden, so könnte ich falls ich später noch andere Listen ohne Punkte formatieren will diesen einfach nur die Klasse zuweisen die die Punkte entfernt.
nichts in HTML hat etwas mit Darstellung zu tun. Auch nicht IDs oder Klassen. Niemals wird eine Klasse wegen einer gewünschten Darstellung vergeben.
Wenn Du eine andere Liste findest, die genauso dargestellt werden soll, dann kann das zwei Gründe haben: Entweder denselben wie bei der ersten Liste, oder einen anderen.
Wenn es derselbe Grund ist, so handelt es sich entweder um die selbe bemerkenswert eindeutige Liste mit einem anderen Inhalt, dann bekommt sie eben diese ID. Oder es handelt sich um eine völlig andere Liste, dann war die bemerkenswerte Eindeutigkeit offenbar ein Fehler und es bedarf einer Klassifizierung.
Handelt es sich um einen anderen Grund, so stehst Du erneut vor der Entscheidung, ob er einer bemerkenswerten Eindeutigkeit oder einer Klassifizierung entspricht. Hieraus folgt entweder eine neue ID oder eine HTML-Klasse. Das CSS wird dementsprechend ergänzt.
Warum sollte ich besser eine ID als eine Klasse verwenden?
Weil eine ID der Kennzeichnung eines bemerkenswert eindeutigen Elements dient, welches hier aus meiner Sicht vorliegt.
Cheatah
@@Anton:
Warum sollte ich besser eine ID als eine Klasse verwenden?
Live long and prosper,
Gunnar
Hi,
»» in den AGBs steht als Übersicht am Anfang eine Liste der Paragraphen:
das ist erstens offenbar eine sortierte Liste, also ein <ol>.
Bisher hatte ich eine <ul> statt einer <ol> verwendet. Ist die Vorstellung, dass ich aus semantischer Hinsicht eine <ol> nehmen muß, weil es sich um die Paragraphen 1-n handelt (also ein Aufzählung) richtig?
Wenn die führenden Bullets bei <ul> bzw. die führenden Ziffern bei <ol> sowieso per CSS ausgeblendet werden, ist es doch eigentlich wurscht ob ich eine <ul> oder eine <ol> verwendete.
Ich sehe nicht so wirklich denn Vorteil der mir hier die Verwendung von <ol> bringt. Selbst wenn ich die führenden Ziffern bzw. Bullets nicht ausblenden wollte. Es könnte doch trotzdem sein, dass ich Bullets vorne stehen haben möchte und keine Ziffern. Führende Bullets wären aber nur mit <ul> und nicht mit <ol> möglich.
Tach,
Bisher hatte ich eine <ul> statt einer <ol> verwendet. Ist die Vorstellung, dass ich aus semantischer Hinsicht eine <ol> nehmen muß, weil es sich um die Paragraphen 1-n handelt (also ein Aufzählung) richtig?
die Reihenfolge der Element spielt eine Rolle, also ist es eine geordnete Liste; theoretisch wäre es zum Beispiel denkbar, dass ein User Agent die Elemente einer ungeordneten Liste beim Druck umsortiert um die Druckseiten besser zu füllen.
Wenn die führenden Bullets bei <ul> bzw. die führenden Ziffern bei <ol> sowieso per CSS ausgeblendet werden, ist es doch eigentlich wurscht ob ich eine <ul> oder eine <ol> verwendete.
Das gewünschte Aussehen hat ja hoffentlich auch nicht viel mit dem zugrunde liegenden HTML zu tun.
Führende Bullets wären aber nur mit <ul> und nicht mit <ol> möglich.
Nö, das Aussehen legst du ja in deinem CSS fest, in SELFHTML ist es etwas undeutlich beschrieben, allerdings ist jeder Wert von list-style-type für jegliches Element zulässig (die Auswirkung mag dann noch davon abhängen, dass die Display-Eigenschaft passend gewählt ist).
mfg
Woodfighter
die Reihenfolge der Element spielt eine Rolle, also ist es eine geordnete Liste; theoretisch wäre es zum Beispiel denkbar, dass ein User Agent die Elemente einer ungeordneten Liste beim Druck umsortiert um die Druckseiten besser zu füllen.
Was ist denn ein User Agent bzw. was macht dieser? Das habe ich noch nie gehört.
Demnach müßte man doch für fast jede Liste eine <ol> nutzen. Nehmen wir beispielsweise die Umsetzung der Navigationsleiste. Hier spielt die Reihenfolge ja auch eine Rolle. Der Navigationsbutton "Startseite" soll beispielsweise immer vor dem Navigationsbutton "Über uns" stehen. Also spielt die Reihenfolge hier auch eine Rolle! Trotzdem wird überall für die Umsetzungs einer Navigationsleiste eine <ul> statt einer <ol> verwendet.
Jetzt könnte man natürlich bezugnehmend auf diesen "User Agent" sagen, dass eine Navigationsleiste nicht mit ausgedruckt wird. Dieses Beispiel könnte ich aber auch auf andere Listen übertragen. Natürlich will ich IMMER erreichen das sämtliche Listen in der gleichen Reihenfolge ausgedruckt werden, in dehnen die auch im Quellcode sind. Demanch müßte man ja nurnoch <ol>s verwenden. Dass kann doch nicht sein?
Tach,
Was ist denn ein User Agent bzw. was macht dieser? Das habe ich noch nie gehört.
http://de.wikipedia.org/wiki/User_Agent
Natürlich will ich IMMER erreichen das sämtliche Listen in der gleichen Reihenfolge ausgedruckt werden, in dehnen die auch im Quellcode sind.
Ich nicht, bei meiner Einkaufsliste ist mir die Reihenfolge meist vollkommen egal, aber ich sortiere ja auch mein Bücherregal autobiografisch ;-).
mfg
Woodfighter
Ich nicht, bei meiner Einkaufsliste ist mir die Reihenfolge meist vollkommen egal, aber ich sortiere ja auch mein Bücherregal autobiografisch
Erstellst Du dein Navigationsmenü mit einer <ol>?
Ich verstehe nicht warum für die Navigationsleiste immer <ul> statt <ol> verwendet wird. Bei der Verwendung von <ul> läuft man doch Gefahr, dass der UserAgent (z.B. der Browser) die Menüelemente in der falschen Reihenfolge auch dem Bildschirm ausgibt.
Tach,
Erstellst Du dein Navigationsmenü mit einer <ol>?
im Allgemeinen würde ich eher eine unsortierte Liste vorziehen, die Reiehenfolge ist dabei ja selten wirklich relevant
Ich verstehe nicht warum für die Navigationsleiste immer <ul> statt <ol> verwendet wird. Bei der Verwendung von <ul> läuft man doch Gefahr, dass der UserAgent (z.B. der Browser) die Menüelemente in der falschen Reihenfolge auch dem Bildschirm ausgibt.
Vergiß nicht das Wörtchen "theoretisch", das ich verwendete; ich halte es auch für die nähere Zukunft für eher unrealistisch, dass soetwas passiert. Allerdings weiß ich auch, dass ich für die Darstellung von Webseiten nur Darstellungsempfehlungen aussprechen kann; was der User im Endeffekt wirklich sieht, hängt auch von Faktoren ab, die ich als Webautor nicht beeinflussen kann, darüber breche ich allerdings nicht in Schweiß aus, sondern sehe es als einen der Vorteile des Mediums.
mfg
Woodfighter
@@Anton:
Trotzdem wird überall für die Umsetzungs einer Navigationsleiste eine <ul> statt einer <ol> verwendet.
Ganz Gallien? Nein! Ein von unbeugsamen Galliern bevölkertes Dorf …
Live long and prosper,
Gunnar
die Reihenfolge der Element spielt eine Rolle, also ist es eine geordnete Liste
Das halte allgemein für Quatsch: So gesehen ist wie gesagt jede Liste eine geordnete, sofern sie nicht genausoviel Sinn ergeben würde, wenn man ihre Elemente mit einem Zufallsgenerator vermischen würde. Und das ergeben wohl die wenigsten. Alleine dadurch, dass jedweder Text in einem Dokument üblicherweise sequentiell angeordnet ist - banale Erkenntnis: Texte werden von oben nach unten geschrieben und gelesen, und der Autor gibt den Teilen eine bewusste Reihenfolge -, ergibt sich doch nicht, dass alle Liste »geordnet« sind.
Natürlich habe ich bei einer Navigationsleiste eine *bestimmte* Ordnung. Mal Gunnars Beispiel verallgemeinert:
Startseite - Aktuelles - Über Uns - Unser Angebot - Anfahrt
Die Reihenfolge wird aber nur der Konvention und einer gewissen Struktur halber verwendet. Da ist ja keine feste innere Ordnung drin, ich könnte genauso gut einige Einträge tauschen:
Startseite - Aktuelles - Unser Angebot - Über Uns - Anfahrt
Startseite - Über Uns - Unser Angebot - Anfahrt - Aktuelles
Das bricht zwar u.U. mit einigen Konventionen, aber wäre prinzipiell möglich.
Anderes Beispiel: Profil-Listen, jeweils bestehend aus folgenden Angaben zu einer Person:
Foto - Name - Firma - Position - Wohnort
Da ist natürlich auch eine logische Ordnung drin, die gewisse Konventionen wiedergibt. Aber prinzipiell sind die Elemente auch austauschbar, eine strenge inhärente Ordnung existiert nicht:
Name - Wohnort - Firma - Position - Foto
Für mich ist das nur im sehr, sehr weiten Sinne eine OL.
theoretisch wäre es zum Beispiel denkbar, dass ein User Agent die Elemente einer ungeordneten Liste beim Druck umsortiert um die Druckseiten besser zu füllen.
Nein, das wäre auch theoretisch absoluter Unsinn. Mit dem gleichen Argumente könnte man sagen, dass ein UA auch Kapitel eines Dokuments umsortieren könnte. Aber wieso sollte ein UA einen Text zerstören, indem er alle Überschriften und Absätze durcheinanderwürfelt?? Wieso sollte er es bei einer Liste tun?
Mathias
Hi,
die Reihenfolge der Element spielt eine Rolle, also ist es eine geordnete Liste
Das halte allgemein für Quatsch: So gesehen ist wie gesagt jede Liste eine geordnete, sofern sie nicht genausoviel Sinn ergeben würde, wenn man ihre Elemente mit einem Zufallsgenerator vermischen würde. Und das ergeben wohl die wenigsten.
Dann koennte man wohl sagen, dass die Unterscheidung in UL und OL aus heutiger Sicht, wo man deren Darstellung ueber CSS regelt, eine leicht anachronistische ist - "vor CSS" nutzte man die OL halt, um eine fortlaufende Nummerierung zu erhalten.
Wobei sich dann hier andererseits wiederum die Frage stellt, ob die Nummerierung wirklich eine rein die Darstellung betreffende Sache ist, oder nicht doch direkt ins HTML gehoert - damit auch ohne Formatierung das gleiche ausgedrueckt wird. In der Hinsicht war es dann ja eigentlich schon ein Schuss ins Knie, Attribute wie start (OL) und value (LI) fuer deprecated zu erklaeren, und stattdessen in den Zustaendigkeitsbereich von CSS verlagern zu wollen.
Unkonsequente Wirrkoeppe beim W3C :-)
MfG ChrisB
Ich fasse nochmal zusammen:
Alle Listen der Internetpräsenz die Paragraphen wiederspieglen, sollen keine führenden Punkte besitzen.
Die aktuelle Situation ist die, dass die Liste die die Paragraphen enthält nur ein EINZIGES mal auf der Internetpräsenz vorkommt, nämlich EINMAL innerhalb der Seite agb.html.
Nun habt ihr mir folgendes empfohlen:
Da die Liste mit den Paragraphen nur genau einmal auf der ganzen Internetepräsenz vorkommt und deshalb auch maximal EINMAL PRO HTML-DOKUMENT sollte man das ID-ATTRIBUT verwenden.
Diesbezüglich diese Frage:
Es kann doch durchaus vorkommen, dass im Verlauf späterer Änderungen der Fall Eintritt, dass eine weitere Paragraphenliste in die Seite agb.html integriert werden soll. Die Paragraphenliste soll dann natürlich gleich wie die andere Paragraphenliste per CSS formatiert werden. Wenn ich diesbezüglich vorrausschauend handeln möchte, würde ich doch besser eine Klasse verwenden. Dann müßte ich der zweiten Paragraphenliste in agb.html einfach nur die bereits bestehende Klasse zuweisen und schwups würden beide Paragraphenlisten in agb.html gleich (ohne Punkte) formatiert. Ich kann die "bemerkenswerte Eindeutigkeit" der Praragraphenliste, die die Verwendung von ID rechtfertigt, nicht so ganz nachvollziehen. Zumindest nicht für zukünftige Zwecke, da es durchaus sein kann, dass zukünftig eine weitere Pragraphenliste in ein und das selbe Dokument hinzugefügt wird.
Hi,
Alle Listen der Internetpräsenz die Paragraphen wiederspieglen, sollen keine führenden Punkte besitzen.
Dann koennte man auch "alle" diese Listen einer Klasse zuordnen, die ausdrueckt, dass sie eben Listen von Paragraphen sind.
Da die Liste mit den Paragraphen nur genau einmal auf der ganzen Internetepräsenz vorkommt und deshalb auch maximal EINMAL PRO HTML-DOKUMENT sollte man das ID-ATTRIBUT verwenden.
Das kann man machen, ja.
Es kann doch durchaus vorkommen, dass im Verlauf späterer Änderungen der Fall Eintritt, dass eine weitere Paragraphenliste in die Seite agb.html integriert werden soll. Die Paragraphenliste soll dann natürlich gleich wie die andere Paragraphenliste per CSS formatiert werden. Wenn ich diesbezüglich vorrausschauend handeln möchte, würde ich doch besser eine Klasse verwenden.
Das kann man machen, ja.
ID- und Klassenvergabe schliessen sich uebrigens nicht exklusiv aus - du kannst also durchaus auch beides vergeben.
Ich kann die "bemerkenswerte Eindeutigkeit" der Praragraphenliste, die die Verwendung von ID rechtfertigt, nicht so ganz nachvollziehen.
Wenn du davon ausgehst, dass vielleicht spaeter mal
eine weitere Paragraphenliste in die Seite agb.html integriert werden soll
MfG ChrisB