css怎样清除*{font-size:14px;font-family:'Microsoft Yahei'}

因为开始项目的时候,在公用css文件里一开始就写了句:

*{font-size:14px;font-family:'Microsoft Yahei'}

作为全局公用的css字体文件,但是目前在一个div下面想要设置不同的字号:

<div id="slogan">
    . . .
</div>

现在想让slogan下面所有的div span p a等标签全都不继承这个{font-size:14px;font-family:'Microsoft Yahei'},也就好比对这个slogan下面就当不存在这个{font-size:14px;font-family:'Microsoft Yahei'}一样,请问怎样消除?

阅读 13.8k
4 个回答

1、用style样式覆盖
2、写一个slogan样式
3、利用css3的initial取消对属性的样式指定

.test{
   font:initial;/*取消对font的一些样式设置,恢复到默认状态*/
}

关于initial:initial

你可以去了解一下CSS权重:CSS:权重和层叠规则决定了其优先级

再写一个slogan样式来覆盖

根据就近原则,css会按 权值来 判定到底赋什么值给标签 即

improtant > 内嵌 > 内联 > 外联 

,然后你可以对比你的

*{font-size:14px;font-family:'Microsoft Yahei'}

有哪一个权值,去选择权值比TA高的写法,即可覆盖~

#slogan * {font-size: 100%; font-family: inherit;}

这一句可以重置 div#slogan 的所有后代,也就是你说的消除影响,不支持IE6-7。虽然能快速解决问题,但是强烈不推荐这样写CSS。最好的清除办法是把那句规则给删掉,因为这个写法实在是巨挫无比。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题