Ich möchte einen Rand über meinem accountOrderButton erstellen, damit er vertikal zentriert werden kann. Ich versuche, die Hälfte der Höhe der Eltern div minus die Hälfte der Kinder divs Höhe zu berechnen.CSS% für den vertikalen Rand basierend auf der Breite statt der Höhe
Dies sollte die Schaltfläche jedoch die Zeile "margin-top: calc (50%);" In meinem CSS wird stattdessen die Breite des übergeordneten div zurückgegeben. Wie bekomme ich die Höhe?
HTML
<div id="accountOrder">
<div id="accountOrderButton">
Order Now!
</div>
</div>
CSS
#accountOrder {
width: 400px;
float: left;
height:100%;
text-align: center;
}
#accountOrderButton {
width: 100px;
height: 20px;
margin: 0 auto;
margin-top: calc(50%); <---- returns width instead of height
padding: 20px;
background-color: <?php echo $data['secondary_color']; ?>;
border-radius: 10px;
}
https://www.w3.org/TR/CSS21/box.html#margin-properties: _ "Der Prozentsatz wird in Bezug auf die ** Breite ** des umschließenden Blocks der generierten Box berechnet. ** Beachten Sie, dass dies auch für "margin-top" und "margin-bottom" gilt. ** "_ - Was Sie wollen, ist nur mit CSS nicht möglich. Aber es gibt unzählige andere Möglichkeiten, um Elemente zu zentrieren, also forschen Sie ... https://css-tricks.com/centering-in-the-unknown/, https://css-tricks.com/centering-css-complete -guide/ – CBroe
Bitte beachten Sie auch, dass 'calc (50%)' * überhaupt nichts berechnet * und mit '50%' identisch ist. – connexo