Je voudrais créer une position: fixed;
fenêtre contextuelle centrée sur l'écran avec une largeur et une hauteur dynamiques. J'ai utilisé margin: 5% auto;
pour ça. Sans position: fixed;
cela, il se centre bien horizontalement, mais pas verticalement. Après l'ajout position: fixed;
, il n'est même pas centré horizontalement.
Voici l'ensemble complet:
.jqbox_innerhtml {
position: fixed;
width: 500px;
height: 200px;
margin: 5% auto;
padding: 10px;
border: 5px solid #ccc;
background-color: #fff;
}
<div class="jqbox_innerhtml">
This should be inside a horizontally
and vertically centered box.
</div>
Comment centrer cette case à l'écran avec CSS?
la source
Voici une approche moderne pour centrer horizontalement un élément avec une largeur dynamique - cela fonctionne dans tous les navigateurs modernes; le support peut être vu ici .
Exemple mis à jour
Pour le centrage vertical et horizontal, vous pouvez utiliser les éléments suivants:
Exemple mis à jour
Vous pouvez également ajouter d'autres propriétés préfixées par le fournisseur (voir les exemples).
la source
Ou ajoutez simplement
left: 0
etright: 0
à votre CSS d'origine, ce qui le fait se comporter de la même manière qu'un élément normal non fixe et la technique de marge automatique habituelle fonctionne:Notez que vous devez utiliser un HTML (X) valide
DOCTYPE
pour qu'il se comporte correctement dans IE (que vous devriez bien sûr avoir de toute façon ..!)la source
right
propriété si elleleft
est également définie! ( msdn.microsoft.com/en-us/library/… note queleft
etright
ne prend en charge que "partiellement" dans IE7). OK, je concède que cette solution n'est pas bonne si le support IE7 est important, mais une excellente astuce à retenir pour l'avenir :)Ajoutez un conteneur comme:
Ensuite, mettez votre boîte dans ce div fera le travail.
la source
display: inline-block
pour que cela fonctionne. (Certaines autres valeurs d'affichage peuvent également fonctionner, telles quetable
.)margin:auto;
et de changer la largeur àwidth:50%
ouwidth:400px
. le contenu peut alors être du texte droit, des éléments de bloc ou des éléments en ligne.Ajoutez simplement:
la source
position: fixed
, c'est de cela qu'il s'agit. Si je me trompe, veuillez modifier votre réponse pour inclure un extrait de code exécutable.position: fixed
, à condition de définir l'élémentmax-width
ouwidth
sur l'élément.à l'intérieur, il peut y avoir n'importe quel élément de largeur, hauteur ou sans diffenet. tous sont centrés.
la source
Cette solution ne vous oblige pas à définir une largeur et une hauteur pour votre div popup.
http://jsfiddle.net/4Ly4B/33/
Et au lieu de calculer la taille de la fenêtre contextuelle, et moins la moitié vers le haut, javascript redimensionne le popupContainer pour remplir tout l'écran ...
(100% hauteur, ne fonctionne pas lors de l'utilisation de display: table-cell; (qui est nécessaire pour centrer quelque chose verticalement)) ...
De toute façon ça marche :)
la source
Ne fonctionnait pas sous IE7.
Changé en
A commencé à fonctionner mais dans les autres navigateurs, il ne fonctionne plus! Donc utilisé de cette façon pour IE7 ci-dessous
la source
Vous pouvez essentiellement l' envelopper dans une autre
div
et mettre sonposition
àfixed
.la source
J'ai utilisé
vw
(largeur de la fenêtre d'affichage) etvh
(hauteur de la fenêtre d'affichage). viewport est votre écran entier.100vw
est la largeur totale de vos écrans et100vh
la hauteur totale.la source
Pour fixer la position, utilisez ceci:
la source
Une réponse possible :
la source
Essayez d'utiliser ceci pour les éléments horizontaux qui ne se centreront pas correctement.
width: calc (width: 100% - width else else is off centing it )
Par exemple, si votre barre de navigation latérale mesure 200 pixels:
la source
J'utilise juste quelque chose comme ça:
Il centre la boîte de dialogue à la fois horizontalement et verticalement pour moi, et je peux utiliser différentes largeurs et hauteurs pour s'adapter à différentes résolutions d'écran pour le rendre réactif, avec des requêtes multimédias.
Pas une option si vous devez toujours fournir un support pour les navigateurs où les propriétés personnalisées CSS ou
calc()
ne sont pas prises en charge (vérifiez sur caniuse.)la source
Celui-ci a fonctionné le mieux pour moi:
la source
La seule solution infaillible consiste à utiliser la table align = center comme dans:
Je ne peux pas croire que les gens du monde entier gaspillent ces quantités copieuses en un temps idiot pour résoudre un problème aussi fondamental que le centrage d'un div. La solution CSS ne fonctionne pas pour tous les navigateurs, la solution jquery est une solution de calcul logiciel et n'est pas une option pour d'autres raisons.
J'ai perdu trop de temps à plusieurs reprises pour éviter d'utiliser la table, mais l'expérience m'a dit d'arrêter de la combattre. Utilisez le tableau pour centrer div. Fonctionne tout le temps dans tous les navigateurs! Ne vous inquiétez plus.
la source
position:fixed
.