Es stellte sich heraus, dass ich bei der Arbeit einmal auf ein ungewöhnliches Verhalten in der UL-Liste gestoßen bin.
Außerdem habe ich gestern den Beitrag http://bbs.blueidea.com/thread-2984871-1-1.html gesehen, also verschiedene Attribute des Listenstils getestet und ein interessantes Phänomen entdeckt.
Werfen wir zunächst einen Blick auf die Erklärung des Listenstils im CSS-Handbuch.
Definition und Verwendung
Das Kurzattribut list-style legt alle Listeneigenschaften in einer Deklaration fest.
veranschaulichen
Bei dieser Eigenschaft handelt es sich um eine Abkürzungseigenschaft, die alle anderen Listenstileigenschaften abdeckt. Da es für alle Elemente mit einer List-Item-Anzeige gilt, kann es nur für li-Elemente in normalem HTML und XHTML verwendet werden. Tatsächlich kann es jedoch auf jedes Element angewendet werden und wird vom List-Item-Element geerbt.
Die folgenden Eigenschaften können der Reihe nach festgelegt werden:
•Listenstiltyp
•list-style-position
•list-style-image
Es ist nicht erforderlich, einen der Werte festzulegen. Beispielsweise ist auch „list-style:circle inside;“ zulässig. Nicht festgelegte Eigenschaften verwenden ihre Standardwerte.
Standardwert: Disc außerhalb keine
Bei der täglichen Arbeit ist es häufig erforderlich, einen CSS-Reset für ul und li durchzuführen, um die Listensymbole auszublenden.
Die am häufigsten verwendete Schreibweise ist Ul,li,ol{list-style:none;} (manche Leute verwenden auch ul,li,ol{list-style-type:none;})
Codefeld ausführen
[Strg+A Alle Tipps auswählen: Sie können zuerst einen Teil des Codes ändern und dann Ausführen drücken]
Es gibt kein Problem mit dieser Seite in IE6, 7, 8 und FF.
Was wir jedoch nicht ignorieren können, ist, dass list-style: drei Attribute enthält:
Listenstiltyp
Listenstil-Position
Listenstil-Bild
Wenn Sie diese drei Attribute nicht beachten, kann der Listenstil manchmal Probleme verursachen.
Wenn ul beispielsweise nach dem Floating display:inline benötigt, um das Doppelmargenproblem in IE6 zu lösen, passiert etwas Seltsames:
Codefeld ausführen
[Strg+A Alle Tipps auswählen: Sie können zuerst einen Teil des Codes ändern und dann Ausführen drücken]
.ul01{float:left;display:inline;}
.ul01,.ul01 li{list-style:none;}
Die obige Seite ist in IE8 und ff immer noch normal, aber in IE6 und 7 gibt es einen Abstand zwischen der Innenseite von ul und li.
Es ist ersichtlich, dass bei der Definition von list-style:none das Listensymbol zwar nicht angezeigt wird, seine Position jedoch in IE6 und 7 verbleibt.
Sehen Sie, welche Attribute dieser UL in FF hat
Wie aus dem Bild hervorgeht, hat die Definition von list-style:none in CSS keinen Einfluss auf die Position des Listenstils. Dies ist immer noch die Standardeinstellung des FF-Browsers und der Wert liegt außerhalb.
In IE6 und 7 ist list-style-position: inside wahrscheinlich die Standardeinstellung
Um dies zu bestätigen, habe ich list-style:none in list-style:none innerhalb von none geändert und es erneut getestet
Codefeld ausführen
[Strg+A Alle Tipps auswählen: Sie können zuerst einen Teil des Codes ändern und dann Ausführen drücken]
Nachdem Sie es ausgeführt haben, können Sie feststellen, dass es sich in IE6 und 7 genauso verhält wie list-style:none.
Daher vermute ich, dass in IE6 und 7, wenn UL über die Attribute float:left und display:inline verfügt und list-style:none festgelegt ist, list-style-position ebenfalls standardmäßig auf inside gesetzt ist;
Ich bin also zu dem Schluss gekommen, dass unter IE6 und 7, wenn UL nicht über float:left;display:inline;: verfügt.
Unabhängig davon, ob das Attribut list-style:none vorhanden ist, werden die Listensymbole ausgeblendet und belegen keinen Platz (5, 6 im folgenden Code).
Wenn UL das Attribut float:left;display:inline; hat
list-style:none, das Listensymbol ist ausgeblendet, aber die Position bleibt bestehen (list-style-position:inside); (UL1, ul3 im Code unten)
list-style:none ist nicht gesetzt; das Listenzeichen ist ausgeblendet und belegt keine Position (list-style-position:outside) (Code UL4)
UL02 schnitt in allen am Test teilnehmenden Browsern relativ gut ab.
Dieser letzte Codeabschnitt vergleicht die Leistung des Listenstils unter verschiedenen Umständen, insbesondere die Leistung von 4, 5 und 6 unter IE6 und 7.
Codefeld ausführen
[Strg+A Alle Tipps auswählen: Sie können zuerst einen Teil des Codes ändern und dann Ausführen drücken]
Durch den Vergleich der Leistungsergebnisse des obigen Codes denke ich:
Solange in Firefox list-style-type „none“ ist, kann list-style unabhängig davon, ob der Wert „list-stype-position“ außerhalb oder innerhalb liegt, gut ausgeblendet werden. In IE6 und 7 ist nur „list-style:none“ festgelegt . reicht nicht aus, um alle Probleme zu lösen, daher ist es meiner Meinung nach besser, list-style:none außerhalb von none zu verwenden, wenn CSS zurückgesetzt wird