em
- типографское измерение - по существу,% от размера шрифта. в то время как %
, как вы сказали, относится к родительскому элементу.
так что давайте возьмем:
body {font-size: 12px;}
p.rel-to-font { font-size: 1.5em;}
<body>
<p class="rel-to-font"> Some cool text</p>
</body>
в этом примере p.rel-to-font
будет иметь font-size
, равный 18px
. 150%
из 12px
.
body,p {font-size: 12px;}
div {font-size: 15px;}
p.rel-to-parent { font-size: 150%;}
p.rel-to-font { font-size: 1.5em;}
<body>
<div>
<p id="test-1"class="rel-to-parent"> Some cool text</p>
<p id="test-2" class="rel-to-font"> Some cool text</p>
</div>
<p id="test-3" class="rel-to-font"> Some cool text</p>
<p id="test-4" class="rel-to-parent"> Some cool text</p>
</body>
в этом примере #test-1
будет иметь font-size
равным 22,5px, #test-2
будет 18px, #test-3
будет 18px
и #test-4
будет 18px
.
Мне кажется, что это помогает ... Я не могу придумать хороший пример ... В большинстве случаев %
и em
обычно работают одинаково - не всегда очевидно, но только большинство время в практических реализациях.