Как сделать, чтобы ссылка <a href=""> выглядела как кнопка?


100

У меня есть это изображение кнопки:
введите описание изображения здесь

Мне было интересно, можно ли сделать простую <a href="">some words</a>и стильную ссылку, которая будет отображаться как эта кнопка?

Если возможно, как мне это сделать?



1
Думаю, с помощью CSS;) google.com.ua/search?q=style+anchor+tag+like+button
antyrat 02

5
Пользователи должны знать по внешнему виду веб-интерфейса, каково его поведение ... поэтому внешний вид кнопки не должен использоваться в качестве ссылки, а внешний вид ссылки не должен использоваться в качестве кнопки для.
Antagonist

2
Обычно для кнопки требуется более одного изображения: стандартное, зависшее, нажатое, активное. В противном случае это будет неестественно.
user123444555621 02

Я предлагаю вам также добавить cursor: pointer;css, чтобы курсор выглядел так, как будто он соединяет руку с указательным пальцем, так как это также происходит с обычной кнопкой и является полезным подспорьем для пользователя.
R. Schreurs

Ответы:


107

Используя CSS:

.button {
    display: block;
    width: 115px;
    height: 25px;
    background: #4E9CAF;
    padding: 10px;
    text-align: center;
    border-radius: 5px;
    color: white;
    font-weight: bold;
    line-height: 25px;
}
<a class="button">Add Problem</a>

http://jsfiddle.net/GCwQu/


Это работает для меня, только если я применяю его к aтегу напрямую ( a {display: block ...}), что недопустимо. Вы хоть представляете, почему classатрибут внутри aтега не работает? :( Я использую Firefox 27. Я тоже пробовал, a.button {...}но тоже не работает.
just_a_girl

4
если вы используете начальную загрузку, вы можете выполнить <a class="btn btn-info"> </a> и использовать существующие стили начальной загрузки и избежать определения нового стиля.
stcorbett

если ваша кнопка подчеркнута, добавьтеtext-decoration:none
Rohit

99

Проверьте документацию Bootstrap . Класс .btnсуществует и работает с aтегом, но вам нужно добавить определенный .btn-*класс с .btnклассом.

например: <a class="btn btn-info"></a>


1
Отлично. Я использовал Bootstrap и не знал об этом; P
Фелипе Карминати

13
В последних версиях начальной загрузки вам нужен конкретный класс btn- * с классом btn. например: <a class="btn btn-info"> </a>
stcorbett,


14

Примерно так будет напоминать кнопку:

a.LinkButton {
  border-style: solid;
  border-width : 1px 1px 1px 1px;
  text-decoration : none;
  padding : 4px;
  border-color : #000000
}

См. Пример http://jsfiddle.net/r7v5c/1/ .


1
добавление радиуса границы: 5 пикселей; завершит образ.
vdbuilder 02

10
  1. Попробуй это:

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
    
    <div class="container">
      <h2>Button Tags</h2>
      <a href="#" class="btn btn-info" role="button">Link Button</a>
      <button type="button" class="btn btn-info">Button</button>
      <input type="button" class="btn btn-info" value="Input Button">
      <input type="submit" class="btn btn-info" value="Submit Button">
    </div>

  2. Вы можете использовать hrefстроку тега оттуда.

    <a href="URL" class="btn btn-info" role="button">Button Text</a>

5

Если вы хотите избежать жесткого кодирования определенного дизайна с помощью CSS, а полагаться на кнопку браузера по умолчанию, вы можете использовать следующий CSS.

a.button {
  -webkit-appearance: button;
  -moz-appearance: button;
  appearance: button;
}

Обратите внимание, что это, вероятно, не будет работать в IE.


Информацию о текущем состоянии поддержки браузером см. На caniuse.com/#feat=css-appearance ; обратите внимание, что браузер может отображаться appearance: buttonне так, как обычная кнопка (по крайней мере, когда я только что проверил Chrome 78).
СОЛО

это именно то, что я искал, но он специально не работает <a>в хроме. Протестировал, <span>и он работал нормально.
Hashbrown

4

Ни один из других ответов не показывает код, в котором кнопка ссылки меняет свой внешний вид при наведении курсора.

Вот что я сделал, чтобы это исправить:

HTML:

<a href="http://www.google.com" class="link_button2">My button</a>

CSS:

.link_button2 {
  -webkit-border-radius: 4px;
  -moz-border-radius: 4px;
  border-radius: 4px;
  border: solid 1px #1A4575;
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.4);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.4), 0 1px 1px rgba(0, 0, 0, 0.2);
  background: #3A68A1;
  color: #fee1cc;
  text-decoration: none;
  padding: 8px 12px;
  text-decoration: none;
  font-size: larger;
}

a.link_button2:hover {
  text-decoration: underline;
  background: #4479BA;
  border: solid 1px #20538D;

  /* optional different shadow on hover
  text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.7);
  -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  -moz-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 1px 1px rgba(0, 0, 0, 0.4);
  */

}

