Flex-Elemente ignorieren Prozent Polsterung in Firefox
Ich versuche, hinzufügen Polsterung an ein element in einem display:flex
element. Wenn die Polsterung ist definiert als ein Prozent, es nicht angezeigt wird in Firefox, obwohl es nicht definiert, wenn in px
. Beiden Fällen erwartungsgemäß in Chrom.
CSS:
div {
background: #233540;
}
div > div {
color: #80A1B6;
}
.parent {
display: flex;
}
.padded {
padding-bottom: 10%;
}
HTML:
<div class="parent">
<div class="padded">
asdf
</div>
</div>
Chrome:
Firefox:
Bearbeiten:
Dies kann sein, weil Mozilla die Entscheidung zu interpretieren vertikale Prozentsätze mit Bezug auf die Höhe des übergeordneten Containers. Scheint verrückt zu mir. https://bugzilla.mozilla.org/show_bug.cgi?id=851379
Edit 2:
Ja, es scheint, dass die Spezifikation definiert das vertikale padding und margin so entschlossen gegen die Höhe des Containers, also vielleicht Chrome ist das man nicht zu Ehren der Skillung?
https://drafts.csswg.org/css-flexbox/#item-margins
- RE: Edit 2: eigentlich die spec definiert es als eine Wahl, die für den browser zu verwenden, entweder die Höhe oder die Breite für top/bottom margin/padding, solange Sie konsistent sind und verwenden Sie immer eine oder die andere für alle anderen Situationen. So, Firefox und Chrom sind zu Ehren des spec.
- Beste Antwort ist wohl auch nach der aktuellen spec: "Autoren sollten vermeiden Sie die Verwendung von Prozentangaben in Polstern oder Ränder auf flex-Elemente vollständig sind, bekommen Sie unterschiedliches Verhalten in verschiedenen Browsern."
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen https://lists.w3.org/Archives/Public/www-style/2015Sep/0038.html
Sehen https://lists.w3.org/Archives/Public/www-style/2015Sep/0113.html,
Den aktuellen Flexbox-spec warnt vor dieser:
Allerdings, in jüngerer Zeit die CSS WG gelöst (mit einige kontroversen):
Finden Sie die aktualisierte editor ' s draft.
Für mich funktioniert der trick: hinzufügen von display: table-div. Weiß nicht, ob andere Ursachen Probleme obwohl.
CSS:
HTML:
display
von der übergeordneten macht, dieses Verhalten zu ändern, aber die Frage ist speziell überflex
Elemente.Versuchen Sie dies:
Den aktuellen Entwurf spec sagt
So, Firefox ist jetzt falsch, nach dem neuesten Entwurf.
CSSWG Diskussion: https://github.com/w3c/csswg-drafts/issues/2085
Spec changelog Referenz: https://drafts.csswg.org/css-flexbox/#change-2017-margin-padding-percent
Aktuelle Skillung auf flex-Element Rand: https://drafts.csswg.org/css-flexbox/#item-margins