Я немного изменил Дейв ДеСандро Изотоп пример Комбинированные фильтры с функцией, ванильный JS :
Внутри тега <button> я вставил <picture> иa <span> tag:
<button>
<picture>
<span>
<button class="button" data-filter=".red"> <picture> <source data-srcset="https://via.placeholder.com/30/f00/ 1x, https://via.placeholder.com/30/f00/ 2x" type=image/webp> <source data-srcset="https://via.placeholder.com/30/f00/ 1x, https://via.placeholder.com/30/f00/ 2x"> <img class=l src=https://via.placeholder.com/30/f00/ loading=eager alt> </picture> <span>red</span> </button>
Пример: https://codepen.io/dash/pen/NWWBqjW
Теперь, когда вы непосредственно нажимаете на дочернюю * img или span область кнопки (цветовой фильтр красный и синий), Ничего не произошло. Интересно, как сделать всю кнопку нажатой.
img
span
Установка правила CSS .button > * {pointer-events: none} решает проблему.
.button > * {pointer-events: none}
Но, возможно, существует более элегантный способ сделать кнопку нажатой, даже если она имеет дочерние элементы. Есть идеи?