จะลบลูกศรในดรอปดาวน์ใน Bootstrap 4 ได้อย่างไร?


119

ฉันใช้ Bootstrap 4 ฉันพยายามลบลูกศรในเมนูแบบเลื่อนลง

ตอบผมพบว่าสำหรับเงินทุน 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>

คำตอบ:


178

เพียงแค่ลบคลาส "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>

3
ด้วยเหตุผลบางประการวิธีแก้ปัญหาอื่น ๆ ไม่ได้ผลสำหรับฉัน ฉันใช้ Bootstrap 4 นี่เป็นสิ่งเดียวที่ใช้ได้ผล
anonymousacorn

9
สิ่งนี้ไม่ได้ผลสำหรับฉัน ด้านขวาของปุ่มไม่โค้งมนอีกต่อไป
Jace Browning

ง่ายกว่าการเขียน CSS ที่กำหนดเองด้วย!important:)
hughjdavey

2
ฉันทดสอบแล้วและมันก็ใช้ได้ดีทีเดียว! ผ่านการทดสอบใน FF, Chrome, IE และ Opera - แม้แต่บนอุปกรณ์ Android มือถือที่มีเบราว์เซอร์ในตัวก็ไม่มีลูกศรที่น่ารำคาญ - ขอบคุณมาก! ข้อสังเกต: อย่าลบแอตทริบิวต์ "dropdown-toggle" ที่สมบูรณ์เพียงลบแอตทริบิวต์ "-toggle" ออกดังนั้นสไตล์ของคุณสำหรับเมนูแบบเลื่อนลงจะไม่ถูกกำจัด ดังนั้น "dropdown-toggle" จึงเปลี่ยนเป็น "dropdown" - หวังว่านี่จะช่วยได้
Kerim Yagmurcu

126

ด้วย css คุณสามารถทำได้:

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

11
ฉันต้องรวมไว้ด้วย!importantเพื่อให้ CSS ที่กำหนดเองนี้มีผล
Jace Browning

1
สิ่งนี้จะส่งผลต่อรายการแบบเลื่อนลงทุกรายการที่ใช้ในหน้าอื่น ๆ หากคุณใช้ CSS เดียวกัน
Pavan Nath

เพิ่มคำนำหน้าเพิ่มเติมเพื่อปิดใช้งานลูกศรสำหรับปุ่มเท่านั้นเช่น .btn.btn-outline-secondary.dropdown-toggle :: after {display: none! important; }
Puppylpg

35

ฉันไม่แนะนำคำตอบใด ๆ ที่มีอยู่เนื่องจาก:

  • .dropdown-toggleมีสไตล์ที่มากกว่าแค่คาเร็ต การถอดชั้นจากองค์ประกอบที่ทำให้เกิดปัญหาการจัดแต่งทรงผม

  • การลบล้าง.dropdown-toggleไม่สมเหตุสมผล เพียงเพราะคุณไม่ต้องการคาเร็ตในบางองค์ประกอบไม่ได้หมายความว่าคุณจะไม่ต้องการมันในภายหลัง

  • ::afterไม่ครอบคลุมตัวแปรแบบเลื่อนลง (การใช้งานบางส่วน::before)

ใช้แบบกำหนดเอง.caret-offในองค์ประกอบเดียวกับองค์ประกอบของคุณ.dropdown-toggle:

.caret-off::before {
    display: none;
}
.caret-off::after {
    display: none;
}

3
คำตอบที่ดีที่สุดที่ฉันต้องการเพียงแค่เพิ่มบางข้อมูลพิเศษสำหรับคนอื่น ๆ dropdown-toggleเช่นชั้นนี้ควรจะเพิ่มพร้อมกับ
eestein


5

หากคุณสนใจที่จะแทนที่ลูกศรด้วยไอคอนอื่น (เช่น FontAwesome) คุณเพียงแค่ต้องลบเส้นขอบบนองค์ประกอบหลอกของ. dropdown-toggle

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

4

ฉันใช้คำตอบที่ยอมรับมาระยะหนึ่งแล้วในโครงการของฉัน แต่ตอนนี้สะดุดกับตัวแปรที่ bootstrap ใช้ :

$enable-caret: true !default;

หากคุณตั้งค่านี้เป็นเท็จเครื่องหมายคาเร็ตจะถูกลบออกโดยไม่ต้องทำโค้ดที่กำหนดเองใด ๆ

โครงการของฉันคือทับทิม / Rails ดังนั้นฉันถูกใช้บูต-RubyGem ผมเปลี่ยนตัวแปรโดยการนำเข้าcustom-variables.scssกับชุดตัวแปรข้างต้นเป็นเท็จในของฉันapplication.scss ก่อนbootstrap.scssไฟล์ / ไฟล์


2

หากคุณลบคลาสแบบเลื่อนลง - สลับด้านล่างออกปุ่มดรอปดาวน์ทั้งหมดในระบบของคุณจะไม่มีเครื่องหมายคาเร็ตอีกต่อไป

.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>&nbsp;Edit</a></li>
  </ul>
</div>





-2

ใช้งานได้กับ bootsrap4 และ ng-bootstrap

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

3
คัดลอกคำตอบที่ยอมรับอายุ 2 ปี แต่พิมพ์ผิด
miken32
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.