JSFiddle - React, Tailwind, and code Playground
by Константин Дралюк
HTML
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/style.css">
<div class="preview">
<div class="size-btn">
<a href="javascript:void(0)" class="size-btn__text">
Подобрать размер
</a>
<div class="size-btn__size-hint">
<div class="size-btn__size">
35 <span>EUR</span>
</div>
<a href="javascript:void(0)" class="size-btn__hint"></a>
</div>
<div class="size-btn-hint">
<div class="size-btn-hint__text">Краткий описательный текст про данный размер</div>
<a href="javascript:void(0)" class="size-btn-hint__btn">OK</a>
</div>
</div>
</div>
SCSS
.preview {
font-family: 'Proxima Nova Rg', sans-serif;
padding: 50px;
}
.size-btn, .size-btn * {
box-sizing: border-box;
}
.size-btn {
display: inline-flex;
height: 45px;
border: 1px solid #000;
cursor: default;
position: relative;
}
.size-btn__text {
display: flex;
align-items: center;
padding: 0 15px;
font-size: 14px;
font-weight: bold;
border-right: 1px solid #000;
transition: .15s ease;
cursor: pointer;
text-decoration: none;
color: #000;
}
.size-btn__text:hover {
background-color: #e5e5e5;
}
.size-btn__size-hint {
display: flex;
align-items: center;
padding-left: 6px;
}
.size-btn__size {
display: flex;
flex-direction: column;
align-items: center;
font-size: 16px;
font-weight: bold;
line-height: 1;
}
.size-btn__size span {
font-size: 10px;
font-weight: normal;
}
.size-btn__hint {
margin: 0 6px;
flex-shrink: 0;
width: 18px;
height: 18px;
background: #000 no-repeat center url(data:img/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAYAAAAICAQAAABwz0azAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAHdElNRQflBgQNFgZ3XMHXAAAASklEQVQI10WIQQ2AMBDAGoIBLJwFkICFWZgFLKABCVhgWpCwSSiPZaGvthg+qh4wk2lsBLeFjqsaXbOaxtcdYALgov3xsjCwegJ8q+cem0BKf2UAAAAASUVORK5CYII=);
border-radius: 50%;
font-size: 12px;
color: #fff;
display: flex;
align-items: center;
justify-content: center;
cursor: pointer;
position: relative;
transition: .15s ease;
}
.size-btn__hint:hover {
background-color: #343433;
}
.size-btn-hint {
position: absolute;
left: 100%;
top: 50%;
transform: translateX(8px) translateY(-50%);
opacity: 0;
visibility: hidden;
transition: .25s ease;
min-width: 210px;
padding: 27px 17px 50px;
box-shadow: 0px 6px 29.75px 5.25px rgba(1, 1, 1, 0.22);
background: #fff;
cursor: default;
}
.size-btn-hint.is-visible {
opacity: 1;
visibility: visible;
transform: translateX(-8px) translateY(-50%);
}
.size-btn-hint__text {
...
JavaScript
!function () {
var $showHint = document.querySelector('.size-btn__hint')
var $hint = document.querySelector('.size-btn-hint')
var $closeHint = document.querySelector('.size-btn-hint__btn')
$showHint.addEventListener('click', function () {
$hint.classList.add('is-visible')
})
$closeHint.addEventListener('click', function () {
$hint.classList.remove('is-visible')
})
}();