#html #css
#HTML #css
Вопрос:
у меня проблема с использованием перехода для стилизованного якоря.
он должен расшириться до большей ширины и показать символ. я попробовал это width max-width, но, кажется, я что-то пропустил. глификон работает, но не «анимированная» ширина.
HTML:
<a class="link" href="/"> Order <a/>
css:
a.link {
background: #0069b4 none repeat scroll 0% 0%;
color: white;
font-size: 24px;
height: 60px;
cursor: pointer;
border-radius: 30px;
text-align: center;
padding: 10px 15px;
transition: max-width 1000ms ease-in-out;
-webkit-transition: max-width 1000ms ease-in-out;
-moz-transition: max-width 1000ms ease-in-out;
}
a.link:hover {
padding: 10px 40px;
max-width: 100%;
}
a.link:hover:after {
font-family: icomoon;
content: "e903";
color: #ffffff;
font-size: 20px;
}
Ответ №1:
Ваш код не работает, потому что у него нет рабочей ширины. Из-за заполнения меняется размер, и, следовательно, transition:max-width не будет работать.
Простой способ исправить это в вашем коде — добавить transition:all.
Проверьте это:
a.link {
background: #0069b4 none repeat scroll 0% 0%;
color: white;
font-size: 24px;
height: 60px;
cursor: pointer;
border-radius: 30px;
text-align: center;
padding: 10px 15px;
transition: all 1s ease-in-out;
-webkit-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
}
a.link:hover {
padding: 10px 40px;
max-width: 100%;
}
a.link:hover:after {
font-family: icomoon;
content: "e903";
color: #ffffff;
font-size: 20px;
}
<a class="link">Order></a>
Если вы просто хотите перейти только к свойству width, вам следует добавить display:inline-block
и свойство width к классу anchor.
a.link {
background: #0069b4 none repeat scroll 0% 0%;
color: white;
font-size: 24px;
height: 60px;
cursor: pointer;
border-radius: 30px;
width: 100px;
display: inline-block;
text-align: center;
padding: 10px 15px;
transition: width 1s ease-in-out;
-webkit-transition: width 1s ease-in-out;
-moz-transition: width 1s ease-in-out;
}
a.link:hover {
padding: 10px 40px;
width: 150px;
}
a.link:hover:after {
font-family: icomoon;
content: "e903";
color: #ffffff;
font-size: 20px;
}
<a class="link">Order</a>
Комментарии:
1. Пожалуйста, отметьте это как решаемое, если это работает для вас @Gabbax0r, рад, что это работает.
Ответ №2:
a.link {
background: #0069b4 none repeat scroll 0% 0%;
color: white;
font-size: 24px;
height: 60px;
cursor: pointer;
border-radius: 30px;
text-align: center;
padding: 10px 15px;
}
a.link:hover {
padding: 10px 40px;
max-width: 100%;
transition: 1000ms ease-in-out;
-webkit-transition:1000ms ease-in-out;
-moz-transition:1000ms ease-in-out;
}
a.link:hover:after {
font-family: icomoon;
content: "e903";
color: #ffffff;
font-size: 20px;
}
Вы должны добавить переход в селектор наведения без max-width
Ответ №3:
Я считаю, что вам нужно установить максимальную ширину на что-то меньшее, чем 100% в a.link.
Что вы сейчас делаете, так это устанавливаете максимальную ширину на 100% при наведении курсора мыши, но значение максимальной ширины по умолчанию уже равно 100%.
Либо установите значение max-width меньше 100% в разделе a.link, либо установите значение max-width больше 100% в разделе a.link:hover.
Когда дело доходит до transition-property, вы могли бы также написать transition: all 1000ms ease-in-out вместо transition: max-width 1000ms ease-in-out, поскольку использование all гарантирует, что любая анимация на .link будет иметь те же свойства.
Кроме того, я бы рекомендовал вам не использовать href=»/», если вы не собираетесь направлять пользователя на главную страницу. Если вам просто нужен якорь, который нигде не ссылается, вы можете удалить его, используя href .
Надеюсь, это поможет.