问答详情
源自:8-8 我全都要 - 通用选择器

8-8通用选择器

两张图片红线部分,都设定了<body>内的标签元素样式,。为什么显示的是通用选择器的样式。这

579995ab00019fb505000235.jpg

579995ac0001e04705000231.jpg

是有什么优先级吗?具体的优先级怎么说

提问者:慕田峪0816849 2016-07-28 13:19

个回答

  • RecallGY
    2016-07-28 13:54:30
    已采纳

    为了回答问题 特地弄了个例子 解释如下  

    这是  body标签与 通用选择器的代码+网页实际效果

    57999d6a0001e9bd05000343.jpg

    57999d6b00013b7005000220.jpg



    这是 普通标签(如p)与通用选择器的代码加效果


    57999d7e0001ae0205000429.jpg

    57999d7e0001c03905000231.jpg


    显然  一般来说!important>inline style>ID>class>tag 这个优先级比较是没错的  

    但是你这里触发了特殊性  就是html、通配符和body节点的优先级作用范围,htm>通配符>body节点

  • 翻瑜
    2016-07-28 14:59:25

    通常我们可以将CSS的优先级由高到低分为六组:

      1、无条件优先的属性只需要在属性后面使用 !important 。它会覆盖页面内任何位置定义的元素样式。当然,IE 6不支持这个属性,于是它也成为一种hack被很多人所熟知,真正使命被人淡忘。
      2、第二高位的优先属性是在html中给元素标签加style。由于该方法会造成CSS的难以管理,所以不推荐使用。
      3、第三级优先的属性是由一个或多个id选择器来定义的。例如 #id{margin:0;} 会覆盖 .classname{margin:3px;}。
      4、第四级的属性由一个或多个 类选择器、属性选择器、伪类选择器定义。如 .classname{margin:3px;} 会覆盖 div{margin:6px;}
      5、第五级由一个或多个 类型选择器定义。如 div{margin:6px;} 覆盖 *{margin:10px;} 。
      最低一级的选择器是为一个通配选择器,用*{margin:10px;}这样的类型来定义。

  • 慕桂英3588515
    2016-07-28 14:30:46

    如果通用选择器和标签选择器共存的话,浏览器优先处理标签选择器的属性,然后再处理通用选择器。不知道对不对,求大神指正。

  • 无边星空
    2016-07-28 13:33:36

    这个不是很清楚 可能不是优先级的问题 应该是你body加进去没什么用,加不加都没什么