选择继承(:: selection,:: - moz-selection)

时间:2015-03-16 12:03:22

标签: html css firefox inheritance pseudo-element

我无法理解{element}继承的::-moz-selection伪元素的方式。我的意思是:如果我将:: - moz-selection应用于body标签

,是否可能
body::moz-selection {
  background: red;
}

它还适用于body标签内的段落(< p>)? 我找到了这个http://dev.w3.org/csswg/css-pseudo-4/#highlight-cascade

  

这可以替代地以继承来描述。可观察到的差异将在于继承和未设置的行为。它应该从parent :: selection还是originate元素继承? Opera是前者,Gecko / Blink是后者。

我不太清楚'起源'元素是什么意思('父母'对我来说似乎很清楚)以及这种继承的工作方式。

1 个答案:

答案 0 :(得分:4)

在CSS中,伪元素的原始元素只是指伪元素所附加的元素。例如,在选择器body::selection中,原始元素是body元素。

那句话说在Opera(Presto)中,子元素的::selection伪元素从父母的::selection伪元素继承他们的样式,而在Gecko和Blink中,他们继承自其原始元素 only (这是所有现有CSS1和CSS2伪元素的标准行为)。

似乎多个::selection样式的级联行为是明确定义的:采取最内层的声明。但继承是一个棘手的问题,特别是考虑到冲突的实现行为。特别是,如果在color: inherit上指定了::selection,那么该值是否应取自原始元素的颜色(行为与currentColor完全相同),或者是否应取自::selection父母{{1}}?