Так что проблема в том, что ваши :before
и :after
не выровнены с одинаковыми свойствами.:before
отцентрировано по вертикали, а :after
выровнено по верху.
Если вы хотите установить флажок по центру на поле ввода, например:
![enter image description here](https://i.stack.imgur.com/hlrQD.png)
Вы должны центрировать свою галочку следующим образом:
ul.calendar-filter-menu-cont > li label input[type="checkbox"]:checked + span:after {
content: '';
position: absolute;
top: .7ex;
left: .35ex;
width: .9ex;
height: .45ex;
background: rgba(0, 0, 0, 0);
border: 3px solid blue;
border-top: none;
border-right: none;
top: calc(50% - 1px); // Addition
transform: translateY(-50%) rotate(-45deg); // Change
}
Изменения включают добавление свойства top
и добавление значения translateY
к transform
* 1021.* Если вы хотите, чтобы верхняя часть флажка была выровнена с вводом следующим образом:
![enter image description here](https://i.stack.imgur.com/DWKmj.png)
Просто удалите transform
и измените свойство top
к статическому значению как таковому:
ul.calendar-filter-menu-cont > li label input[type="checkbox"] + span:before {
content: '';
display: inline-block;
position: absolute;
top: .3ex; // Change
left: 0;
/* transform: translateY(-50%); */ // Remove
border: 1px solid #979797;
width: .8em;
height: .8em;
background-color: #f3f3f3;
box-shadow: inset 0 0 5px 0 rgba(0, 0, 0, 0.2);
}