html css * {...}:无法更改字体大小
似乎我被困住了。 为什么下面的代码显示12px的消息,但不是50px?是不是class1有 如何修复它,如果我不允许更改*属性?即使!重要也无济于事。html css * {...}:无法更改字体大小
<html>
<head>
<style type="text/css">
*
{
font-size : 12px
}
.class1
{
font-size : 50px;
}
</style>
</head>
<body>
<div class="class1">
<span>why it is not 50px font size?</span>
</div>
</body>
</html>
这是因为*还会选择你<div>
内<span>
标签。
所以*在这种情况下更具体,因此具有优先权。
.class1 span
{
font-size : 50px;
}
以上是可行的。
或者使用body {}而不是* {} – 2012-08-15 08:18:19
这应该工作
div.class1 span
{
font-size : 50px;
}
*
将选择div中的跨度。作为子元素将删除<span>
将工作。或明确的目标。
谢谢。我知道。有没有更好的主意?我的意思是一旦我包含那个包含*的bad.css文件,就会破坏很多员工,所以我必须在很多div中重写很多span。有没有更好的解决方案来“取消”* {font-size:12px;}? – Haradzieniec 2012-08-15 08:02:05
您可以覆盖该值,但无法取消设置。我看到覆盖该值没有问题,您甚至可以使用以逗号(,)分隔的多个选择器。针对不同的标签。 – 2012-08-15 08:03:32
你可以做'.class1 * {font-size:inherit; ''但我怀疑这也可能导致问题。 – steveax 2012-08-15 08:05:36
*
将包括<span>
,所以你可以给span一个id或一个类,并应用css规则。或者不喜欢它:
.class1 span {font-size:50px;}
的选择*
是一个包罗万象的(意为它选择一切)
因此,对于你span
被选中,你需要一个更具体的选择:
.class1 span
应该可以工作,但您也可以选择它以更具体:
div.class1 span
或者你可以添加一个类跨度本身并与
span.class2
:)
试过了。不起作用。 – Haradzieniec 2012-08-15 08:46:23
使用'!important'应始终被视为最后的手段。如果你需要它,那么通常意味着你不了解CSS优先级,或者你的CSS中有其他地方需要修复。 – Spudley 2012-08-15 19:32:28
或者如果您使用的是自动生成CSS的第三方脚本,并且您需要覆盖它,或者如果您需要快速修复或者如果问这个问题的人对CSS没有足够的了解。这里的目的是提供不同的解决方案,然后他可以选择适合他的任何方法。我同意你的评论!重要的应该是最后的手段 – Razmig 2012-08-16 05:58:36
不知道为什么你不能更改星形选择器;这是糟糕的代码,并且很明显会导致问题。你不能改变它的原因是什么? – Spudley 2012-08-15 19:36:56
我正在开发项目的扩展(fork)。我最好不要触摸另一个人写的css文件。 – Haradzieniec 2012-08-16 12:13:58