Показать / скрыть категоризированные элементы с помощью CSS

Итак, я хочу создать галерею на веб-сайте, который не поддерживает Javascript, поэтому я не знал, как к этому подойти. Скажем, у меня есть четыре категории: эскизы, штриховые рисунки, закрашенные ячейки и раскрашенные. Я хочу, чтобы эти четыре кнопки были переключателями.

Затем я закодировал галерею так, чтобы все мои работы изначально отображались, и после нажатия одного из переключателей отображалось все, кроме подходящих работ.

Sketch | Sketch | Cell | Lineart Lineart | Sketch | Cell | Sketch

Щелкните эскиз, и тогда четыре эскиза будут отображаться рядом. Также было бы здорово иметь возможность применять две разные категории для работы, на случай, если я изменю категории, так что некоторая помощь в том, как я могу применить две вещи (например, поместить мужчина и женщина в качестве категорий, а затем пометить изображение двумя знаками + люди как оба) также были бы оценены.

Этот был хорошим примером того, к чему я стремился, но он использует JS.

Привет, я хотел бы помочь вам здесь. Но мне нужна дополнительная информация. Почему именно вы не можете включить JavaScript на этом веб-сайте?

buildpax 16.11.2018 03:21

К сожалению, функции javascript занесены в черный список, потому что люди использовали их для внедрения вредоносных скриптов и тому подобного на этом сайте. Я подумал о том, чтобы просто переместить эту конкретную галерею в другое место, но, если мне это не нужно, это значительно упростит задачу, потому что все мои изображения уже размещены там.

Tatsuya Suou 16.11.2018 03:33

Здравствуйте, я не думаю, что вы сможете сделать это, как в соответствии с это, поскольку стиль CSS будет применяться только тогда, когда мышь опущена, а не после.

edwin 16.11.2018 03:34

Можно ли ссылаться на внешний скрипт, обслуживаемый через CDN? Если это так, JavaScript все еще возможен. В противном случае ответ, указанный ниже sburke0708, на первый взгляд кажется разумным выбором.

buildpax 16.11.2018 20:53
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Ангулярный шаблон для бронирования путешествий
Toor - Travel Booking Angular Template один из лучших Travel & Tour booking template in the world. 30+ валидированных HTML5 страниц, которые помогут...
0
4
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Держи, @Tasuya Suou. Надеюсь, это вам поможет. Я использовал общий селектор ~. Вы можете прочитать больше об этом здесь. https://developer.mozilla.org/en-US/docs/Web/CSS/General_sibling_selectors.

p {
  display: none;
}

input[value = "fruit"]:checked~p.fruit,
input[value = "veg"]:checked~p.veg,
input[value = "nuts"]:checked~p.nuts,
input[value = "drink"]:checked~p.drink {
  display: block;
}

input:checked+label {
  color: blue;
}
<html>

<head>
  <title>Parcel Sandbox</title>
  <meta charset = "UTF-8" />
  <link rel = "stylesheet" type = "style/css" href = "./index.css" />
</head>

<body>
  <input type = "radio" id = "fruit" name = "product" value = "fruit" />
  <label for = "fruit">Fruit</label>
  <input type = "radio" id = "veg" name = "product" value = "veg" checked />
  <label for = "veg">Veg</label>
  <input type = "radio" id = "nuts" name = "product" value = "nuts" />
  <label for = "nuts">Nuts</label>
  <input type = "radio" id = "drink" name = "product" value = "drink" />
  <label for = "drink">Drink</label>

  <p class = "fruit veg nuts drink">Product 1</p>
  <p class = "drink">Product 2</p>
  <p class = "veg nuts drink">Product 3</p>
  <p class = "veg nuts">Product 4</p>
</body>

</html>

https://codesandbox.io/s/48y9o68oz7

Другие вопросы по теме