Les questions sur certains éléments de HTML ont été soulevées dans de nombreux endroits, et dans le projet il y a quelque temps, il m'est arrivé de rencontrer deux petites questions sur certains éléments. Résumons-les ici. Le premier est le plus célèbre: le problème général que la couche flottante div ne peut pas couvrir l'élément sélectionné sous IE6. Tout d'abord, l'exemple suivant est fourni: Remarque: Si vous le regardez sous Firfox et IE7
Les questions sur certains éléments de HTML ont été soulevées dans de nombreux endroits, et dans le projet il y a quelque temps, il m'est arrivé de rencontrer deux petites questions sur certains éléments. Résumons-les ici.
Articles connexes: Solutions au problème de la couche div étant couverte par la couche flash
Le premier est le plus célèbre: le problème général que la couche flottante div ne peut pas couvrir l'élément sélectionné sous IE6. Tout d'abord, l'exemple suivant est fourni:
Remarque: Si vous regardez à la fois sous Firfox et sous IE7, le résultat est le même: les couches flottantes A, B et C peuvent être une réalité normale, c'est-à-dire que l'élément sélectionné ci-dessous est bloqué. Cependant, sous IE6, il y a trois situations différentes, la couche flottante A est toujours normale; Couche flottante B Le corps principal couvre l'élément de sélection, mais le cadre de la couche flottante ne peut pas couvrir l'élément de sélection; La couche flottante 3 ne peut pas du tout couvrir l'élément de sélection. La raison de ce phénomène est que dans IE6, le navigateur considère l'élément sélectionné comme un élément au niveau de la fenêtre. À l'heure actuelle, DIV ou d'autres éléments ordinaires ne peuvent pas couvrir l'élément de sélection, quelle que soit la hauteur de l'index z, mais la sélection peut être bloquée par un iframe qui est également un élément au niveau de la fenêtre. C'est ainsi que l'exemple ci-dessus. La couche flottante C n'est qu'une couche flottante div. Je n'en parlerai pas plus ici, regardez simplement la structure de la couche flottante B:
<div class = contendiv> <iframe class = maskiframe> </ iframe> <div class = MainDiv> couche flottante b </div> </div>
Utilisez une div pour assembler le contenu réel et un élément iframe, et leur style correspondant est:
.ContainDiv {position: Absolute; En haut: 140px; Gauche: 60px; } .maskiframe {position: absolue; gauche: -1px; en haut: -1px; z-index: -1; bordure: 1px solide # 000; hauteur: 50px; largeur: 50px; _Height: 48px; _Width: 48px;}. Maindiv {background: # eBac3b; width: 50px; height: 50px;}
La couche flottante B utilise Iframe pour positionner et définir absolument Z-Index: -1; Dans CONTAINSDIV, puis permet au Maindiv qui met vraiment le contenu ci-dessous pour couvrir l'IFRAME. À l'heure actuelle, l'IFRAME peut couvrir l'élément sélectionné et fait indirectement que le Maindiv couvre également l'élément sélectionné. Cependant, la couche flottante B est toujours imparfaite, car la bordure iframe de la couche flottante B utilise ici la bordure iframe. L'IFRAME lui-même peut couvrir la sélection, mais sa bordure ne peut pas, donc la couche flottante B se produit.
La couche flottante A résout ce problème et a réalisé une réflexion idéale. Il est fondamentalement la même que la couche flottante B, sauf qu'elle rend l'iframe plus que le maindiv vers le haut, le bas, la gauche et la droite, puis donne la bordure du Maindiv. De cette façon, la frontière flottante est fournie par Maindiv, et l'ensemble du Maindiv et la frontière sont sur l'iframe, donc l'effet idéal est atteint!
Le deuxième problème avec SELECT est le problème de génération dynamiquement des options d'options sous IE. Voir l'exemple de la deuxième question ci-dessus. Lorsque vous cliquez sur le lien (FF limité), vous pouvez ajouter 3 éléments d'option à l'élément sélectionné sous FF, mais il n'est pas possible sous IE; Lorsque vous cliquez sur le lien (général), vous pouvez ajouter 3 éléments d'option à l'élément sélectionné sous IE et FF. La raison en est que le premier lien est d'ajouter l'élément d'option via l'attribut innerHTML de l'élément sélectionné.
document.getElementById (addSelect) .InnerHtml = ABC;
Il n'y a aucun problème avec cela dans FF, mais IE ne peut pas ajouter d'options d'éléments enfants à l'élément sélectionné via cette méthode, mais la méthode fournie par le deuxième lien est requise:
document.getElementById (addSelect) .options.add (nouvelle option (a, a, false, true));