Bootstrap 4 - кнопка расширения SASS не работает с тегом привязки?

Мне нравится стиль кнопок по умолчанию из pre-Bootstrap 4. Чтобы попытаться создать свою собственную, я придумал следующий SASS:

.btn-default {
    @extend .btn;
    border-color: #A5A5A5;
}

.btn.btn-default:hover,
.btn.btn-default:focus,
.btn.btn-default:active,
.btn.btn-default.active {
    color: #808080;
}

Это работает должным образом, если я использую тег <button>, но не работает, если я использую тег <a>. Почему это не сработает на обоих?

<a href = "#" class = "btn btn-default">
    Test Anchor
</a>

<button type = "submit" class = "btn btn-default">
    Test Button
</button>

Bootstrap 4 - кнопка расширения SASS не работает с тегом привязки?

Почему это не работает с тегом привязки, если вы обычно можете назначить класс .btn тегу привязки, и он будет стилизовать его как кнопку?

Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Введение в CSS
Введение в CSS
CSS является неотъемлемой частью трех основных составляющих front-end веб-разработки.
Как выровнять Div по центру?
Как выровнять Div по центру?
Чтобы выровнять элемент <div>по горизонтали и вертикали с помощью CSS, можно использовать комбинацию свойств и значений CSS. Вот несколько методов,...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
CSS: FlexBox
CSS: FlexBox
Ранее разработчики использовали макеты с помощью Position и Float. После появления flexbox сценарий полностью изменился.
2
0
892
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Тег <a> не имеет поведения кнопки. Inorder попробуйте следующий код

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

 text-decoration: none;
 color: initial;
}

Спасибо, это приблизило меня. Единственное, чего не хватает, это border-radius. Я попытался добавить его, а затем установить на $ btn-border-radius, что не сработало. Затем найдите радиус кнопки Bootstrap и попытайтесь установить мой на 0,25 rem, но это тоже не сработало. Вы знаете, как установить радиус границы для тега привязки?

Caverman 14.08.2018 18:32

Кнопка начальной загрузки имеет радиус границы по умолчанию. Если вы хотите переопределить его, будьте более конкретным в своем классе и переопределите загрузочный css

Ramesh 14.08.2018 18:38

Я не пытаюсь обойти кнопку Bootstrap, я пытаюсь заставить CSS, который вы включили выше, чтобы тег привязки выглядел как кнопка. Единственное, чего не хватает в приведенном выше коде, - это радиус границы. Я попытался добавить border-radius: .25rem; с приведенным выше кодом, но похоже, что это не сработало.

Caverman 14.08.2018 18:43

Сделайте !important и проверьте

Ramesh 14.08.2018 18:46

Нет. Нет. Я также просто читал, где это не работает в IE. Я закончил тем, что изменил вторичный цвет кнопки Bootstrap, и похоже, что это работает как с кнопкой, так и с привязкой ...

Caverman 14.08.2018 19:00
Ответ принят как подходящий

Я не думаю, что вам нужно @extend .btn, поскольку вы уже используете .btn.

Все другие варианты btn-* имеют color, background-color и border-color, поэтому в CSS вы можете создать btn-default с помощью:

.btn-default{
   color:#333;
   background-color:#bbb;
   border-color:#a5a5a5
 }
.btn.btn-default:hover,
.btn.btn-default:focus,
.btn.btn-default:active,
.btn.btn-default.active {
    color: #808080;
}

Способ Bootstrap SASS - использовать вариант кнопки @mixin ...

.btn-default {
    @include button-variant(#bbb, #a5a5a5, #bbb, darken(#bbb, 10%), darken(#bbb, 10%), darken(#bbb, 12.5%))
}

Демо: https://www.codeply.com/go/CWJidmeI1D

Вот параметры миксина с кнопочным вариантом:

button-variant($background, $border, $hover-background, $hover-border, $active-background, $active-border)

Спасибо! CSS работает так, как ожидалось. Я все еще новичок в SASS и предпочел бы такой способ. Пробовал этот SASS, и у него отсутствует только эффект пылесоса. Я попытаюсь изучить и поиграть с @mixin, чтобы посмотреть, смогу ли я заставить его также пылесосить.

Caverman 14.08.2018 19:49

YW! Да, третий параметр управляет этим параметром, поэтому вы можете изменить его по мере необходимости.

Zim 14.08.2018 19:54

Другие вопросы по теме