У меня есть собственный переключатель, элемент span
- это граница кнопки, а ::after
- это точка, которая заполняет кнопку. Я хочу центрировать эту точку внутри промежутка, я использую flexbox для этого, но по какой-то причине, если я даю ::after
это значения:
width: 1.5rem;
height: 1.5rem;
, это не работает, это немного справа и снизу. Однако, если я даю обоим свойствам значение 1.4rem
, оно полностью в центре.
Почему это происходит?
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
html {
/* 1rem = 10px */
font-size: 62.5%;
}
body {
font-family: Arial, Helvetica, sans-serif;
}
input[type='checkbox'] {
display: none;
}
input[type='checkbox']+label {
cursor: pointer;
display: inline-flex;
flex-direction: row-reverse;
align-items: center;
font-size: 1.6rem;
margin: 30px;
}
input[type='checkbox']+label span {
margin-right: 8px;
background-color: #fff;
display: inline-flex;
align-items: center;
justify-content: center;
width: 3rem;
height: 3rem;
border-radius: 50rem;
border: 0.4rem solid #2b90d9;
}
input[type='checkbox']+label span::after {
content: '';
display: inline-block;
width: 1.5rem;
height: 1.5rem;
border-radius: 50rem;
background-color: #2b90d9;
opacity: 0;
}
input[type='checkbox']:checked+label span::after {
opacity: 1;
}
<input type="checkbox" id="radio" />
<label for="radio">test
<span></span>
</label>