技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营
卡卡网是专业的网站测速平台,网速测试,测试网站速度,就来卡卡网 ~
问题反馈网络日志

【DiyVM】沙田机房/香港云/回国CN2线路/AMD EPYC/39元一月5M/CN2海外云主机 24元/月BGP+CN2海外云 低至25元/月海外主机 低至$2/月

DiyVM:香港VPS惊爆价36元一月
★站长变现★特色悬浮小图标广告
5M CN2 GIA云主机 24元起
【转化好产品,官方高价收量】
一一一云主机 26元起一一一
官方高价收量,每日稳定结算

一一云主机 24元 3折起一一
AWS核心代理U充值 免注册开户
海外CN2云 低至$2.5/月
海外云低至2折 298/年
免费测试★APK免杀 谷歌过保护
官方收量CPA/CPS长期稳定

海外主机 5M CN2 低至$2/月
恒创科技 一 海外服务器 ● 高速稳定
★解决安装报毒★谷歌过保护机制
CN2 GIA/1000Mbps $111/月
超级签★免杀★加固★满意付款
全球云主机 3天试用再买

【菠萝云】香港4G内存99元,马上开通
亿人互联-津/京BGP托管租用/VPS
苹果签名/APP封装/远控免杀
10M CN2海外云VPS 53元/月
一一站长/主播好变现一一有流量就来
站长变现 特色悬浮小图标广告

实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现

赞助商

分类目录

赞助商

最新文章

字体单位是相对测量单位,是根据其他一些值计算的,可以动态变化。与字体相关的测量单...
stroke-width设置形状的描边粗细,如果在 HTML 中,框架是从外边缘...
本文给大家介绍10款用SVG蒙版制作的图片转场/过渡动画,并分析如何实现它们。
CSS 数据类型<filter-function>代表可以改变输入图...
CSS box-shadow 属性用于在元素的框架上添加阴影效果。你可以在同一个...
drop-shadow() 是一个CSS 过滤器函数,其将投影效果应用于输入图像...
本文给大家介绍一个SVG实现的网页气泡动画效果。 

搜索

CSS类不起作用?id、类名、标签选择器的优先分析

作者:admin    时间:2022-5-6 8:45:48    浏览:494

定义了某个标签用的CSS类,结果发现不起作用,原因其实很明显,就是另外还有与之相关联的CSS定义,如果页面用到的CSS比较多且凌乱,那么检查起来就比较困难。CSS类不起作用的原因,其实就是继承与优先的问题。今天我将通过几个实例来分析这个问题。

实例

下面是一个完整的HTML实例。

HTML结构

  1. <div class="wrap">
  2.   <div class="content">
  3.     <a href="http://www.webkaka.com/">content - 卡卡网 www.webkaka.com</a>
  4.   </div>
  5.  
  6.   <div class="footer">
  7.     <a href="http://www.webkaka.com/">footer - 卡卡网 www.webkaka.com</a>
  8.   </div>
  9. </div>

CSS

  1. div.wrap a{color: blue;}
  2. div.content a{color: red;}
  3. .footer a{color: red;}

由于外层div的类.wrap已经定义了链接的颜色为blue。而我想在内层.footerdiv把链接颜色设置为red。但代码执行结果不在预期,显示如下:

 

demodownload

我们看到,内层定义的类.footer不起作用了。但同时又看到,另一个内层.contentdiv,其CSS的定义是有效的。为什么会出现这个情况呢?写法的差异!

CSS类不起作用的原因:继承与优先

实例中,.footer类名前,没有加上标签div,而.content类名前,加上了div标签。就是这个原因导致了实例中的显示结果。

如果想.footer类的div,按预期的想法来显示,那么就要把类名改一下写法,把.footer改为div.footer,我们看看改后的显示结果。

 

demodownload

x

CSS定义优先比较:id、标签与类名

CSS定义可以用标签,例如pdivspan等,也可以用类名,例如.wrap.content.footer等,还经常用到id来作为选择器,例如#header#nav等。在实际使用中,经常出现多个CSS定义重叠作用的问题。这种情况下,浏览器渲染时就会按照CSS继承与优先的规则来执行。

用了标签定义CSS,再用类定义还有效吗?

我们看看下面一个实例。

  1. <style type="text/css">
  2. div a{color: blue;}
  3. .footer a{color: red;}
  4. </style>
  5.  
  6. <div class="footer">
  7.   <a href="http://www.webkaka.com/">footer - 卡卡网 www.webkaka.com</a>
  8. </div>

已经有了div的CSS定义,在HTML里,某个div比较特殊,又自己加了个类定义.footer。结果显示如下:

 

demodownload

我们看到,这个类.footer的CSS定义是起作用的。

id与类名,哪个更优先?

我们再看看下面的实例。

  1. <style type="text/css">
  2.   #wrap a{color: blue;}
  3.   .footer a{color: red;}
  4. </style>
  5.  
  6. <div id="wrap">
  7.   <div class="footer">
  8.     <a href="http://www.webkaka.com/">footer - 卡卡网 www.webkaka.com</a>
  9.   </div>
  10. </div>

先有了#wrap的定义,再有.footer的定义。结果显示这样。

 

demodownload

可以看到,针对id的CSS定义#wrap,是优先于使用类名的CSS定义.footer的。

总结

通过本文几个实例的分析,对CSS定义的继承与优先应该有了一定的了解,就是越具体越优先,并且遵循如下规则:id选择器 > 类选择器 > 标签选择器

相关文章

x
广告: 【限时】云主机 24元/月