rem
Web サイトのソースでは、開発者がこのユニットを使用しているのを時々見かけました。に似ていem
ますか?実際に何をするのか試してみたのですが、何に対して相対的なのでしょうか?
HTML
<div>Hello <p>World</p></div>
CSS
div {
font-size: 1.4rem;
}
div p {
font-size: 1.4rem;
}
EM
s は、親のフォント サイズに相対的です
REM
s はベースの font-size に相対的です
これは、中間コンテナーがフォント サイズを変更する場合に重要です。EM を持つ子要素は影響を受けますが、REM を使用する子要素は影響を受けません。
単位rem
(ルート em) は、ルート要素のフォント サイズを表します。HTML ドキュメントでは、ルート要素はhtml
要素です。
emは直接または最も近い親の font-size に相対的ですが、remはhtml (ルート) font-size にのみ相対的です。
emは、デザインの領域を制御する機能を提供します。のように、その特定の領域の型を相対的にスケーリングします。 remを使用すると、ページ全体でタイプを簡単にスケーリングできます。
ここに例があります。要素の を変更すると、divs
サイズが変更されます。のサイズを変更すると、サイズが変わるだけでサイズが変わります。rem
font-size
html
em
font-size
div
$(function() {
var htmlSize = $('input#html');
htmlSize.change(function() {
$('html').css('font-size', htmlSize.val() + 'px');
});
var divSize = $('input#div');
divSize.change(function() {
$('div').css('font-size', divSize.val() + 'px');
});
});
* {
float: left;
font-size: 20px;
margin:2px;
}
label {
clear:both;
}
div {
border: thin solid black;
}
div.rem1 {
width:4rem;
height: 4rem;
clear: both;
}
div.rem2 {
width: 3rem;
height: 3rem;
}
div.em1 {
width: 4em;
height: 4em;
clear: both;
}
div.em2 {
width: 3em;
height: 3em;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label>Change html font-size
<input id="html" type='number' value="20" min="18" max="30" />
</label>
<div class="rem rem1">rem</div>
<div class="rem rem2">rem</div>
<label>Change div font-size
<input id="div" type='number' value="20" min="18" max="30" />
</label>
<div class="em em1">em</div>
<div class="em em2">em</div>
em と rem はフォント ベースの相対単位であり、em をフォントまたは長さに使用するのは異なるため、em と rem は両方ともフォント ベースですが、それらの違いは、em が親または現在の要素を参照として使用し、rem が参照として使用することです。ルート フォント サイズを参照として使用します。
フォントサイズに ems を使用したい場合、リファレンスは単純に親が計算したフォントサイズであり、パーセンテージの場合と同様です。
次の例では、header 子要素の 3 つの em フォント サイズは、(150/100)*16=24px である親フォント サイズの 3 倍であるため、72 ピクセルになります。長さに関しては、ちょっとだけ違います。ヘッダーの 2em のパディングは、長さの測定値であるため、現在の要素のフォント サイズを参照として使用し、それが 24 ピクセルであることは既にわかっているため、2em は 48 ピクセルのパディングになりますね。微妙な違いですが、重要な違いです。フォントの場合に em を使用すると、参照は親であり、長さの場合、参照は現在の要素です。
html,body{
font-size:16px;
width:80vw;
}
header{
font-size:150%;
padding 2em;
margin-bottom:10rem;
height:90vh;
widht 1000px;
}
header-child{
font-size:3em;
padding:10%;
}
rem については、常にルート フォント サイズを参照として使用するため、実際にはフォント サイズと長さの両方で同じように機能します。これは、ルート フォント サイズが 16 であるため、ここにある 10 rem パディングは 160 ピクセルになることを意味します。