Комментарии 23
Недостатком всего этого является то, что у каждого способа будут досадные недостатки, которые в реальности будут всех раздражать, а JS-аналог обычно занимает несколько строк. Небольшая цена, чтобы сделать все нормально
JS-аналог обычно занимает несколько строкКак жаль, что эти несколько строк обычно подразумевают использование какой-нибудь библиотеки на пару мегабайт…
2021 на дворе, а js до сих пор воспринимается как необязательная часть, которую якобы пользовать может не использовать, ну или использовать какой нибудь другой язык(иначе зачем писать type=«javascript»). Смиритесь уже javascript это никакой не хак, это часть браузера наряду с html и css. Задачу нужно решать так как удобнее, не ограничивая себя в инструментах. Из представленных примеров аккардеон, например, удобнее и понятнее реализовать на js. А вот рейтинг действительно вполне можно сделать на css — просто стилизовать нативные инпуты.
Чем больше событий и действий обрабатывается при помощи JavaScript тем больше тормозят сайты. Различные фреймворки например пытаются сгладить это давая возможность программисту задавать параметры анимаций в JavaScript и генерируют в результате CSS. Но лучше писать сразу CSS и убрать зависимость от фреймворка.
Реализуя без JavaScript те задачи которые можно решить без него мы перекладываем задачу на код браузера который должен работать быстрее. И таким образом освобождаем процессорное время для других задач.
Да на обработку CSS тоже тратятся ресурсы. И так или иначе CSS используется для стилизации и манипуляции елементами. Просто в одном случае CSS будет скрыт прослойкой Javascript а в другом он пишется напрямую.
Не понимание того как работает CSS приводит к тому что программист вынужден дублировать функциональность которая уже есть в коде браузера медленным JavaScript и тем самым замедлять работу сайта.
Я уверен что многие вещи, которые раньше можно было сделать только на js, сегодня благодаря развитию html и css, можно, и даже нужно, делать без использования скриптов. Но в некоторых случаях реализация на «чистом css/html» будет запутана, ненадёжна, да и просто тормознута, по сравнению с двумя строчками js. Ну и у js есть много других применений помимо слайдеров/аккордеонов. Так что списывать немного рано.
Серьезно? Тяжело же вам приходится в интернете. Сейчас все больше сайтов работают по принципу приложения. Без JS интернет сегодня не нужен, это просто факт.
Сейчас все больше сайтов работают по принципу приложения.
Потому что зачем учить какие-то другие подходы, тратиться на ресурсы сервера, и так далее. Выучил реакт — можешь всё. Отправили статический JS — дальше это проблема телефона и его пользователя, почему так медленно рисуется.
Усечение текста на CSS и надо делать. Но хаки со статусами чекбоксов/радио-батонов выглядят несколько костыльно, т.к. чекбоксы используются не совсем по назначению.
Я понимаю что это перевод статьи и в оригинале примеры и их код находится на codepen. Но хотябы код продублируйте пожалуйста под спойлерами в самой статье чтоб не приходилось заходить на codepen. Он у меня всячески отказывается правильно работать и показывает в первую очередь свои предупреждения вместо того что должен.
а старые браузеры больше не нужно поддерживать
"Умеют верстать только под ИЕ" 2021 Edition
Выходит, что если поставил рейтинг убрать его полностью уже нельзя.
И если эти значения участвуют в каком-то общем рейтинге, то всё, ты уже искажаешь статистику. Из-за того, что случайно щелкнул, а убрать уже нельзя.
Можно конечно сделать нулевую звезду, но это как-то неинтуитивно и непривычно.
Компонент рейтинга
Недостатком этой реализации является то, что радиокнопки находятся в обратном порядке
Можно решить и не меняя обратного порядка:
.rating:hover .rating__label {
color: lightgrey;
}
.rating:hover .rating__label:hover ~ .rating__label {
color: gray;
}
Вы можете создавать эти элементы, не используя JavaScript