Bootstrap 4.を使用しています。ドロップダウンの矢印を削除しようとしました。
answers Bootstrap 3の場合は機能しません。
Jsfiddleは here です。
<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>
Cssを使用すると、次のことができます。
.dropdown-toggle::after {
display:none;
}
要素から「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>
次の理由により、既存の回答を推奨しません。
.dropdown-toggle
には、キャレット以外のスタイリングがあります。要素からクラスを削除すると、 スタイリングの問題 が発生します。
.dropdown-toggle
をオーバーライドしても意味がありません。特定の要素にキャレットが必要ないからといって、後で必要になるわけではありません。
::after
は ドロップダウンバリアント をカバーしません(一部は::before
を使用します)。
代わりにカスタム.caret-off
クラスを使用します。
.caret-off::before {
display: none;
}
.caret-off::after {
display: none;
}
「dropdown-toggle」クラスを削除します
矢印を別のアイコン(FontAwesomeなど)に置き換えることに興味がある場合は、.dropdown-toggleの擬似要素の境界線を削除するだけで済みます。
.dropdown-toggle::after { border: none; }
私は私のプロジェクトで受け入れられた答えをかなり長い間使用していましたが、たった今 bootstrapで使用される変数 に出くわしました:
$enable-caret: true !default;
これをfalseに設定すると、カスタムコードを実行することなくキャレットが削除されます。
私のプロジェクトはRuby/Railsだったので、 bootstrap-rubygem を使用していました。 custom-variables.scss
で上記の変数をfalseに設定してapplication.scss
をインポートすることで変数を変更しましたBEFORE the bootstrap.scss
file/files。
以下のようにドロップダウントグルクラスに合わせて削除すると、システム上のすべてのドロップダウンボタンにキャレットがなくなります。
.dropdown-toggle::after {
display:none;
}
しかし、それはあなたが望むものではないかもしれないので、特定のボタンだけを削除するために、remoecaretというクラスを挿入し、次のようにクラスをドロップダウントグルします:
.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>
Bootstrapは、CSSボーダーを使用してこれを生成します。
.dropdown-toggle:after {
border: none;
}