我有一个包含3列(col-md-3)的div和一个包含9列的div(col-md-9)。 col-md-3 div具有蓝色背景和<ul>
元素。在这个ul中,我在第一个元素中有一个类.active,我想给活动元素一个白色的背景颜色。
问题是我需要全宽背景白色但不能正常工作,白色背景颜色不占用col-md-3 div的全宽。你知道如何解决这个问题吗?
使用.container-fluid而不是.container修复问题,但内容未与使用.container而不是.container-fluid的上述div对齐。
问题示例:https://jsfiddle.net/1pmtxa7f/2/
HTML:
<div class="background-div">
<div class="container">
<div class="row">
<div class="col-md-3 p-0">
<ul class="admin_menu mt-4">
<li class="active"><a href="">Item 0</a></li>
<li><a href="">Item 1</a></li>
<li><a href="">Item 2 <i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
<li><a href="">Item 3 <i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
<li><a href="">Item 4<i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
</ul>
</div>
<div class="col-md-9 mt-4 bg-white">
Content
</div>
</div>
</div>
</div>
答案 0 :(得分:0)
您可以使用伪元素来模拟背景并使用位置轻松控制它(使用左/右的负值使其溢出活动元素):
.background-div {
width: 100%;
background-color: blue;
overflow: hidden;
}
.bg-white {
background-color: white;
}
.admin_menu {
list-style: none;
}
.admin_menu li {
padding: 1rem;
position: relative;
}
li.active:before {
content: "";
position: absolute;
top: 0;
bottom: 0;
left: -150%;
right: -150%;
background: #fff;
z-index: 0;
}
.admin_menu li a {
color: gray;
display: flex;
justify-content: space-between;
position: relative;
z-index: 1;
}
&#13;
<link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
<div class="background-div">
<div class="container">
<div class="row">
<div class="col-md-3 p-0">
<ul class="admin_menu mt-4">
<li class="active"><a href="">Item 0</a></li>
<li><a href="">Item 1</a></li>
<li><a href="">Item 2 <i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
<li><a href="">Item 3 <i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
<li><a href="">Item 4<i class="fa fa-chevron-down" aria-hidden="true"></i></a></li>
</ul>
</div>
<div class="col-md-9 mt-4 bg-white">
Content
</div>
</div>
</div>
</div>
&#13;