Браузеры и стандарты: Ахиллес и черепаха
На «Хабре»
Упомянутая статья за полгода не обновлялась (о чём говорит отсутствие упоминания об SVG в IE9), так что предпосылки неверные. Предпосылки неверные, но вывод, впрочем, правильный. В плане стандартов будущее крайне далеко.
Должен сказать, что любые тесты браузеров — это сферические кони в вакууме. Какие, нахрен, ACID3, какие SunSpider? «Опера» до сих пор не поддерживает CSS1! Ибо сказано:
The format of a percentage value is an optional sign character (’+’
or ’-’, with ’+’ being the default) immediately followed by a number (with or without a decimal point) immediately followed by ’%’.
CSS1, раздел 6.2, проценты могут быть указаны с десятичной точкой. Мне кажется, это означает, что я могу указать дробные проценты и всё будет хорошо. Во всех браузерах так и есть. Во всех, кроме «Оперы». Самая распоследняя «Опера» округлит их вниз.
Если этот браузер заявляется поддержку селекторов CSS3, то для меня, как разработчика, это должно, видимо, означать, что работает и любая их комбинация, не так ли? Иначе, что толку от поддержки селекторов по одному в строке?
И вот реальная задача — делал я галереи на сайте без использования JavaScript, на голом CSS (спасибо селектору «:target», это самое крутое, что появилось в CSS за последние годы). Простая задача — если «:target» не указывает ни на один из тегов в текущей галерее, нужно указать, что выбрано первое изображение.
Да, пожалуйста (у меня первое изображение это последний элемент списка):
.gallery li:not(:target) ~ li:last-child a {
background: #fff;
color: #000;
}
.gallery li:target ~ li:last-child a {
background: #aaa;
background: rgba(170, 170, 170, 0.5);
color: #fff;
}Несложно же. «Опера» и «Файерфокс» чудесно с этим справляются, почему бы и нет, все селекторы им знакомы. Но это не работает в «Хроме» и «Сафари»
Так повсюду, в блоге IE авторы
Конечно, тут ещё сказывается тот факт, что большинство этих спецификаций находятся в стадии черновика, вот реализовала «Опера» четыре года назад в браузере
В общем, к этим стандартам нам ещё всем идти и идти, много лет. Это основной вывод. А теперь другие мысли.
Селектор «:target» хоть и самое чудесное, но, в то же время, почти самое недодуманное в CSS за последние годы. Это уже ощутили мои читатели. Конечно, «:target» добавляет интерактива в CSS, но хотелось бы, чтобы этот интерактив не касался напрямую HTML, т. е. был
Предыдущая моя заметка о conditional comments. Я уже
И ещё, как я уже писал W3C вряд ли
Комментарии 6
.gallery li:target:before {
content: «»;
position: absolute;
top: 0;
}
Но, справедливости ради, надо добавить, что сие работает только в Опере, что ещё раз подтверждает тему заметки
Я не очень понял вопрос, но вот тут http://www.cssplay.co.uk таких (как я понимаю) галерей куча, например: http://www.cssplay.co.uk/menu/gallery_click