Допустимое использование -webkit-min-device-width - мультимедийный запрос CSS - PullRequest
4 голосов
/ 10 января 2012

Я получаю ошибку проверки W3 при связывании с таблицей стилей с использованием медиазапроса для отображения дисплеев сетчатки. Вот код:

<link rel='stylesheet' type='text/css' href='/css/styles-retina.css' media='only screen and (-webkit-min-device-pixel-ratio: 2)'/>

Сообщения об ошибках W3C:

"Экран только с недопустимыми значениями и (-webkit-min-device-pixel-ratio: 2) для атрибутов мультимедиа в ссылке на элемент: ожидается буква в начале части мультимедийного объекта, но вместо нее - буква."

Я искал это и начинаю думать, что для этого нет «правильного» решения: либо игнорировать ошибку проверки, либо вообще удалить этот запрос. Я понимаю, что проверка кода не всегда полезна, но есть ли способ в этой ситуации?

1 Ответ

2 голосов
/ 16 января 2012

-webkit фильтр недопустим для W3C.Также значение для media='' не является стандартом W3C.Вы можете просмотреть все разрешенные типы мультимедиа здесь: http://www.w3schools.com/CSS/css_mediatypes.asp

Нет реального решения для проверки вашего кода, но вы можете сделать обходной путь , но это на самом деле не проверяет ваш код:

Обходное решение PHP:

function w3c(){
if((stristr($_SERVER["HTTP_USER_AGENT"],'w3c') === FALSE))
return true;
}

Используйте обходное решение PHP, подобное этому, для каждого контента, который не должен быть виден для валидатора W3C:

<?php if(w3c()){ ?>
    <link rel='stylesheet' type='text/css' href='/css/styles-retina.css' media='only screen and (-webkit-min-device-pixel-ratio: 2)'/>
<?php } ?>

Обходной путь Javascript:

Javascript также невидим для валидатора W3C, поэтому вы также можете использовать этот обходной путь (просто помните, что javascript можно отключить):

<script type="text/javascript"><!--
document.write('<link rel='stylesheet' type='text/css' href='/css/styles-retina.css' media='only screen and (-webkit-min-device-pixel-ratio: 2)'/>');
//--></script>
...