javascript - 如何修复将内容覆盖到其一侧的 Bootstrap 下拉菜单?
问题描述
我有一个 Bootstrap 下拉按钮,我希望它位于页面的右侧。
下拉菜单应为页面宽度的 100%,并且在激活时应覆盖页面上的所有内容。但是,我的下拉按钮左侧有一个大徽标,我希望用户能够单击该徽标以将其带回主页。不幸的是,这个标志的一部分被 Bootstrap 按钮所覆盖。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<a href="#">
<div class="logo" style="width: 300px; height: 300px; background-color: black;"></div>
</a>
<div class="dropdown custom-drop hide">
<a class="btn float-right btn-secondary btn-lg dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Menu
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
<style>
.dropdown {
position: absolute;
z-index: 99;
width: 100%;
top: 100px;
}
.dropdown-toggle {
margin-right: 50px;
}
.dropdown-menu {
text-align: center;
z-index: 999;
width: 100%;
}
.dropdown-item {
padding: 0.75rem 1.5rem;
width: 100%;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</body>
</html>
我怎样才能解决这个问题?
解决方案
您可以限制下拉更改其宽度的区域。
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title></title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css" integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
</head>
<body>
<div class="logo-container">
<a href="#">
<div class="logo"></div>
</a>
</div>
<div class="dropdown custom-drop hide">
<a class="btn float-right btn-secondary btn-lg dropdown-toggle" href="#" role="button" id="dropdownMenuLink" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
Menu
</a>
<div class="dropdown-menu" aria-labelledby="dropdownMenuLink">
<a class="dropdown-item" href="#">Action</a>
<a class="dropdown-item" href="#">Another action</a>
<a class="dropdown-item" href="#">Something else here</a>
</div>
</div>
<style>
.logo-container {
width: 300px;
height: 300px;
overflow: hidden;
}
.logo {
background-color: black;
width: 100%;
height: 100%;
}
.dropdown {
position: absolute;
z-index: 99;
width: calc(100% - 320px);
top: 100px;
right: 0px;
}
.dropdown-toggle {
margin-right: 50px;
}
.dropdown-menu {
position: absolute;
text-align: center;
z-index: 999;
width: calc(100% + 320px);
}
.dropdown-item {
padding: 0.75rem 1.5rem;
width: 100%;
}
</style>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.11.0/umd/popper.min.js" integrity="sha384-b/U6ypiBEHpOf/4+1nzFpr53nxSS+GLCkfwBdFNTxtclqqenISfwAzpKaMNFNmj4" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
</body>
</html>
推荐阅读
- html - 标题没有继承 CSS 中类设置的新边距或宽度
- python - 从 matplotlib 中的直方图中提取数据点
- c# - 如何使 [DisallowNull] 显示对象初始化程序的错误?
- python - 日期时间转换为年
- ios - 尝试在 swift 中使用 URLSession 解析 JSON 时出错
- java - 如何使用 AES 方法解密加密列?
- angular - 如何以角度比较未来日期和当前日期?
- windows - 在 Windows 上为 Linux 开发 docker 容器的推荐方法是什么?
- python - 如何根据模型要求重塑我的数据?
- spring - 使用休眠序列创建唯一的 8 位数字的最佳实践是什么