JSFiddle: https://jsfiddle.net/adamovic/ovu3k0cj/


2
  • Используйте background-imageсвойство CSS в <a>теге
  • Установить display:blockи настроить widthи heightв CSS

Это должно помочь.


1

Да, ты можешь это сделать.

Вот пример:

a{
    background:IMAGE-URL;
    display:block;
    height:IMAGE-HEIGHT;
    width:IMAGE-WIDTH;
}

Конечно, вы можете изменить приведенный выше пример по своему усмотрению. Важно, чтобы он отображался как блок ( display:block) или встроенный блок ( display:inline-block).


вы должны сохранить display: inline; и вместо использования высоты и ширины вы должны использовать отступы и высоту строки для регулировки размера якоря
Antagonist

@Antagonist: Поскольку OP хочет изображение в качестве фона, и он, скорее всего, всегда будет использовать то же самое, я не понимаю, почему он не должен использовать определенную высоту и ширину этого изображения. Но я думаю, ОП попробует все предложенные решения и выберет то, что ему больше всего подходит.
r0skar 02

Я говорю, что использовать другие свойства css для достижения того же самого и сохранить исходное свойство display как встроенное ...
Antagonist

1

Для базового HTML вы можете просто добавить тег img с src, установленным для URL вашего изображения внутри HREF (A)

<a href="http://www.google.com"><img src="http://problemio.com/img/ui/add_problem.png" /></a>

1

Вы можете создать класс для якорных элементов, которые вы хотите отображать как кнопки.

Например:

Использование изображения:

.button {
   display:block;
   background: url('image');
   width: same as image
   height: same as image
}

или используя чистый подход CSS:

.button {
    background:#E3E3E3;
    border: 1px solid #BBBBBB;
    border-radius: 3px 3px 3px 3px;
}

Всегда не забывайте скрывать текст чем-то вроде:

text-indent: -9999em;

Отличная галерея кнопок на чистом CSS здесь, и вы даже можете использовать генератор кнопок css3.

Множество стилей и варианты здесь

удачи


1

У вас есть два варианта согласованности.

  1. Используйте специфичные для платформы теги и используйте их на всем веб-сайте.
  2. Используйте JavaScript для имитации ссылки на элементе кнопки, а затем сделайте так, чтобы кнопка соответствовала внешнему виду кнопок браузера. Эти хаки с использованием кнопок css никогда не будут точными.

.

<button onclick="location.href = 'Homepage.html'; return false;">My Button</button>

return false; состоит в том, чтобы предотвратить нажатие кнопки по умолчанию.


1

Просто возьмите обычный дизайн кнопок css и примените этот CSS к ссылке (точно так же, как и к кнопке).

Пример:

<a href="#" class="stylish-button">Some words</a>

<style type="text/css">
.stylish-button {
    -webkit-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    -moz-box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    box-shadow:rgba(0,0,0,0.2) 0 1px 0 0;
    color:#333;
    background-color:#FA2;
    border-radius:5px;
    -moz-border-radius:5px;
    -webkit-border-radius:5px;
    border:none;
    font-size:16px;
    font-weight:700;
    padding:4px 16px;
    text-shadow:#FE6 0 1px 0
}
</style>

Я делал это в прошлых проектах, и IE отказывается вести себя. Я протестировал этот код, но хотел бы высказать озабоченность, требующую дополнительного обоснования.
MEM

0

для тех, у кого есть проблемы после добавления active и focus, укажите имя класса или идентификатора для вашей кнопки и добавьте его в css

например

// html-код

<button id="aboutus">ABOUT US</button>

// код css

#aboutus{background-color: white;border:none;outline-style: none;}


-1

Попробуйте этот код:

<code>

    <a href="#" class="button" > HOME </a>

    <style type="text/css">

        .button { background-color: #00CCFF; padding: 8px 16px; display: inline-block; text-decoration: none; color: #FFFFFF border-radius: 3px;}

        .button:hover { background-color: #0066FF; }

    </style>

</code>

Посмотрите это (он объяснит, как это сделать) - https://youtu.be/euti4HAJJfk


Добро пожаловать в StackOverflow! Пожалуйста, включите весь соответствующий код в свой пост, а не просто ссылку на внешний веб-сайт. Ссылки хороши для получения дополнительной информации , но ваш пост должен стоять отдельно от любого другого ресурса - ссылки могут измениться или стать «мертвыми». Товарищи-программисты смогут решить проблему, описанную в вопросе, прямо из вашего ответа.
Захари Эспириту

-3

Вот так просто:

<a href="#" class="btn btn-success" role="button">link</a>

Просто добавьте кнопку "class =" btn btn-success "& role =


1
У этого вопроса нет тега начальной загрузки. class="btn btn-success"это класс начальной загрузки.
element11
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.