2015-11-06 53 views
-1

如果未定义继承,是否可以为css属性设置默认值? 例如:css如果继承未定义,则默认为

.td { 
    font-size: 9px; 
} 
.link { 
    font-size: inherit; 
    color: inherit; 
    text-decoration: underline; 
} 

<td class=td> 
    <a class=link href="#">hello!!</a> 
</td> 

从.td的<a>继承字体大小。

然而,在

<td> 
    <a class=link href="#">hello!!</a> 
</td> 

<a>标签没有字体尺寸属性。

+1

如果还没有定义,可能会除非级联另有决定继承....但不一切都是继承的。目前还不清楚你在问什么。 –

+0

使用给定的例子,我想要一个.link css应用与父td相同的字体大小,但是如果父td没有类,那么我想定义一个默认样式。 – fcaserio

+1

你可以用另一个字体大小和“td .link”来定义'.link',它只会改变它在td中的大小,否则它将使用默认值。它的特殊性在于:'.link'不如'td .link'特定,因此'td .link'嵌套在'td'内时比'.link'更受欢迎。 – somethinghere

回答

0

它下降到specificity - 越具体,规则越优先。所以你可以简单地定义一个全局的,然后在本地修改它。如果规则不匹配,则不会被覆盖。下面有一个片段例如:

body { font-size: 20px; } 
 
div { font-size: 10px; }
<div><a href="#">Nested inside a div</a></div> 
 

 
<a href="#">Not nested</a>

div具体,但得到偏爱,因为它是后面定义。只要确保不要为链接定义默认字体大小,并且它将始终从最接近的有效规则中继承。如果你想设置字体大小,你必须把它添加到您的类的描述是这样的:

div, div a { font-size: 10px; } 
+0

是否可以设置某种类型的选择器来指示父级没有font-size属性,以便使用更通用的样式表? td {no font-size}> .link {font-size:9px; } – fcaserio

+0

@fcaserio不,这不是。你将不得不与级联! – somethinghere

+1

好吧,使用{font-size:7pt; }设置默认解决问题。有时最简单的解决方案就在眼前,我们没有意识到。 tks 4帮助 – fcaserio