Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Aingis:,«Чистым» такой код невозможно назвать«Чистым» был назван согласно замыслам статьи использовать только теги HTML и css. Вчитывайтесь в замысел топика, иначе минусы за мои вкусы зимой — как то авторитарно!
идея: не ожидая пришествия html5, — смастерить спойлер «по клику» посредством css и HTML
Kolonist,« а в том, что ваш метод, 1) сам по себе хак,»С чего вдруг — Хак? Или сss вида: input:checked + elem недопустимо в какой-либо спецификации?
Aingis,-«Здесь же вставляются лишние элементы ради сомнительной цели. Нарушается семантика»Не убедительно, — укажи на эти лишние элементы?
.spoiler > input + .box > blockquote{ display: none; } .spoiler > input:checked + .box > blockquote { display: block; }
.spoiler > .box > blockquote{ display: none; } .spoiler.active > .box > blockquote { display: block; }
Aingis, — «и зависит от структуры HTML»Приведите примеры. Код достаточно гибок к структуре окружения,
С какого рожна тут чекбокс?Хм, — вспомним, что в эпоху Аякса — чекиты, селекты и input(ы) всех марок — можно увидеть разбросанными по странице, согласно удобству интерфейса, а отсылается — собирается все через FormData и отправляется Аяксом.
чтобы присобачить :checked не по назначениюОпять проводка собственного мнения, — есть спецификация! В которой оглашено применение псевдоклассов. Запреты — не аргументированы
идея: не ожидая пришествия html5, — смастерить спойлер «по клику» посредством css и HTMLПоскольку не загорами => details htmlbook.ru/html/details
не по назначению используется сам HTML-элемент inputЗачитайте пожалуста список назначений для чекита? К примеру на стандатных шаблонах форуиа чекит вне формы стоит для скрипта транслита — переводит — не переводить вввод текста — т.е для скрипта(транслита) — это по назначению — для свойства сss cпойлера — нет. Аргументы могут быть лишь одни — спецификация, и предупреждения о багах производителей браузеров. Да и потом, все эти вещи и скрипты и сss для данного применения временны, грядущее HTML5 даёт нам уже тег спойлера с автоматикой. Данная версия лишь отработка сss замены, когда заъочется подключить к контейнеру скрытия плавность хода, скругления и иные диз наработки, поскольку в текущее время они выполнялись по большей части скриптом(Возьмите плавность спойлера на Хабре, а уже 'завтра' css нужно будет адаптировать к details.)
который, к тому же, может закешироваться и ненавязчиво использоваться повторно в куче мест),Хитро улыбаясь, — а что, сss файл намного хуже кешируется? 2. Скрипты создают бо'льшую нагрузку на браузер, нежели сss. 3-е и решающее, делал я вещицу для себя, — понравился ход решения и показался занятным. Поэтому выложил, посколь задачка интересная.
Просто не надо это решение позиционировать как практическоеНу начало cтатьи точно соответствует кино: — 31декабря «Мы все вместе ходим в баню», и далее описание короткого приключения, а тут завелось как-то по- серьезному, хотя аргументы — слабые.
SelenIT2, Возможно, в некоторых частных случаях может быть уместно использование псевдокласса :target для этойИмхо, «:target» — не Айс — чекит забавней — если потыкать по аккордиону (по ссылке), а потом попробовать вернуться на исходную страницу, стартовую страницу, — число страниц растёт согласно кол-ву кликов.
Aingis: появляется лишняя точка фокусаА это плохо? — Вероятно кто-то найдёт это нужным
tabindex="-1"
— что бы не споткнутсяЯ знаю, потому и написал: «…хоть бы tabindex="-1" приписали…»
.spoiler > input + .box > blockquote{
display: none;
}
Piterski:, Вот интересный пример через этот же псевдоклассЭто прошлогодний наш вариант, неудобства были описаны:
посколь тег label приводил к необходимости прописывания в каждом экземпляре input в спойлере нового ID, что создавало лишние «движения» серверу.
.content {
background-color:white;
}
.content .spoiler{
color:white;
background-color:silver;
}
.content .spoiler:hover{
color:black;
}
Cпойлер средствами css…