Dans Firefox (version 8.0), si je spécifie un élément à display: -moz-box
et margin: auto
, l'élément n'est plus placé au centre de son élément parent. Cela fonctionne dans Chrome. Est-ce un problème de Firefox, ou est-ce que je manque quelque chose? Comment puis-je résoudre ce problème? Une solution de contournement peut être l'ajout d'un élément wrapper div
et la définition de display
comme block
, mais c'est moche.Margin: l'auto ne fonctionne pas si l'affichage est encadré dans Firefox
Répondre
-moz-box
est le type d'affichage pour les boîtes XUL dans Firefox. Ils ne suivent pas un modèle de boîte CSS normal, donc ne vous centrez pas automatiquement lorsque vous utilisez des marges automatiques. Donc le comportement ici est correct dans Firefox aussi loin que ça se passe: c'est juste le comportement des boîtes XUL. Notez que -webkit-box
(ce que j'imagine être ce que vous entendez par "fonctionne dans Chrome") est une chose totalement différente: c'est une implémentation de l'un des premiers brouillons flexbox CSS. Il partage quelques caractéristiques superficielles avec -moz-box
et d'ailleurs avec les brouillons flexbox actuels, mais est autrement complètement différent. Maintenant, la vraie question est ... qu'est-ce que vous essayez réellement de faire?
Merci pour l'explication, @BorisZbarsky! J'ai donc '' 'Je veux mettre au centre de'
Ouais, 'inline-block' ressemble à la façon d'y aller. Il aurait l'avantage supplémentaire de travailler dans IE et Opera, et pas seulement Gecko et WebKit. –
Est-ce que '-webkit-box' est une chose totalement différente? Selon MDN, [Firefox supporte Flexbox 2009] (https://developer.mozilla.org/en-US/docs/CSS/Flexbox#Compatibility). La vraie raison pour laquelle 'margin: auto' ne fonctionne pas dans Firefox est que Firefox traite toutes les flexbox comme des flexboxes en ligne. –
J'ai créé un exemple minimal et testé sous Firefox 7.0.1 unde ubuntu:
<div style="border:1px solid blue;width:200px;height:200px;float:left">
<div style="display:block; margin:auto;width:100px;height:50px;">display: block</div>
</div>
<div style="border:1px solid blue;width:200px;height:200px;float:left">
<div style="display:-moz-box; margin:auto;width:100px;height:50px;">display: -moz-box</div>
</div>
Le résultat est ci-dessous. J'espère que cette information vous aide.
Merci, @Simon! Cela illustre très bien le problème. – ushadow
According to the official W3C specmargin: auto;
devrait affecter flex
éléments de la même manière qu'il affecte block
éléments. La mise en œuvre de Firefox est un début qui n'est pas actuellement en ligne avec la spécification. J'ai été informé qu'une nouvelle implémentation atterrira autour de la version 18.
Le morceau de spec que vous avez référencé concerne en réalité les effets de 'margin: auto' sur les objets _within_ d'un élément avec' display: flex' - il ne dit rien de son comportement sur l'élément 'display: flex' lui-même. Donc je ne pense pas que ce morceau de spécification soit pertinent à cette question. (De plus, cette question concerne '-moz-box', pas' flex' - comme Boris l'a indiqué dans sa réponse, ces deux modèles de mise en page sont au mieux des parents éloignés, et ils ne devraient généralement pas avoir le même comportement .) – dholbert
- 1. Margin-top/Margin-bottom ne fonctionne pas
- 2. margin-top ne fonctionne pas avec: avant
- 3. Margin-top ne fonctionne pas
- 4. Pourquoi margin-right ne fonctionne pas, mais margin-left, margin-top et margin-bottom?
- 5. margin-left: auto ne fonctionne pas dans IE6 et IE7
- 6. element.animate ('margin-left', value) travailler avec Chrome ne fonctionne pas dans Firefox
- 7. CSS-Margin-bottom ne fonctionne pas
- 8. Pourquoi margin: auto; ne fonctionne pas?
- 9. margin-top avec% ne fonctionne pas
- 10. CSS- margin-top ne fonctionne pas
- 11. Encadré ombre ne fonctionne pas dans mon cas?
- 12. HTML Pourquoi margin-top ne fonctionne pas?
- 13. Margin-top ne fonctionne pas correctement
- 14. Pourquoi `margin: 1 auto;` ne fonctionne pas?
- 15. Margin-top ne fonctionne pas sur div
- 16. Last-Child Margin-Bottom ne fonctionne pas
- 17. Margin-Right sur css ne fonctionne pas
- 18. Css lien ne fonctionne pas dans Firefox
- 19. CSS3 transition ne fonctionne pas dans firefox
- 20. CSS ne fonctionne pas dans Firefox
- 21. Parallax effct ne fonctionne pas dans Firefox
- 22. ScrollTop ne fonctionne pas dans Firefox
- 23. CSS3 Dégradé ne fonctionne pas dans Firefox
- 24. ne fonctionne pas dans firefox
- 25. Javascript L'accélération ne fonctionne pas dans Firefox
- 26. CSS ne fonctionne pas dans Firefox 2.0
- 27. Police sténographie ne fonctionne pas dans firefox
- 28. débordement: caché ne fonctionne pas dans Firefox?
- 29. show() ne fonctionne pas dans Firefox, mais fonctionne dans Chrome
- 30. Margin-droite sur CSS ne fonctionne pas dans mon div
Pouvons-nous voir tout votre code? Je ne peux pas reproduire ce problème dans Firefox. – bookcasey