#html #css
Вопрос:
Я работаю над веб-сайтом и столкнулся с небольшой проблемой, которую на самом деле не могу решить. В принципе, у меня есть кнопка «Кредиты», которая должна иметь некоторые эффекты, когда пользователь наводит на нее курсор. Однако, если я наведу курсор на кнопку, она переместит все содержимое страницы вниз.
Я пытался решить эту проблему совсем немного, но, к сожалению, не смог найти решение.
HTML:
lt;h2gt;header 1lt;/h2gt; lt;p style="text-align: center"gt;some textlt;brgt;lt;brgt; lt;a href="/credits"gt;lt;button class="creditsbtn"gt;buttonlt;/buttongt;lt;/agt;lt;/pgt; lt;brgt;lt;hrgt; lt;h2gt;header 2lt;/h2gt; lt;p style="text-align: center"gt;some more textlt;brgt;lt;brgt;lt;/pgt;
CSS:
.creditsbtn { font-family: 'Courier New', Courier, monospace; color: #333; background: #AB5DFC; border-radius: 10px; border: #AB5DFC; padding-top: 5px; padding-bottom: 7px; padding-right: 10px; padding-left: 10px; font-size: 20px; } .creditsbtn:hover { transform: translateY(-5px); color: #333; box-shadow: .0rem .2rem .4rem #777; border: 5px solid #b16afd; pointer-events: visible; position: relative; z-index: 0; visibility: visible; float: none; }
Я уверен, что рано или поздно смогу найти решение, но у меня график, и мне нужно сделать еще кое-что на странице, поэтому мне нужно будет сосредоточиться на этом.
Спасибо за любой ответ!!
.creditsbtn { font-family: 'Courier New', Courier, monospace; color: #333; background: #AB5DFC; border-radius: 10px; border: #AB5DFC; padding-top: 5px; padding-bottom: 7px; padding-right: 10px; padding-left: 10px; font-size: 20px; } .creditsbtn:hover { transform: translateY(-5px); color: #333; box-shadow: .0rem .2rem .4rem #777; border: 5px solid #b16afd; pointer-events: visible; position: relative; z-index: 0; visibility: visible; float: none; }
lt;h2gt;header 1lt;/h2gt; lt;p style="text-align: center"gt;some textlt;brgt;lt;brgt; lt;a href="/credits"gt;lt;button class="creditsbtn"gt;buttonlt;/buttongt;lt;/agt;lt;/pgt; lt;brgt;lt;hrgt; lt;h2gt;header 2lt;/h2gt; lt;p style="text-align: center"gt;some more textlt;brgt;lt;brgt;lt;/pgt;
Комментарии:
1. Пожалуйста, удалите границу при наведении .creditsbtn:наведите{граница:5 пикселей сплошная #b16afd;}
2. Возможно, измените
border
значение наoutline
, если вы хотите, чтобы кнопка была больше.3. вы хотите большую кнопку, пожалуйста, добавьте — .creditsbtn {граница: 5 пикселей сплошная #b16afd;}
Ответ №1:
Попробуйте сделать это :
.creditsbtn { font-family: 'Courier New', Courier, monospace; color: #333; background: #AB5DFC; border-radius: 10px; /* line I added */ border: 5px solid transparent; padding-top: 5px; padding-bottom: 7px; padding-right: 10px; padding-left: 10px; font-size: 20px; } .creditsbtn:hover { transform: translateY(-5px); color: #333; box-shadow: .0rem .2rem .4rem #777; /* line I added */ border-color:#b16afd; pointer-events: visible; position: relative; z-index: 0; visibility: visible; float: none; }
lt;h2gt;header 1lt;/h2gt; lt;p style="text-align: center"gt;some textlt;brgt;lt;brgt; lt;a href="/credits"gt;lt;button class="creditsbtn"gt;buttonlt;/buttongt;lt;/agt;lt;/pgt; lt;brgt;lt;hrgt; lt;h2gt;header 2lt;/h2gt; lt;p style="text-align: center"gt;some more textlt;brgt;lt;brgt;lt;/pgt;
Анимация немного отличается от того, что у вас есть, но таким образом вы можете избежать той проблемы, которая у вас есть.
Ответ №2:
Вместо того, чтобы иметь границу, которая толкает другой контент вниз. У вас может быть сплошная прямоугольная тень того же цвета, что и кнопка. Это увеличит поле при наведении курсора, не влияя на другое содержимое. Затем добавьте вторую прямоугольную тень для эффекта затенения.
box-shadow: 0px 0px 0px 10px #color, 0px 8px 8px #000; /* before the comma is your enlarged border but set your color. After the comma is an actual shadow currently set to black*/