在網站源碼中,我有時看到開發者使用rem
單元。它是否與em
相似?我試圖看看它究竟做了什麼,但它與它有什麼關係?rem與em在CSS中的區別是什麼?
HTML
<div>Hello <p>World</p></div>
CSS
div {
font-size: 1.4rem;
}
div p {
font-size: 1.4rem;
}
在網站源碼中,我有時看到開發者使用rem
單元。它是否與em
相似?我試圖看看它究竟做了什麼,但它與它有什麼關係?rem與em在CSS中的區別是什麼?
HTML
<div>Hello <p>World</p></div>
CSS
div {
font-size: 1.4rem;
}
div p {
font-size: 1.4rem;
}
EM
s爲相對於他們的父母的字體大小
REM
s爲相對於基本字體大小
當中間容器更改字體大小時,這很重要。 EMs的子元素將受到影響,使用REM的子元素不會。
簡而言之... –
這裏是一個小提琴,說明了這一點:http://jsfiddle.net/uJfWD/4/ – Chad
除了這個答案,[[''em'單位是相對於字體大小的它們使用的元素(不是父元素)](https://webdesign.tutsplus。com/tutorials/comprehensive-guide-when-to-use-em-vs-rem-cms-23984)] [[W3C definition](https://www.w3.org/TR/css3-values/#font -relative-lengths)] [[Codepen demo](http://codepen.io/tutsplus/pen/mJGmyJ)] – Jay
The unit rem
(root em)代表根元素的字體大小。在HTML文檔中,根元素是html
元素。瀏覽器支持仍然有限。
+1表示它代表「root em」,而不是「relative em」,如圖所示OP。 – BoltClock
雖然EM是相對於它的直接的或最近的父的字體大小,REM是僅相對於該HTML(根)字體大小。
em給出了控制設計區域的能力。如在中,相對比例在該特定區域中縮放。 rem可以輕鬆地在整個頁面上縮放類型。
優秀的解釋! – codewise
這裏是一個例子。 divs
尺寸爲rem
,因爲我們更改html
元素的font-size
。而那些尺寸爲em
的尺寸僅在我們更改div
的font-size
時發生變化。
$(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是相對於CSS最近的父,而相對於這通常是HTML標籤頁的父...
你看到區別顯然,如果你運行下面的CSS和如何父是影響它:
html {
font-size: 16px;
}
.lg-font {
font-size: 30px;
}
p.rem {
font-size: 1rem;
}
p.em {
font-size: 1em;
}
<div class="lg-font">
<p class="em">Hello World - em</p>
</div>
<div class="lg-font">
<p class="rem">Hello World - rem</p>
</div>
http://css-tricks.com/font-sizing-with-rem/ google找到我這個 – daniel
它不支持「相對em」;你在哪找到的? – BoltClock