Ответ 1
Нет, они специфичны для браузера и не определены в стандартной спецификации CSS.
Таким образом, они правильно следуют правилам для расширения расширения CSS. Это просто не в официальной спецификации CSS W3C.
Я использую границы границ webkit/mozilla и свойства CSS теней теней, но я хочу, чтобы CSS проверял (чего в настоящее время нет). Есть ли способ заставить его утверждать?
http://jigsaw.w3.org/css-validator/
Нет, они специфичны для браузера и не определены в стандартной спецификации CSS.
Таким образом, они правильно следуют правилам для расширения расширения CSS. Это просто не в официальной спецификации CSS W3C.
Хотя синтаксис для расширений поставщиков упомянутый в модуле синтаксиса CSS3 и введенный в грамматику, позволяет поставщикам реализовать свои собственные префиксы, игнорируя Стандартные фактические расширения поставщиков не признаются в качестве официальных свойств CSS. Это не изменится, поскольку они являются собственностью и специфичны для поставщиков, которые изобретают и используют их.
Однако последнее усовершенствование (начало 2011 года) к Jigsaw W3C CSS Validator позволяет уменьшить валидность ошибок, вызванных расширениями поставщиков, до предупреждений. Найдите этот новый вариант среди других, например уровень CSS для проверки, путем расширения раздела Дополнительные параметры:
Это упрощает поиск реальных проблем с вашей таблицей стилей, если она еще не проверяет. Если расширения поставщика являются единственными вещами, вызывающими ошибки, превращение их в предупреждения позволит вашей таблице стилей предварительно проверять. Это также устраняет необходимость поддерживать расширения поставщиков в отдельной таблице стилей, которые вы должны скрывать от валидатора.
Предупреждения являются самыми дальнейщими, которые вы можете уклониться от ошибок, хотя, как правило, префиксы поставщиков все еще нестандартны и, следовательно, технически недействительны CSS.
Отчасти это возможно. Соберите все неподдерживаемые классы css в одном файле (css3.css)
Пример:
css3.css
.round{
-moz-border-radius-bottomleft: 5px;
-moz-border-radius-topleft: 5px;
-moz-border-radius-topright: 5px;
-moz-border-radius-bottomright: 5px;
border-bottom-left-radius: 5px 5px;
border-bottom-right-radius: 5px 5px;
border-top-left-radius: 5px 5px;
border-top-right-radius: 5px 5px;
-webkit-border-bottom-left-radius: 5px 5px;
-webkit-border-bottom-right-radius: 5px 5px;
-webkit-border-top-left-radius: 5px 5px;
-webkit-border-top-right-radius: 5px 5px;
}
default.css
.square{
width: 100px;
height: 100px;
border: 1px solid #000000;
}
page.html
<html>
<head>
<link rel="stylesheet" type="text/css" href="default.css">
<script type="text/javascript">
document.write('<link rel="stylesheet" type="text/css" href="css3.css">');
</script>
</head>
<body>
<div class="square round"></div>
</body>
</html>
Поисковая система не запускает клиентские скрипты, поэтому ваши неподдерживаемые атрибуты W3C не повредят вашему SEO. Что касается проверки зеленого css, извините, еще нет.
Нет, поскольку они не являются частью стандарта, на который валидатор проверяет. Единственное решение, которое приходит на ум, - это привести несовместимые свойства в отдельную таблицу стилей.
Специфичные свойства Mozilla и WebKit не будут проверяться. Что вы можете сделать, это разделить ваш "обогащенный" css на отдельный лист стилей. Так же, как вы отделяете свои стили взлома от своей основной таблицы стилей. Таким образом ваши базовые таблицы стилей будут проверяться.
Если вы используете отдельный файл CSS для моего "недействительного" или "специфичного для браузера" CSS, используйте небольшой PHP для фильтрации этого CSS с помощью проверки:
<?php
if(preg_match("/jigsaw.w3c.org/i", $_SERVER['HTTP_HOST'])){
echo '<link rel="stylesheet" href="invalid.css" type="text/css" media="screen, projection" />';
}
?>
Затем ссылку на валидатор с CSS3 в качестве профиля (принимает border-radius, text-shadow и т.д.):
http://jigsaw.w3.org/css-validator/check/referer?profile=css3
$_ SERVER ['HTTP_HOST'] не работает, но возможно есть что-то, что будет?
Ками действительно опубликовала лучшее решение. Я создаю отдельный файл css3.js и document.write(''); CSS строка за строкой:
CSS3.js
document.write('\
<style type="text/css">\
home_low_mod {zoom: 1;}\
#home_module {-moz-border-radius: 8px;-webkit-border-radius: 8px;-moz-box-shadow: 0px 1px 3px #a5a6a2;-webkit-box-shadow: 0px 1px 3px #a5a6a2;behavior: url(PIE.htc);}\
#page {-moz-border-radius: 8px 8px 0 0;-webkit-border-radius: 8px 8px 0 0;behavior: url(PIE.htc);}\
</style>');
@BoltClock ПОЛНОСТЬЮ прямо на этом... W3C действительно добавил критерии поиска vextwarning
уровня BOOL
. Это НЕ задокументировано... но если вы используете их проверку SOAP API, вы можете добавить параметр в полезная нагрузка вашего запроса проверки GET
....
&vextwarning=true
например... если вы хотите отредактировать команду валидатора CSS в TextMate... вы бы "Редактировали связки...", aka ⌃
+
⌥ +
⌘
+
B
#!/usr/bin/env ruby
print '<html><head><meta http-equiv="Refresh" content="0; URL='
print 'http://jigsaw.w3.org/css-validator/validator?\
warning=0&profile=none&usermedium=all&text='
scope = STDIN.read
…
to - something - больше, например,
#!/usr/bin/env ruby
print '<html><head><meta http-equiv="Refresh" content="0; URL='
print 'http://jigsaw.w3.org/css-validator/validator?\
warning=2&vextwarning=true&profile=css3&usermedium=all&text='
scope = STDIN.read
…
Обратите внимание, что я также добавил level=css3
и изменил warninglevel
. Измените их, согласно API, по мере необходимости.
Если вы хотите увидеть все параметры, доступные через механизм отправки "онлайн"... открыть Firebug или инспектор Webkit и т.д. при отправке запроса через их форма и проверьте full request content
, чтобы получить еще больше параметров по мере необходимости...