Як зробити так, щоб посилання <a href=дія*> виглядало як кнопка?


100

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

Мені було цікаво, чи можна зробити просту <a href="">some words</a>і стильну, щоб ця посилання відображалася як ця кнопка?

Якщо це можливо, як це зробити?



1
Я використовую CSS, мабуть;) google.com.ua/search?q=style+anchor+tag+like+button
antyrat

5
Користувачі повинні за зовнішнім виглядом веб-інтерфейсу знати, що таке його поведінка ... тому зовнішній вигляд кнопки не повинен використовуватися як посилання, а візуальний вигляд посилання не повинен використовуватися як кнопка для.
антагоніст

2
Зазвичай для кнопки потрібно більше одного зображення: стандартне, зависне, натиснене, активне. Інакше це не буде відчувати себе природно.
користувач123444555621

Я пропоную вам також додати cursor: pointer;в css, щоб курсор виглядав, пов'язуючи руку з вказівним пальцем, оскільки це також відбувається за допомогою звичайної кнопки і є корисною допомогою для користувача.
Р.

Відповіді:


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
якщо ви використовуєте bootstrap, ви можете робити <a class="btn btn-info"> </a> та використовувати існуючі стилі завантажувального програмного забезпечення та уникати визначення нового стилю.
stcorbett

якщо ви знайдете підкреслення у вашій кнопці, додайтеtext-decoration:none
Rohit Chemburkar

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

15

ви можете легко обернути кнопку так, як посилання <a href="#"> <button>my button </button> </a>


18
Не дійсний чувак HTML5
hamstar

1
Вони повинні змінити специфікацію на цьому; це має для мене найбільше сенсу.
Lonnie Best

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
додавання рамки-радіуса: 5px; доповнив би вигляд.
vdbuilder

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).
SOLO

це саме те, що я шукав, але це спеціально не працює <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).


ви повинні тримати дисплей: inline; а замість висоти та ширини слід скористатися накладками та висотою лінії для регулювання розміру якоря
антагоніст

@Antagonist: Оскільки ОП хоче, щоб зображення було фоновим і він, швидше за все, завжди використовував те саме, я не розумію, чому він не повинен використовувати конкретну висоту та ширину цього зображення. Але я думаю, що ОП спробує всі запропоновані рішення та вибере той, який йому здається найкращим.
r0skar

що я говорю, використовувати інші властивості css для досягнення того ж самого і підтримувати оригінальну властивість відображення для вбудовування ...
Антагоніст

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

тим, у кого виникають проблеми після додавання активних та фокусних дій, введіть ім’я класу чи id у вашу кнопку та додайте це до 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! Будь ласка, включіть у свій допис весь відповідний код, а не проставляйте посилання на зовнішній веб-сайт. Посилання чудові для додаткової інформації , але ваша публікація повинна стояти окремо від будь-якого іншого ресурсу - посилання можуть змінитися або стати "мертвим". Співробітники програми повинні мати можливість вирішити проблему, детальну у питанні прямо з вашої відповіді.
Zachary Espiritu

-3

Простий як:

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

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


1
У цьому питанні немає тегу завантаження. class="btn btn-success"- клас завантаження.
елемент11
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.