Bootstrap 3 ยังอยู่ที่ RC แต่ฉันแค่พยายามใช้มัน ฉันไม่สามารถหาวิธีวางคลาสเมนูย่อยได้ แม้จะไม่มีคลาสใน CSS และแม้แต่เอกสารใหม่ก็ไม่พูดอะไรเกี่ยวกับมัน
มันอยู่ที่นั่นใน 2.x พร้อมชื่อคลาสเป็นดรอปดาวน์ - เมนูย่อย
Bootstrap 3 ยังอยู่ที่ RC แต่ฉันแค่พยายามใช้มัน ฉันไม่สามารถหาวิธีวางคลาสเมนูย่อยได้ แม้จะไม่มีคลาสใน CSS และแม้แต่เอกสารใหม่ก็ไม่พูดอะไรเกี่ยวกับมัน
มันอยู่ที่นั่นใน 2.x พร้อมชื่อคลาสเป็นดรอปดาวน์ - เมนูย่อย
คำตอบ:
อัปเดตในปี 2018
dropdown-submenu
ได้ถูกลบออกใน Bootstrap 3 RC ในคำพูดของ Bootstrap ผู้เขียน Mark Otto ..
"เมนูย่อยไม่มีสถานที่บนเว็บมากตอนนี้โดยเฉพาะเว็บบนมือถือพวกเขาจะถูกลบด้วย 3.0" - https://github.com/twbs/bootstrap/pull/6342
แต่ด้วย CSS พิเศษเล็กน้อยคุณจะได้รับฟังก์ชั่นเดียวกัน
Bootstrap 4 (เมนูย่อย navbar เมื่อเลื่อน)
.navbar-nav li:hover > ul.dropdown-menu {
display: block;
}
.dropdown-submenu {
position:relative;
}
.dropdown-submenu>.dropdown-menu {
top:0;
left:100%;
margin-top:-6px;
}
เมนูย่อย Navbar เลื่อนลงเลื่อนลงเมนูย่อยเลื่อนลง
Navbar เมนูย่อย (จัดชิดขวา)
เมนูย่อยเลื่อน Navbar เมนูเลื่อนลง (ชิดขวา)
Navbar เลื่อนเมนูย่อย (ไม่มีเมนูย่อย)
Bootstrap 3
นี่คือตัวอย่างที่ใช้ 3.0 RC 1: http://bootply.com/71520
นี่คือตัวอย่างที่ใช้ Bootstrap 3.0.0 (สุดท้าย): http://bootply.com/86684
CSS
.dropdown-submenu {
position:relative;
}
.dropdown-submenu>.dropdown-menu {
top:0;
left:100%;
margin-top:-6px;
margin-left:-1px;
-webkit-border-radius:0 6px 6px 6px;
-moz-border-radius:0 6px 6px 6px;
border-radius:0 6px 6px 6px;
}
.dropdown-submenu:hover>.dropdown-menu {
display:block;
}
.dropdown-submenu>a:after {
display:block;
content:" ";
float:right;
width:0;
height:0;
border-color:transparent;
border-style:solid;
border-width:5px 0 5px 5px;
border-left-color:#cccccc;
margin-top:5px;
margin-right:-10px;
}
.dropdown-submenu:hover>a:after {
border-left-color:#ffffff;
}
.dropdown-submenu.pull-left {
float:none;
}
.dropdown-submenu.pull-left>.dropdown-menu {
left:-100%;
margin-left:10px;
-webkit-border-radius:6px 0 6px 6px;
-moz-border-radius:6px 0 6px 6px;
border-radius:6px 0 6px 6px;
}
ตัวอย่างมาร์กอัป
<div class="navbar navbar-default navbar-fixed-top" role="navigation">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-ex1-collapse">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
</div>
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li class="menu-item dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Drop Down<b class="caret"></b></a>
<ul class="dropdown-menu">
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 1</a>
<ul class="dropdown-menu">
<li class="menu-item ">
<a href="#">Link 1</a>
</li>
<li class="menu-item dropdown dropdown-submenu">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">Level 2</a>
<ul class="dropdown-menu">
<li>
<a href="#">Link 3</a>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
PS - ตัวอย่างใน navbar ที่ปรับตำแหน่งซ้าย: http://bootply.com/92442
.dropdown-submenu:hover {background: #e2e1e1;}
วิธีแก้ปัญหา @ เคลลี่เป็นสิ่งที่ดี แต่จะไม่ทำงานบนอุปกรณ์มือถือเนื่องจากสถานะโฮเวอร์จะไม่ทำงาน
ฉันได้เพิ่ม JS เล็กน้อยเพื่อให้ได้พฤติกรรม BS 2.3.2 กลับมา
PS: มันจะทำงานร่วมกับ CSS ที่คุณไปที่นั่น: http://bootply.com/71520แม้ว่าคุณสามารถแสดงความคิดเห็นในส่วนต่อไปนี้:
CSS:
/*.dropdown-submenu:hover>.dropdown-menu{display:block;}*/
JS:
$('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
// Avoid following the href location when clicking
event.preventDefault();
// Avoid having the menu to close when clicking
event.stopPropagation();
// If a menu is already open we close it
$('ul.dropdown-menu [data-toggle=dropdown]').parent().removeClass('open');
// opening the one you clicked on
$(this).parent().addClass('open');
});
ผลลัพธ์สามารถพบได้ในธีม WordPress ของฉัน (ด้านบนของหน้า): http://shprinkone.julienrenaux.fr/
$(this).closest(".dropdown-submenu").toggleClass("open");
ซึ่งจะเปิด / ปิดรายการเมนูลิงก์ เพื่อให้โฮเวอร์บนเดสก์ท็อปตรวจสอบความกว้างของวิวพอร์ตของเบราว์เซอร์เป็นสิ่งที่จำเป็นและจะแตกต่างกันไปในแต่ละไซต์
จนถึงวันนี้ (9 มกราคม 2014) Bootstrap 3 ยังไม่รองรับเมนูแบบเลื่อนลง
ฉันค้นหา Google เกี่ยวกับเมนูนำทางที่ตอบสนองต่อและพบว่านี่เป็นสิ่งที่ดีที่สุดสำหรับฉัน
มันเป็นเมนูสมาร์ท http://www.smartmenus.org/
ฉันหวังว่านี่จะเป็นทางออกสำหรับทุกคนที่ต้องการเมนูนำทางด้วยเมนูย่อยหลายระดับ
อัพเดท 2015-02-17 ตอนนี้เมนูสมาร์ทสนับสนุนสไตล์ Bootstrap สำหรับเมนูย่อยอย่างเต็มที่ สำหรับข้อมูลเพิ่มเติมโปรดดูที่เว็บไซต์เมนูสมาร์ท
รหัสของ Shprink ช่วยฉันได้มากที่สุด แต่เพื่อหลีกเลี่ยงการดรอปดาวน์เพื่อออกจากหน้าจอฉันได้อัปเดตเป็น:
JS:
$('ul.dropdown-menu [data-toggle=dropdown]').on('click', function(event) {
// Avoid following the href location when clicking
event.preventDefault();
// Avoid having the menu to close when clicking
event.stopPropagation();
// If a menu is already open we close it
$('ul.dropdown-menu [data-toggle=dropdown]').parent().removeClass('open');
// opening the one you clicked on
$(this).parent().addClass('open');
var menu = $(this).parent().find("ul");
var menupos = $(menu).offset();
if (menupos.left + menu.width() > $(window).width()) {
var newpos = -$(menu).width();
menu.css({ left: newpos });
} else {
var newpos = $(this).parent().width();
menu.css({ left: newpos });
}
});
CSS: จากสีพื้นหลัง: #eeeeee เป็นสีพื้นหลัง: # c5c5c5 - ตัวอักษรสีขาวและพื้นหลังสีอ่อนดูไม่ดี
.nav .open > a,
.nav .open > a:hover,
.nav .open > a:focus {
background-color: #c5c5c5;
border-color: #428bca;
}
ฉันหวังว่านี่จะช่วยผู้คนได้มากเท่าที่ฉันคิด!
แต่ฉันหวังว่า Bootstrap จะเพิ่มคุณสมบัติย่อยกลับมาโดยเร็ว
แสดงความคิดเห็นเพื่อแก้ปัญหาที่เป็นประโยชน์จริงๆของ Skelly : ใน Bootstrap-เขื่อง 3.3.6, utilities.scss สาย 19: มี.pull-left
float:left !important
ตั้งแต่นั้นมาฉันแนะนำให้ใช้! สำคัญใน CSS ของเขาเช่นกัน:
.dropdown-submenu.pull-left {
float:none !important;
}
ฉันชนกับปัญหานี้เมื่อไม่กี่วันที่ผ่านมา ฉันลองวิธีแก้ปัญหามากมายและไม่มีใครทำงานให้ฉันได้ในตอนท้ายฉันได้สร้าง extenion / override ของรหัสดรอปดาวน์ของ bootstrap มันเป็นสำเนาของรหัสต้นฉบับที่มีการเปลี่ยนแปลงฟังก์ชั่น closeMenus
ฉันคิดว่ามันเป็นทางออกที่ดีเพราะไม่มีผลต่อคลาสหลักของ bootstrap js
คุณสามารถตรวจสอบได้ที่ gihub: https://github.com/djokodonev/bootstrap-multilevel-dropdown
ฉันทำวิธีอื่นในการเลื่อนลง หวังว่านี่จะเป็นประโยชน์เพียงเพิ่มสคริปต์ js นี้
<script type="text/javascript"> jQuery("document").ready(function() {
jQuery("ul.dropdown-menu > .dropdown.parent").click(function(e) {
e.preventDefault();
e.stopPropagation();
if (jQuery(this).hasClass('open2'))
jQuery(this).removeClass('open2');
else {
jQuery(this).addClass('open2');
}
});
}); < /script>
<style type="text/css">.open2{display:block; position:relative;}</style>