2013-05-11 70 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