#css #padding #margin #spacing
Вопрос:
Предположим, что следующий код:
*,
*:hover {
transition: 0.2s all ease;
}
button {
margin: 0% 5% 0% 5%;
padding: 0% 1% 0% 1%;
}
button:hover {
padding: 0% 2% 0% 2%;
}
<button>Button 1</button>
<button>Button 2</button>
<button>Button 3</button>
Как я могу предотвратить увеличение заполнения одной кнопки для нажатия кнопок в правой части, если есть свободное место?
Комментарии:
1. Вы можете определить абсолютное положение для этих кнопок или сохранить их в divs с фиксированным размером.
2. @CrynetOmega
position:absolute
полностью скрывает кнопки 1 и 2. Я, вероятно, не правильно понял. Для другого решения я помещаю каждый из них в другой div? Должен ли я указывать фиксированный размер для div(ов) или элементов?3. Я бы поместил каждую кнопку в один div, центрировал ее и определил div с фиксированной шириной и высотой, например:
width:200px; height:50px;
возможно, еще один div соdisplay:inline-block;
всеми из них.
Ответ №1:
Уменьшите margin
и убедитесь, что общая сумма одинакова ( 6%
в вашем случае).
*,
*:hover {
transition: 0.2s all ease;
}
button {
margin: 0% 5% 0% 5%;
padding: 0% 1% 0% 1%;
}
button:hover {
padding: 0% 2% 0% 2%;
margin: 0% 4% 0% 4%;
}
<button>Button 1</button>
<button>Button 2</button>
<button>Button 3</button>
Комментарии:
1. Связано ли это с тем, что увеличение заполнения и сохранение одинакового поля в коробке, которая всегда имеет одинаковый размер, технически невозможно?
2. @LercDsgn, что логично, потому что вы что-то добавляете , поэтому вам нужно также удалить что-то еще, чтобы сохранить общий размер таким же (или мы рассматриваем совершенно другой макет, и в этом случае есть много способов)