Альтернатива css3 не селектор - PullRequest
2 голосов
/ 10 января 2011

Существуют ли альтернативы селектору :not css3, которые совместимы с IE8 (и режимом причуд).

Либо в css, либо в javascript / jquery, который эмулирует селектор, или что-то подобное.

Я использую *:not, как указано ниже. Не стесняйтесь рекомендовать решение, которое полностью исключает использование :not.

@media screen {
    #printable {
        visibility: hidden;
    }
}

@media print {
    *:not(#printable) {
        visibility: hidden;
    }
    #printable {
        position: absolute;
        visibility: visible;
    }
}

Обратите внимание, что использование :not связано с использованием @media print, поэтому простое использование решения jQuery для применения css к $(":not(#printable)") не будет работать без умного.

Включение всей библиотеки, например ie9.js или selectivirz, не вариант, так как он может повлиять на различные другие части страниц и потребует большого раздела повторного тестирования.

jsfiddle, который показывает, что он работает в браузерах, которые поддерживают :not http://jsfiddle.net/Raynos/TjKbz/

Ответы [ 3 ]

5 голосов
/ 10 января 2011

Я не думаю, что вам нужно :not в этом случае:

@media screen {
    #printable {
        visibility: hidden;
    }
}

@media print {
    * {
        visibility: hidden;
    }
    #printable {
        position: absolute;
        visibility: visible;
    }
}

Селектор #printable имеет более высокий приоритет, чем *, поэтому ваш элемент #printable будет виден.

1 голос
/ 10 января 2011

Вы можете попробовать переопределения специфичности, т.е.

@media print {
  * {
    visibility: hidden;
  }
  #printable, #printable * {
    visibility: visible;
  }
}
0 голосов
/ 10 января 2011
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...