centrer une div entre celui qui flottait à droite et celui qui flottait à gauche
J'ai une page dans laquelle un en-tête se compose de trois divisions, qui s'est lancée vers la gauche, et qui flottait à la droite, et celui qui est entre eux. J'aimerais que le centre de la div pour être centré, mais malheureusement, float: center
n'existe pas et je ne peux pas juste flotter à gauche et à ajouter rembourrage qu'il faudrait changer en fonction de la taille de la fenêtre.
Est là quelque chose de simple, je suis dominant? Ou comment ferais-je une telle chose?
mise à Jour:
En outre, j'aimerais trouver un moyen de centrage moyen div dans l'espace entre les divs dans le cas où l'air mieux.
- Vous pouvez poster votre CSS et HTML? Aidera avec le processus de débogage.
- C'est plus d'un type général de chose - comment faire flotter un élément à gauche de la page, un élément à droite de la page, et l'un centré au milieu de tous sur la même ligne
Vous devez vous connecter pour publier un commentaire.
Si vous avez deux divs flottants, alors vous savez les marges. Le problème est que le
float:right
div devraient être mis de l'avant le milieu de la div. Donc, fondamentalement, vous aurez:gauche flotté | droit-flotté | centré
Maintenant, sur les marges: généralement, vous pouvez utiliser
margin:0 auto
, droit? Le problème est que maintenant que vous connaissez les valeurs des marges: les divs flottants! Vous avez juste besoin d'utiliser:margin:0 right-floated-width 0 left-floated-width
Qui devrait fonctionner.
Ans plus tard modifier
En attendant, un nouveau jouet dans la ville: flexbox. Le support est assez bon (c'est à dire si vous n'avez pas besoin de l'appui inférieur à 10 IE) et la facilité d'utilisation est un chemin sur les flotteurs.
Vous pouvez voir un très bon flexbox guide ici. L'exemple que vous avez besoin est ici.
En effet, l'important, c'est que la div centré venir après la gauche et la droite divs dans le balisage. Découvrez cet exemple, il utilise
margin-left: auto
etmargin-right: auto
centré sur le div, ce qui provoque pour qu'elle soit centrée.Voici un JS Bin pour tester: http://jsbin.com/agewes/1/edit
margin: 0 auto
n'est pas nécessaire ici..Habituellement, vous pouvez utiliser flexbox au lieu de flotte:
https://jsfiddle.net/h0zaf4Lp/
HTML:
CSS:
L'élément avec l'centrée contenu doit être spécifié après les deux flottait éléments. Après cela, il suffit de définir le moyen de l'élément de
text-align: center
. Le texte de l'centrée élément se presser entre les flotteurs.Voir ici:
http://jsfiddle.net/calvintennant/wjjeR/
display: inline
oudisplay: inline-block
.Essayez ceci (assurez-vous d'utiliser au mieux les noms de classe):
Le centre div place entre les deux flotteurs.
Si vous souhaitez créer une gouttière entre centré div et les deux flotteurs, puis l'utilisation de la marge sur les chars, pas sur le centre de div.
En raison de "zoom", le CSS ne sera pas validé, mais que la mise en page de travail dans IE 5.5 et 6.
Noter que la source de l'ordre est important ici: les deux flotteurs doit venir en premier, puis votre "centré" div.
Dans certains cas, vous avez une limite et ne peut pas changer la page de balisage en déplaçant le milieu div après le bouton droit de la div flottant. Dans ce cas, suivez ces instructions:
position: relative
position: absolute; left: [containerWidth - middle-width /2]
J'espère que vous avez compris l'idée.
Une solution simple, sans avoir à changer l'ordre des divs (parfois nous ne pouvons pas le faire) pourrait être un positionnement absolu pour le centre div comme suit:
CSS:
HTML:
https://jsfiddle.net/Helioz/nj548y0g/