2013-05-11 71 views
-1

我有一個spanfont-size:0打壓空間:如何設置相對於父親而不是父親的字體大小?

<span style="font-size:0"> 
    <span>a</span> 
    <span>b</span> 
</span> 

內跨度繼承父的字體大小和消失了。使用font-size:100%也沒有幫助,因爲它也是相對於父母。

如何定義相對於父親的字體大小?

+0

純CSS,你可以'噸;爲什麼你把它設置爲font-size:0? – 2013-05-11 15:25:13

+0

@ExplosionPills看到第1行 – ceving 2013-05-11 15:28:04

+1

_「我有一個字體大小跨度:0壓制空間」_ - 我不認爲這是一個好辦法 - 無論如何 - 因爲許多瀏覽器的最小字體大小在他們的不能被削弱的設置(我不知道他們是否願意放棄僅包含空白的元素的規則)。 – CBroe 2013-05-11 15:41:49

回答

3

沒有辦法的相應字號更改爲祖先比另一個要求更高純CSS中的字體大小,即你不能。有幾種可能的解決方法,但:

  • 使用JavaScript來計算正確的字體大小
  • 代替font-size: 0在外跨度,使用float: left在內跨度
  • 更改HTML刪除空間
  • 只需使用內部字體的字體大小
+0

內部的float:left似乎是'font-size:0'的另一種選擇。 – ceving 2013-05-11 15:41:43

-1

您可以以像素爲單位給出字體大小。

'http://jsfiddle.net/uqHgW/` 
+2

字體大小的'px'是不行的。 – ceving 2013-05-11 15:42:37

1

你可以使用rem( '根' EMS)爲單位的span設置的font-size相對於基本字體大小:

<span class="hideSpaces"> 
    <span>a</span> 
    <span>b</span> 
</span> 


body { font-size: 16px; } /* <-- base font-size */ 
.hideSpaces { font-size: 0; } 
.hideSpaces span { font-size: 1rem; } /* <-- sets font size equal to base font size */ 

http://snook.ca/archives/html_and_css/font-size-with-rem

+0

兼容性是您正在參考的文章中所述的IE9 +(並且根據caniuse沒有Opera Mini) – FelipeAls 2013-05-11 15:51:36

+0

@FelipeAls如果這是一個問題,OP可以爲舊版瀏覽器指定特定的字體大小:'.hideSpaces span {font-size: 16px的; font-size:1rem; }' – 2013-05-11 15:53:35

+0

'rem'是root em,不是祖父母em。 – 2013-05-11 16:58:48