Вы также можете сделать это. У вас есть ссылка внутри div, на которую вы ссылаетесь, дайте ей псевдоэлемент с абсолютным положением, чтобы он охватывал весь элемент, и теперь вы даете своим кнопкам z-индекс 1, и они находятся над этим псевдоэлементом, это также применимо к другим ссылкам внутри, без остановки распространения.
const button = document.querySelector('.js-console-log')
button.addEventListener('click', () => {
alert('I dont trigger the link')
})
.header {
position: relative;
padding: 3rem;
border: 1px solid deepskyblue;
}
.header__link {
font-size: 2rem;
}
.header__link::after {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.button {
position: relative;
padding: 1rem;
background-color: aqua;
border: none;
z-index: 1;
}
<div class="header">
<a href="#0" class="header__link">Link to this awesome place...</a>
<button class="button js-console-log">I'll do something</button>
</div>