#css #validation #string
#css #проверка #строка
Вопрос:
Я пытался проверить свой CSS, и следующие строки постоянно возвращают ошибку Parse Error [empty string]
.content { width:80%; text-align:center; margin-left:auto; margin-right:auto;
max-width:400px; border-width:4px; border-style:solid; border-color:#339900;
padding:5px; margin-top:10px; margin-bottom:10px; border-radius:20px;
background-color:#ccffcc; }
#side_link { position:fixed; bottom:5px; right:-4px;
background-image:url('img/FruitfulLogo.png'); height:29px; width:22px;
border-style:solid; border-width:2px; border-bottom-left-radius:5px;
border-top-left-radius:5px; border-color:#F90; background-color:#FF9; }
#side_link:hover { background-image:url('img/FruitfulLogo_over.png'); }
Я упускаю что-то действительно очевидное или действительно неясное?
Комментарии:
1. Какой валидатор вы используете? jigsaw.w3.org/css-validator кажется, что все в порядке, кроме вашего радиуса границы…
2. @kjl: Скорее всего, W3C Jigsaw (официальный), поскольку он выдает те же ошибки для меня. И вы получаете эти ошибки, потому что вы проверяете CSS2.1, а не CSS3.
3. @BoltClock — Ах, я вижу это, забыл изменить css на версию 3
4. Использовал набор jigsaw validator для проверки CSS уровня 3, и я постоянно получаю эти ошибки! Я почти одержимо очистил CSS и в моем фактическом документе! Вы получаете те же ошибки при проверке в CSS3 или это просто сбой? @kjl что-то не так с радиусом моей границы?
5. Я согласен с комментарием об ошибке валидатора. Удалите элементы с радиусом границы в .content и #side_link, и все пройдет нормально. Насколько я могу видеть, они верны.
Ответ №1:
По-видимому, радиус границы, выдающий ошибку синтаксического анализа [пустая строка], является ошибкой в W3C CSS validator.
Смотрите http://www.w3.org/Bugs/Public/show_bug.cgi?id=11975 .
Ответ №2:
Вы используете элементы css3, пока это всего лишь черновик. Средства проверки w3 еще не оборудованы для работы с большим количеством новых свойств и атрибутов, и в некоторых случаях они будут выдавать ошибки в совершенно корректном css. Это одна из них.
Просто дайте им год — или больше — на исправление. До тех пор, используйте свое собственное суждение, css относительно прост в синтаксическом отношении.
Комментарии:
1. Я думаю, что border-radius больше не находится в черновике, поэтому все браузеры поддерживают его без префиксов поставщика.
2. @x64igor Мне не удалось найти «официальную» версию модуля border, поэтому я предполагаю, что он все еще находится в состоянии черновика w3.org/TR/2002/WD-css3-border-20021107/#the-border-radius несмотря на это, средство проверки имеет странное поведение и в отношении других свойств, таких как свойство short hand
font
, которое также не проверяется при использовании размера шрифта / высоты строки short.
Ответ №3:
Как также прокомментировал @BoltClock, похоже, это ошибка валидатора.
Удалите элементы с радиусом границы в .content и #side_link, и все пройдет нормально. Насколько я могу видеть, они верны.
Ответ №4:
.content {
margin:10px auto;
padding:5px;
border:4px solid #390;
border-radius:20px;
width:80%;
max-width:400px;
background-color:#cfc;
text-align:center;
}
#side_link {
position:fixed;
bottom:5px;
right:-4px;
width:22px;
height:29px;
border:2px solid #F90;
border-radius:5px 0 5px 0;
background-color:#FF9;
background-image:url('img/FruitfulLogo.png');
}
#side_link:hover {
background-image:url('img/FruitfulLogo_over.png');
}
Я собираюсь согласиться с тем, что валидатор сходит с ума, потому что, когда я ввожу выше, он показывает ошибки. Но тогда вы должны отметить, что под ошибками он выводит все вышеперечисленное и говорит «все это допустимо».
Ответ №5:
Я пропустил это через валидатор W3C, и вот что я получил в ответ.
3: .content — Property border-radius не существует на уровне CSS 2.1, но существует в: 20px 20px
7: #side_link — Свойство border-bottom-left-radius не существует на уровне CSS 2.1, но существует в: 5px 5px
8: #side_link — Свойство border-top-left-radius не существует на уровне CSS 2.1, но существует в: 5px 5px
При проверке версии CSS3 это те же номера строк.
Комментарии:
1. Потому что вы проверяете CSS2.1, а не CSS3.
2. При проверке версии CSS3 это те же цифры.
3. Тогда у меня та же проблема. Что-то не так с моим CSS или это проблема валидатора, как вы думаете?
4. Я не думаю, что это CSS, я думаю, что это средство проверки. Поскольку правило на самом деле не генерирует ошибку, похоже, что средство проверки не видит ничего между
{
и}