@Sergey750il

Как решить задачу с кнопкой?

Доброго времени суток. Не могу понять как решить задачу, что бы при изменение состояния кнопки при hover, active она не смещала соседние блоки? Раньше решал такую задачу через :before, но сейчас разметка возможна только как в песочнице. Сложность это сохранить одинаковый размер текста во всех состояниях.

https://jsfiddle.net/zvhgjxum/1/
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 3
Aetae
@Aetae
Тлен
Абсолютно универсальный вариант: кнопке задаёшь position: absolute и кладёшь её в position:relative контейнер с фиксированными размерами.
Ответ написан
0xD34F
@0xD34F Куратор тега CSS
.btn {
  margin: 5px;
}

.btn:hover {
  padding: 20px 30px;
  margin: 0px;
}

.btn:active {
  padding: 10px 20px;
  margin: 10px;
}
Ответ написан
Комментировать
@Kizzeon
Во первых менять padding при :hover и :active не стоит вообще. Тогда сама анимация становится дёрганной и ест больше ресурсов(по причине перерасчёта размера элемента).

Лучше при hover сделать transform: scale(); , который ничего никуда не сдвигает и более плавный.
Можно калькулятором высчитать сколько нужно там поставить что бы были необходимые пиксельные значения.
Если хочется разное увеличение то можно использовать scaleX и scaleY
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы