Подтвердить что ты не робот

NgbDropdown: убрать стрелку раскрывающегося списка

Я использую компонент NgbDropdown в своем приложении Angular 2. Он работает нормально, однако я хочу убрать стрелку, которая отображается с правой стороны кнопки.

<div class="d-inline-block" ngbDropdown #myDrop="ngbDropdown">
  <button class="btn btn-outline-primary" id="dropdownMenu1" ngbDropdownToggle>Toggle dropdown</button>
  <div class="dropdown-menu" aria-labelledby="dropdownMenu1">
    <button class="dropdown-item">Action - 1</button>
    <button class="dropdown-item">Another Action</button>
    <button class="dropdown-item">Something else is here</button>
  </div>
</div>

Выпадающее изображение

4b9b3361

Ответ 1

Решение

Просто добавьте следующий стиль CSS, чтобы переопределить стиль по умолчанию псевдоэлемента .dropdown-toggle::after:

.dropdown-toggle::after {
    display:none;
}

Почему?

По умолчанию bootstrap добавляет стрелку к выпадающему компоненту через ::after pseudo-element.

Выполнение этого удаляет его.

Ниже показан LIVE DEMO.

Как вы это решаете?

Используя инструменты chrome dev, вы можете проверить элемент:

введите описание изображения здесь

Из вышеизложенного видно, что существует набор стилей для псевдоэлемента:: after в классе .dropdown-toggle. Отпустите и измените свойства элемента! Для этого мы меняем свойство display на none:

введите описание изображения здесь

Псевдоэлемент больше не существует!!:

введите описание изображения здесь

Ответ 2

добавьте следующий стиль, чтобы переопределить значение по умолчанию

.dropdown-toggle::after{
    content:initial
 }

LIVE DEMO

Ответ 3

В Bootstrap 4 вы можете убрать стрелку раскрывающегося списка, которая называется caret, объявив переменную $enable-caret SASS и установив для нее значение false:

$enable-caret: false;

Это переопределяет значение по умолчанию true установленное в Bootstrap _variable.scss:

// Options
//
// Quickly modify global styling by enabling or disabling optional features.

$enable-caret:                                true !default;

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