Resulta que una vez encontré un comportamiento anormal en la lista UL en el trabajo.
Además, ayer vi la publicación http://bbs.blueidea.com/thread-2984871-1-1.html , así que probé varios atributos del estilo de lista y descubrí un fenómeno interesante.
Primero echemos un vistazo a la explicación del estilo de lista en el manual de CSS.
Definición y uso
El atributo abreviado de estilo de lista establece todas las propiedades de la lista en una sola declaración.
ilustrar
Esta propiedad es una propiedad abreviada que cubre todas las demás propiedades de estilo de lista. Dado que se aplica a todos los elementos con visualización de elementos de lista, solo se puede usar en elementos li en HTML y XHTML normales, pero de hecho se puede aplicar a cualquier elemento y lo hereda el elemento de elemento de lista.
Las siguientes propiedades se pueden configurar en orden:
•tipo-estilo-lista
• posición-estilo-lista
•imagen-estilo-lista
No es necesario establecer uno de los valores. Por ejemplo, también se permite "list-style:circle inside;". Las propiedades que no están configuradas utilizan sus valores predeterminados.
Valor predeterminado: disco fuera ninguno
En el trabajo diario, a menudo es necesario restablecer CSS en ul y li para ocultar los símbolos de la lista.
La forma de escritura más utilizada es Ul,li,ol{list-style:none;} (algunas personas también usan ul,li,ol{list-style-type:none;})
Ejecutar cuadro de código
[Ctrl+A Seleccionar todos los consejos: primero puede modificar parte del código y luego presionar Ejecutar]
No hay ningún problema con esta página en IE6, 7, 8 y FF.
Pero lo que no podemos ignorar es que list-style: contiene tres atributos:
tipo de estilo de lista
posición-estilo-lista
estilo-lista-img
Si no presta atención a estos tres atributos, el estilo de lista a veces causará problemas.
Por ejemplo, cuando ul, después de flotar, necesita display:inline para resolver el problema del doble margen en IE6, sucede algo extraño:
Ejecutar cuadro de código
[Ctrl+A Seleccionar todos los consejos: primero puede modificar parte del código y luego presionar Ejecutar]
.ul01{float:izquierda;display:inline;}
.ul01,.ul01 li{estilo de lista:ninguno;}
La página anterior sigue siendo normal en IE8 y ff, pero en IE6 y 7, hay una distancia entre el interior de ul y li.
Se puede ver que cuando definimos estilo de lista: ninguno, aunque el símbolo de lista no aparece, su posición aún permanece en IE6 y 7.
Vea qué atributos tiene este UL en FF
Como se puede ver en la imagen, cuando el estilo de lista: ninguno está definido en CSS, no tiene ningún efecto en la posición del estilo de lista. Sigue siendo la configuración predeterminada del navegador FF y el valor está fuera.
En IE6 y 7, es probable que list-style-position: inside sea el valor predeterminado
Para confirmar esto, cambié list-style:none a list-style:none dentro de none y lo probé nuevamente.
Ejecutar cuadro de código
[Ctrl+A Seleccionar todos los consejos: primero puede modificar parte del código y luego presionar Ejecutar]
Después de ejecutarlo, puede encontrar que en IE6 y 7 se comporta exactamente igual que el estilo de lista: ninguno.
Así que especulo que en IE6 y 7, cuando UL tiene atributos float:left y display:inline y list-style:none está configurado, list-style-position también está predeterminado en inside;
Entonces, la conclusión a la que llegué es que bajo IE6 y 7, cuando UL no tiene float:left;display:inline;:
Independientemente de si existe el atributo estilo de lista: ninguno, los símbolos de la lista están ocultos y no ocupan espacio (5, 6 en el código siguiente)
Cuando UL tiene el atributo float:left;display:inline;
estilo de lista: ninguno, el símbolo de la lista está oculto, pero la posición aún permanece (posición de estilo de lista: dentro (UL1, ul3 en el código siguiente)
estilo de lista: ninguno no está configurado; el carácter de la lista está oculto y no ocupa una posición (posición de estilo de lista: afuera) (código UL4)
UL02 funcionó relativamente bien en todos los navegadores que participaron en la prueba.
Este último fragmento de código compara el rendimiento del estilo de lista en diversas circunstancias, especialmente el rendimiento de 4, 5 y 6 en IE6 y 7.
Ejecutar cuadro de código
[Ctrl+A Seleccionar todos los consejos: primero puede modificar parte del código y luego presionar Ejecutar]
Al comparar los resultados de rendimiento del código anterior, creo:
En Firefox, siempre que el tipo de estilo de lista sea ninguno, sin importar que el valor de la posición de tipo de lista esté afuera o dentro, el estilo de lista se puede ocultar bien. En IE6 y 7, solo se establece estilo de lista: ninguno. , no es suficiente para resolver todos los problemas, así que creo que es mejor usar list-style:none fuera de none cuando se restablece CSS.