【问题标题】:Are there any scenarios where pseudo classes wouldn't work?是否存在伪类不起作用的情况?
【发布时间】:2011-11-09 22:29:33
【问题描述】:

这听起来像是一个抽象的问题,但我正在尝试解决我正在从事的这个项目,但我不知所措。

我不得不接手一个项目,因为第一个开发人员被解雇了,所以我犯了一个新手错误,没有从第一天开始重新开始。我已经修复了数百个错误,并且几乎重做所有事情。从非语义代码、内嵌布局元素、不必要的切片文本图像到必须将所有内容从 CSS2 转换为 CSS3。

我之所以这么说,是因为这里要包含的代码太多了,我希望也许我描述我的情况会挖掘其他人的糟糕经历来给我建议。

问题:我有一页没有任何效果。我从外部样式表中删除了适当的 CSS,并在内部样式表中重写了它。我遇到的两个最大问题是伪元素和伪类不起作用。我挣扎了一会儿,试图弄清楚它是否是我正在使用的东西,但后来我尝试了不同的伪类,比如 p:first-child {color:red} 什么都没有。

我也遇到了页面上的图片替换问题。我通常的文本缩进不起作用,文本只是留在页面上。

我不确定还有哪些相关信息,因此如果您需要查看任何内容或提出任何问题,请尽管提出。我提前感谢你让像我这样的菜鸟免于拔头发:)

编辑

这是一个带有页面代码的链接:http://jsfiddle.net/syren/Zsj2T/ 网站上的所有其他内容都有效,所以我必须假设它与页面上的代码有关。

【问题讨论】:

  • 问题页面的链接可以很好地跟踪问题。
  • 这可能很明显...但是您确定确切此页面有什么不同吗?此页面上调用了哪些资源与其他任何资源?一定有一些无关的文件在这里干扰。
  • 我无法发布链接,但我会尝试发布一些内容。在大多数情况下,虽然没有我在这里使用过的资源我没有在其他地方使用过,也没有任何东西会使这个页面与其他页面有任何不同。
  • “必须将所有内容从 CSS2 转换为 CSS3”等等,什么?!
  • HTML Validator 开头。您可能忽略了源代码中的一个小问题。

标签: css css-selectors pseudo-class image-replacement


【解决方案1】:

我看到你正在使用#history p:first-child

您可能希望此选择器选择#history 的第一个<p> 元素,但这是错误的。 :first-child 选择器只选择 第一个子元素

要选择第一个<p>元素,您必须使用#history p:first-of-type

您的代码结构,在树形视图中:

div#history    
    h2        :first-child 
    a.share   :nth-child(2)
    p         :nth-child(3)  p:first-of-type

小提琴:http://jsfiddle.net/Zsj2T/1/
PS。快速参考MDN: Pseudo-classes

【讨论】:

  • 噢噢噢噢,说得通。完全忘记了第一个类型。谢谢!
  • 对“返回”链接上的图像替换有任何想法吗?
  • 抱歉,忘记更改图片路径。它现在就在那里。
  • 我会再次为您拥有的那个小 DOM 结构 +1。
【解决方案2】:

阅读此article 检查每个伪元素与浏览器的兼容性。

提示:不要使用颜色名称(RED),而是使用颜色十六进制值(#F00),因为根据 w3c,颜色名称已被弃用

【讨论】:

  • 1) :first-child 是一个伪类,而不是一个伪元素。这里没有提到伪元素。 2)“根据 w3c,颜色名称已被弃用”从什么时候开始?
  • 那是 HTML,不是 CSS。您甚至根本不应该在 HTML 中指定颜色,但在 CSS 中使用名称或十六进制代码都很好。
  • 问题不在于浏览器兼容性,因为相同的伪类可以在其他页面上运行。
猜你喜欢
  • 2011-02-22
  • 2022-10-01
  • 2016-10-19
  • 2017-05-27
  • 2013-06-01
  • 2012-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多