Как удалить стрелку в раскрывающемся списке в Bootstrap 4?
Я использую Bootstrap 4. Я попытался удалить стрелку в раскрывающемся меню.
Ответы , которые я нашел для Bootstrap 3, больше не работают.
jsfiddle здесь.
<div class="dropdown open">
<button class="btn btn-secondary dropdown-toggle" type="button" id="dropdownMenu1" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Dropdown
</button>
<div class="dropdown-menu" aria-labelledby="dropdownMenu1">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
</div>
</div>
Ответы
Ответ 1
Просто удалите класс dropdown-toggle из элемента. Раскрывающийся список все равно будет работать, если у вас есть атрибут data-toggle следующим образом
<button role="button" type="button" class="btn" data-toggle="dropdown">
Dropdown Without Arrow
</button>
переопределение стилей класса .dropdown-toggle влияет на все выпадающие списки, и вы можете захотеть сохранить стрелку на других кнопках, поэтому это выглядит для меня самым простым решением.
Изменение: сохранить выпадающий класс, если вы хотите сохранить стиль границы
<button role="button" type="button" class="btn dropdown" data-toggle="dropdown">
Dropdown Without Arrow
</button>
Ответ 2
С помощью CSS вы можете просто сделать это:
.dropdown-toggle::after {
display:none;
}
Ответ 3
Я не рекомендую ни один из существующих ответов, потому что:
-
.dropdown-toggle
имеет больше стиля, чем просто каретка. Удаление класса из элемента вызывает проблемы с оформлением.
-
Переопределение .dropdown-toggle
не имеет смысла. То, что вам не нужна каретка на каком-то конкретном элементе, не означает, что она вам не понадобится позже.
-
::after
не охватывает выпадающие варианты (некоторые используют ::before
).
.caret-off
используйте пользовательский .caret-off
:
.caret-off::before {
display: none;
}
.caret-off::after {
display: none;
}
Ответ 4
удалите класс "dropdown-toggle"
Ответ 5
Если вы заинтересованы в замене стрелки другим значком (например, FontAwesome), вам просто нужно удалить границу на псевдоэлементе .dropdown-toggle
.dropdown-toggle::after { border: none; }
Ответ 6
Я использовал принятый ответ довольно давно в своем проекте, но сейчас наткнулся на переменную используемую bootstrap:
$enable-caret: true !default;
Если вы установите для этого значение false, то каретка будет удалена без необходимости выполнять какой-либо пользовательский код.
Мой проект был Ruby/Rails, поэтому я использовал bootstrap-rubygem. Я изменил переменную, импортировав custom-variables.scss
, указав указанную выше переменную в false в файле application.scss
ПЕРЕД bootstrap.scss
.
Ответ 7
Boostrap генерирует это используя CSS-границу:
.dropdown-toggle:after {
border: none;
}
Ответ 8
Если вы удалите fit из выпадающего класса, как показано ниже, все выпадающие кнопки в вашей системе больше не будут иметь каретки.
.dropdown-toggle::after {
display:none;
}
Но, возможно, это не то, что вам нужно, поэтому, чтобы удалить только определенную кнопку, мы собираемся вставить класс с именем: remoecaret, и подгоним класс: dropdown-toggle следующим образом:
.removecaret.dropdown-toggle::after {
display: none;
}
и наш HTML выглядит примерно так:
<div class="btn-group">
<button class="btn btn-outline-secondary btn-sm dropdown-toggle removecaret" data-toggle="dropdown">
<i class="fa fa-bars" aria-hidden="true"></i>
</button>
<ul class="dropdown-menu dropdown-menu-right">
<li><a href="#"><a href="#"><i class="fa fa-cog" aria-hidden="true"></i> Edit</a></li>
</ul>
</div>
Ответ 9
О, я нашел способ:
.dropdown-toggle::after {
content: none;
}
Ответ 10
Вы можете сделать это.
.dropdown-toggle::after {
display: none;
}
Ответ 11
Если вы хотите точно только в этом классе кнопки начальной загрузки, сделайте:
.btn .dropdown-toggle::after {
display:none;
}
Ответ 12
Добавить без стрелки в раскрывающееся объявление класса переключателя
Ответ 13
Это работает на bootsrap4 и ng-bootstrap.
.dropdown-toggle:after {
display: none;
}