Comment est-il possible de créer un vrai navigateur div div CSS central, par exemple, à utiliser dans une page d'attente?
J'ai essayé cette astuce css 2007 -Comment centrer un objet exactement au centremais comme vous pouvez le voir sur mon JSFiddle du code, ce n'est pas 100% centre.
HTML:
<div class="center">
<p>Text</p>
</div>
CSS:
.center{
position: fixed;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -100px;
border:5px solid black;
}
Cette technique nécessite que l'élément ait une largeur et une hauteur fixes. Vous ne définissez pas la largeur et la hauteur. Sur la base de votre bordure et de vos marges, pour la centrer, la largeur devrait être de 190 pixels et la hauteur, de 90 pixels. L'utilisation de line-height
et text-align
en combinaison avec une largeur et une hauteur fixes rend le texte et la bordure centrés.Essayez-le.
CSS
.center{
position: fixed;
top: 50%;
left: 50%;
width: 190px;
height: 90px;
line-height: 90px;
text-align: center;
margin-top: -50px;
margin-left: -100px;
border:5px solid black;
}
Vous pouvez le faire avec du CSS pur:
html {
width: 100%;
height: 100%;
}
body {
min-width: 100%;
min-height: 100%;
}
div.centeredBlueBox {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
margin: auto;
width: 300px;
height: 200px;
background-color: blue;
}
Il est important de donner des valeurs concrètes (par exemple: 300px
) et non dérivées (telles que: auto
ou 30%
) pour width
et height
.
<div style='position:absolute; left:50%; top:50%; margin-left:(-)width_of_your_element/2px; margin-top:(-)height_of_your_element/2px'>
par exemple
<!DOCTYPE html>
<html>
<body>
<div style='border:1px solid; width:200px; height:200px; position:absolute; left:50%; top:50%; margin-left:-100px; margin-top:-100px'>hallo</div>
</body>
</html>
Ceci est un exemple supplémentaire avec un régleur de hauteur que j'ai créé pour IE alignement vertical. La plage supplémentaire a un alignement vertical: milieu.
<style type="text/css">
html, body {
margin: 0;
padding: 0;
overflow:hidden;
text-align:center;
}
html, body{
height: 100%;
}
#loginContainer {
margin: 0 auto;
display: table;
min-width:300px;
text-align:left;
height: 85%; /* vertical align not exact in the middle */
}
#loginContainer .label{
width: 25%;
float:left;
white-space:nowrap;
line-height:20px;
}
#loginContainer h2{
border-bottom:2px solid #B4C3E1;
border-width:0 0 3px;
padding:2px 4px;
}
.mainHeader {
position:absolute;
top:0;
left:0;
text-align:center;
width:100%;
font-size:2em;
white-space:nowrap;
}
.detailsText {
border-top:1px solid #F60;
margin-top:5px;
clear:both;
}
/* layout horizontal and vertical */
.horizontalBox {
display: table-cell;
vertical-align: middle; /* not seen by IE6-7 */
height: 100%;
white-space: nowrap;
}
.verticalBox {
padding: 55px 0 0 0; /* 55px height of logo */
}
.rightText {
text-align:right;
}
</style>
<!--[if lte IE 8]>
<style type="text/css">
#loginContainer {
width:300px; /* minimum width */
}
.horizontalBox {
text-align: center;
}
.verticalBox, .heightSetter {
display: inline-block;
vertical-align: middle;
text-align: left;
zoom:1;
}
.heightSetter {
height: 100%;
}
.verticalBox {
display: inline;
height: 0;
}
.heightSetter {
width: 1px;
}
</style>
<![endif]-->
<div class="mainHeader">This is the Header content</div>
<div id="loginContainer">
<div class="horizontalBox">
<div class="verticalBox">
<h2>My header of the vertical box</h2>
<p>My Content</p>
</div>
<span class="heightSetter"></span>
</div>
</div>
Définissez le type display
de la DIV
sur table-cell
. Ensuite, vous pouvez utiliser vertical-align
normal, comme un élément TD
.
<div style="display: table-cell; vertical-align: middle; height: 200px;">
Centered Text
</div>
Regardezthis; un article assez intelligent.
C'est ce que j'ai fait
<html>
<head>
<title>Page Title</title>
<style>
.center { margin:auto; width:500px; background-color:green; }
</style>
</head>
<body>
<div class="center">
<p>Help me please</p>
</div>
</body>
</html>
J'espère que cela t'aides.
C'est ma solution:
<div style="position: absolute; left: 50%; height: 100%;">
<div style="position: relative; left: -50%; display: table; height: 100%;">
<div style="display: table-cell; vertical-align: middle;">
//your content here
</div>
</div>
</div>
Cela fonctionne dans beaucoup de navigateurs. Et il n'y a pas de problème avec le contenu ajouté après la mise en page.