Firefox :: - ошибка селектора moz-selection (?) Есть ли обходной путь? - PullRequest
3 голосов
/ 14 марта 2011

Я работаю над сайтом, который имеет большое количество цветовых стилей, около 250 строк CSS, чтобы определить одну из 7 цветовых схем, поэтому важно, чтобы я собрал все правила цвета, сгруппированные как можно лучше.

Новейший RC Firefox 4 ведет себя плохо, когда я пытаюсь составить стек селекторов, относящихся к устаревшему псевдоэлементу CSS3 ::selection.

Это работает:

.green ::-moz-selection {
    /* 'Pure Hue' Color */
    background-color: #62BA21;
    color: white;
}

Но как только я пытаюсь поделиться правилом с селектором для webkit, оно нарушается.

Не работает для FireFox:

.green ::selection, .green ::-moz-selection {
    /* 'Pure Hue' Color */
    background-color: #62BA21;
    color: white;
}

Я понимаю, что, возможно, они не устраняют ошибку, поскольку ::selection больше не присутствует в рабочем проекте, но я бы предпочел, чтобы мне больше не приходилось раздувать мой CSS, как это уже было для этой странности.

1 Ответ

9 голосов
/ 14 марта 2011

Firefox, по-видимому, просто не понимает ::selection (следовательно, требует префикса поставщика ::-moz-selection), поэтому он игнорирует все правило при обнаружении нераспознанного селектора согласно спецификации .

Обычный обходной путь для браузера, не понимающего один или несколько селекторов в группе, заключается в разделении / дублировании набора правил:

/* Firefox sees this */
.green ::-moz-selection {
    background-color: #62BA21;
    color: white;
}

/* Other browsers see this */
.green ::selection {
    background-color: #62BA21;
    color: white;
}

На самом деле, в этом случае это единственное, что вы можете сделать, т. Е. Вам придется мириться с этим небольшим раздуванием.

jsFiddle demo

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...