テキストをdiv
の100%の高さにしようとしていますが、機能しません。body { font-size:?; }
の100%になります。
Divの高さに従わせる方法はありますか?div
の高さはページ全体の4%であり、サイズを変更したり解像度を変更したりするときに、テキストがそれに続くことはありません。
希望する結果を得るには、次のコードを使用する必要がありました。
// Cache the div so that the browser doesn't have to find it every time the window is resized.
var $div = $('li.leaf.item');
// Run the following when the window is resized, and also trigger it once to begin with.
$(window).resize(function () {
// Get the current height of the div and save it as a variable.
var height = $div.height();
// Set the font-size and line-height of the text within the div according to the current height.
$div.css({
'font-size': (height/2) + 'px',
'line-height': height + 'px'
})
}).trigger('resize');
Joshuanhibbert @ css-tricksに助けてくれてありがとう!
CSSを使用してこれを達成することはできません。その代わりにjavascriptを使用してください。
これらを確認してください:
2015年には、 ビューポート単位 を使用できます。これにより、ビューポートの高さの1%を表す高さ単位でフォントサイズを設定できます。
だからあなたの場合はfont-size: 4vh
は望ましい効果を達成します。
注:これは、質問したように親divに相対的ではなく、ビューポートの高さに相対的です。
CSSのみを使用してdivのサイズが100%のテキストが必要な場合は、font-sizeプロパティとline-heightプロパティを変更する必要があります。これが私の解決策です:
.divWithText {
background-color: white;
border-radius: 10px;
text-align: center;
text-decoration: bold;
color: black;
height: 15vh;
font-size: 15vh;
line-height: 15vh;
}
相対位置と絶対位置を使用して、1行のテキストに対してこれを行うことができます。
<div class="div">
<span class="middle-center">
Center text
</span>
</div>
css:
.div {
height: 4%;
position: relative:
overflow: hidden;
}
.middle-center {
position: absolute;
top: 50%;
bottom: 0;
left: 0;
right: 0;
text-align: center;
font-size: 13px;
margin-top: -8px;
}