相关疑难解决方法(0)

我应该对伪元素使用单冒号还是双冒号?

由于IE7和IE8不支持伪元素的双冒号表示法(例如::after或者::first-letter),并且由于现代浏览器支持单冒号符号(例如:after)以实现向后兼容性,因此我应该仅使用单冒号表示法吗? IE8的市场份额下降到可以忽略不计的水平回到我的代码库中找到/替换?或者我应该包括两者:

.foo:after,
.foo::after { /*styles*/ }
Run Code Online (Sandbox Code Playgroud)

如果我关心IE8用户(可怜的亲戚),单独使用双重似乎很愚蠢.

css css-selectors internet-explorer-8 internet-explorer-7 pseudo-element

107
推荐指数
3
解决办法
3万
查看次数

伪类和伪元素有什么区别?

div::after {}和之间有什么不同div:after {}?我们什么时候需要使用::过:?

双冒号和单冒号表示法用于区分伪类和伪元素.

上述陈述的实际含义是什么?

css css-selectors pseudo-element

51
推荐指数
2
解决办法
2万
查看次数

无效的CSS选择器导致规则被删除:理由是什么?

我正在寻找更多关于邮件列表讨论等的链接,而不是猜测.

任何人都可以帮我找出CSS Selectors Level 3规范中引用的错误处理规则背后的基本原理.

用户代理必须遵守处理解析错误的规则:

  • 包含未声明的命名空间前缀的简单选择器无效
  • 包含无效简单选择器,无效组合符或无效标记的选择器无效.
  • 包含无效选择器的一组选择器无效.

重用规范选择器必须定义如何处理解析错误.(在CSS的情况下,删除使用选择器的整个规则.)

我有以下规则:

#menu li.last, #menu li:last-child {
  ...
}
Run Code Online (Sandbox Code Playgroud)

为了弥补IE8缺乏最后一个孩子的支持,我使用了一个类和一个JavaScript垫片.但是,这不起作用,因为IE8符合错误处理的CSS规范,并丢弃整个规则,因为它无法识别一个选择器.这可以通过将两个选择器分成单独的规则来解决.

为什么这是可取的?为什么规范没有建议简单地丢弃无法识别的选择器,而是保留规则的其余部分?

我想知道其基本原理,因为目前的规则似乎是违反直觉的.

css w3c css-selectors

23
推荐指数
1
解决办法
2535
查看次数

CSS"::"vs":" - 伪元素vs伪选择器?

我正在研究CSS和排版,并遇到了这个有趣的伪选择器概念.我使用了单冒冒伪选择器,并且不熟悉psuedo选择器的双冒号版本.我知道双冒号被称为伪元素而不是伪选择器 - 但为什么呢?有什么区别?

我也明白单个冒号更受支持,所以在什么情况下会使用双冒号伪元素?是否有必要使用双冒号的用例,单个冒号不能完成工作?这种情况会是什么?

"与伪元素不同,伪类可以出现在选择器链的任何地方." (引自链接) - 我不知道'选择链'是什么,但这似乎也是双冒号方法的另一个限制.为什么我需要使用双冒号(如果我的理解)只是一个较少支持的单冒号版本?

编辑:它们看起来在功能上并不相同:小提琴

<div><p>First Line</p></div>
<div><p>Second Line</p></div>
Run Code Online (Sandbox Code Playgroud)

CSS

div:nth-child(1) > p { 
    color: green;
}

div::nth-child(2) > p { 
    color: blue;
}
Run Code Online (Sandbox Code Playgroud)

html css css-selectors

21
推荐指数
1
解决办法
1万
查看次数

在html元素/标记后的偏移背景

我想在任何HTML元素或标签后面设置一个CSS背景,它应该有点偏移.

这是我正在寻找的结果:

在此输入图像描述

您可以看到指向红色箭头的轻微背景,该背景在<h2>文本之前开始,在文本结束之前结束.此背景应随元素中的文本量扩展.

我试过用箱子阴影做这个,你可以在下面看到:

body {
  padding: 20px;
}
h2 {
  display: inline-block;
  box-shadow: -10px 10px 0 red;
}
Run Code Online (Sandbox Code Playgroud)
<h2>Ain't No Mountain</h2>
Run Code Online (Sandbox Code Playgroud)

但是你可以看到背景没有出现在文本背后.

让我知道是否有人做过这种事情:)

html css

0
推荐指数
1
解决办法
906
查看次数