accountOrderButtonの上にマージンを作成して、垂直にセンタリングできるようにしたいと思います。私は、親divの子のdivsの高さの半分を引いた高さの半分を計算しようとしています。高さではなく幅に基づいた垂直マージンのCSS%
これはボタンの中央にある必要がありますが、 'margin-top:calc(50%);'私のCSSでは、代わりに親divの幅が返されます。どのように高さを取得するのですか?
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:_ "パーセンテージは、生成されたボックスの包含ブロックの**幅**に対して計算されます。 **これは 'margin-top'と 'margin-bottom'にも当てはまることに注意してください。** "_ _あなたが望むのはCSSだけでは不可能です。しかし要素を中心に置く他にも数多くの方法がありますので、いくつかの研究を行います... https://css-tricks.com/centering-in-the-unknown/、https://css-tricks.com/centering-css-complete -guide/ – CBroe
'calc(50%)'は*何も計算しておらず、 '50% 'と同じことに注意してください。 – connexo