Когда курсор мыши завис на кнопке, текст перемещается вниз, мне нужно переместить текст только влево по 5px, при наведении на кнопку, как это реализовать?
div {
text-align: center;
}
span {
margin-right: 10px;
}
button {
background: green;
border: none;
padding: 9px;
color: #FFF;
border-radius: 50%;
cursor: pointer;
transition: all 500ms ease;
}
button:hover {
padding: 13px;
transition: all 500ms ease;
}<div>
<span>test</span><button>⟶</button>
</div>Я не совсем понимаю. Вы хотите, чтобы текст был заблокирован по оси Y и перемещен на 5 пикселей по оси X?
да. перемещаться только по оси x при наведении кнопки






«Проблема», с которой вы столкнулись, заключается в том, что тип отображения элемента span является встроенным, поэтому он будет следовать за своими братьями и сестрами.
Я полагаю, что есть несколько способов решить эту проблему.
Вы можете добавить vertical-align: top; в диапазон. (Супер простое исправление css, сохраняющее HTML как есть. Обратная сторона: исправляет текст в верхней части элемента)
div {
text-align: center;
}
span {
vertical-align: top;
margin-right: 10px;
}
button {
background: green;
border: none;
padding: 9px;
color: #FFF;
border-radius: 50%;
cursor: pointer;
transition: all 500ms ease;
}
button:hover {
padding: 13px;
transition: all 500ms ease;
}<div>
<span>test</span><button>⟶</button>
</div>Чтобы действительно исправить это (отсутствие перетекания текста в верхнюю часть элемента), вам нужно добавить элемент-оболочку за пределами диапазона:
.center {
text-align: center;
}
span {
margin-right: 10px;
}
.wrapper {
display:inline-block;
}
button {
background: green;
border: none;
padding: 9px;
color: #FFF;
border-radius: 50%;
cursor: pointer;
transition: all 500ms ease;
}
button:hover {
padding: 13px;
transition: all 500ms ease;
}<div class = "center">
<p class = "wrapper"><span>test</span></p><button>⟶</button>
</div>Вы также можете отобразить родительский элемент как гибкий и соответственно выровнять дочерние элементы:
.flex {
display: flex;
justify-content: center;
align-items: center;
}
span {
margin-right: 10px;
}
button {
background: green;
border: none;
padding: 9px;
color: #FFF;
border-radius: 50%;
cursor: pointer;
transition: all 500ms ease;
}
button:hover {
padding: 13px;
transition: all 500ms ease;
}<div class = "flex">
<div><span>test</span></div><button>⟶</button>
</div>
Редактор, пожалуйста, не меняйте CSS при форматировании