简体   繁体   English

如何使下拉菜单超出父列的宽度?

[英]How to make a dropdown menu extend past a parent column's width?

I have a dropdown with 3 main "categories" inside, and each "category" has several checkboxes (this is being used to filter a search). 我有一个下拉菜单,里面有3个主要的“类别”,每个“类别”都有几个复选框(用于过滤搜索)。 Here's an example of my code: 这是我的代码示例:

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <div class="col-3 dropdown"> <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">Button</button> <div class="dropdown-menu"> <div class="dropdown-item"> <div class="row"> <div class="col"> <h6>Category 1:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 2:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 3:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> </div> </div> </div> </div> 

As you may have noticed, the dropdown div is also a col-3 . 您可能已经注意到,下拉div也是col-3 Basically, I want the dropdown menu to occupy more horizontal space than the col-3 (like text-nowrap does with simple text inside a div ). 基本上,我希望下拉菜单比col-3占用更多的水平空间(就像text-nowrapdiv中使用简单文本一样)。
Here's an example of what I want it to look like: 这是我希望它看起来像的一个示例:

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <div class="dropdown"> <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">Button</button> <div class="dropdown-menu"> <div class="dropdown-item"> <div class="row"> <div class="col"> <h6>Category 1:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 2:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 3:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> </div> </div> </div> </div> 

By default, Bootstrap applies position:relative to the .dropdown class. 默认情况下,Bootstrap将position:relative应用于.dropdown类。 If you want the child element of the dropdown to extend beyond the dropdown, then add a class to the dropdown to override position:relative . 如果希望下拉列表的子元素扩展到下拉列表之外,请向下拉列表添加一个类以覆盖position:relative Here I have added the .extended class. 在这里,我添加了.extended类。

 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" integrity="sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm" crossorigin="anonymous"> <script src="https://code.jquery.com/jquery-3.2.1.slim.min.js" integrity="sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN" crossorigin="anonymous"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js" integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q" crossorigin="anonymous"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js" integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl" crossorigin="anonymous"></script> <style> .extended { position: initial !important; } </style> <div class="col-3 dropdown extended"> <button type="button" class="btn dropdown-toggle" data-toggle="dropdown">Button</button> <div class="dropdown-menu"> <div class="dropdown-item"> <div class="row"> <div class="col"> <h6>Category 1:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 2:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> <div class="col"> <h6>Category 3:</h6> <ul class="list-group"> <li class="list-group-item"><a href="#"><input type="checkbox"> Option1</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option2</a></li> <li class="list-group-item"><a href="#"><input type="checkbox"> Option3</a></li> </ul> </div> </div> </div> </div> </div> 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM