[Navigateurs participant au test : IE6/IE7/IE8/FF3.5/OP9.6/SF4/Chrome2]
[Système d'exploitation : Windows]
Ce tutoriel vise à séparer le style et le comportement de lightBox et à réduire le travail de JS sous divers aspects (masquage plein écran, sélection de masquage dans ie6, centrage bidirectionnel, contenu adaptatif en hauteur, etc.).
D'abord le code :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="auteur" content="Chomo" />
<link rel="start" href=" http://www.14px.com " title="Accueil" />
<title>Blindage plein écran, lightBox à centrage automatique</title>
<style type="text/css">
* { marge :0 ; remplissage :0 ;
html, corps { hauteur : 100 % ; débordement : caché ; police : 12px/1.5 simsun ;}
.maPage { hauteur de ligne : 3 ; débordement : auto ; largeur : 100 % ;
.lightBox,
.popupCover,
.popupIframe,
.popupComponent { position : absolu ; gauche : 0 ; haut : 0 ; hauteur : 100 % ;}
.popupComponent { z-index:2; affichage:aucun;}
.popupIframe { display:aucun; _display:block; _filter:alpha(opacity=0);}
.popupCover { arrière-plan : #000 ; opacité : 0,7 ; *filtre : alpha (opacité = 70);}
.lightBox { text-align:center; débordement:auto;}
.lightBoxContent { display:inline-block; *display:inline; zoom:300px; background:#fff;
.lightBoxMaxHeight { display:inline-block; vertical-align:middle height:100%; *height:99.5%; overflow:hidden;
.lightBoxWrapper { display:inline-block; *display:inline;text-align:left;}
.lightBoxClose { couleur:#f00;}
.lightBoxSubmit { margin-top:10px; padding-top:5px; border-top:1px solid #ccc;}
.lightBoxSubmit input { font-size:12px; padding:0 10px;
</style>
</tête>
<corps>
<div class="popupComponent" id="lightBox">
<iframe class="popupIframe"></iframe>
<div class="popupCover"></div>
<div class="lightBox">
<span class="lightBoxMaxHeight"></span>
<div class="lightBoxContent">
<div class="lightBoxWrapper">
Le texte est centré lorsque l'invite fait moins d'une ligne<br />
</div>
<div class="lightBoxSubmit">
<input type="button" value="OK" onclick="hideLayer('lightBox')" />
<input type="button" value="Annuler" onclick="hideLayer('lightBox')" />
</div>
</div>
</div>
</div>
<div class="popupComponent" id="lightBox2">
<iframe class="popupIframe"></iframe>
<div class="popupCover"></div>
<div class="lightBox">
<div class="lightBoxContent">
<div class="lightBoxWrapper">
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
Lorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écranLorsque le contenu a dépassé la hauteur d'un écran<br />
</div>
<div class="lightBoxSubmit">
<input type="button" value="OK" onclick="hideLayer('lightBox2')" />
<input type="button" value="Annuler" onclick="hideLayer('lightBox2')" />
</div>
</div>
<span class="lightBoxMaxHeight"></span>
</div>
</div>
<div class="maPage">
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
<div style="text-align:center;"><input type="button" value="Bouton sur le premier écran" onclick="showLayer('lightBox')" /></div>
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
<select><option>Une sélection utilisée pour tester si elle peut être couverte dans IE6</option></select><br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
<select><option>Une autre sélection pour tester si elle peut être couverte dans IE6</option></select><br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
<div style="text-align:center;"><input type="button" value="Bouton situé dans le deuxième écran" onclick="showLayer('lightBox')" /><input type="button" valeur ="Lorsque le contenu dépasse la hauteur d'un écran" onclick="showLayer('lightBox2')" /></div>
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
</div>
<script>
fonction showLayer(id) {
document.getElementById(id).style.display = "block";
}
fonction hideLayer(id) {
document.getElementById(id).style.display = "aucun";
}
</script>
</corps>
</html>
Cette lightBox possède les caractéristiques suivantes, vous pouvez la tester en modifiant le code ^-^ :
Si vous êtes intéressé, les conseils suivants qui composent cette lightBox sont disponibles pour votre référence :
1. Méthode de masquage plein écran :
A. Masquez la barre de défilement de html/body.
B. Utilisez un div comme masque, puis utilisez un autre div pour créer une page avec des barres de défilement, une en haut et une en bas.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns=" http://www.w3.org/1999/xhtml ">
<tête>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="auteur" content="Chomo" />
<link rel="start" href=" http://www.14px.com " title="Accueil" />
<title>Méthode de masquage plein écran</title>
<style type="text/css">
* {
margin:0; padding:0; /*--- Simple réinitialisation CSS, on dit que ce n'est pas efficace, veuillez le remplacer par un efficace---*/
}
html, corps {
height:100%; /*--- Avec cette hauteur, sous IE6, il est efficace de définir height:100% pour le sous-objet du corps---*/
overflow:hidden; /*--- Tue la barre de défilement générée par html ou body---*/
}
.page {
hauteur de ligne : 3 ;
overflow:auto; /*--- La barre de défilement en dépend---*/
width:600px; height:400px; background:#f60; /*--- Faisons cela aussi grand pour l'instant afin que tout le monde puisse voir clairement---*/
position:relative; left:50px; top:50px; /*--- Déplacez-le un peu pour que tout le monde puisse voir clairement, supprimez-le et l'effet de base du masque est obtenu---*/
}
.couverture {
position : absolue ;
largeur : 600 px ; hauteur : 400 px ; arrière-plan : #000 ;
opacité : 0,7 ; *filtre : alpha (opacité = 70 );
indice z : 2 ;
}
</style>
</tête>
<corps>
<div class="couverture"></div>
<div classe="page">
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />Faire semblant d'être riche en contenu<br />
</div>
</corps>
</html>