html - CSS:带有水平滚动和下拉按钮的顶部栏
问题描述
我正在尝试创建一个可以在小屏幕中水平滚动的顶栏。问题在于,将“overflow-x”分配给 auto 也会将“overflow-y”设置为 auto,因此栏中的任何下拉按钮(或工具提示等)都会触发垂直滚动。
是否可以只有水平滚动,无论是溢出还是以任何其他方式?
我创建了一个简单的演示来演示这个问题。如果您减小浏览器的宽度,则会出现水平滚动条(根据需要),但如果您将鼠标悬停在下拉按钮的顶部,则会出现垂直滚动条,并且下拉内容会“被困”在顶部栏中。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Title</title>
<!-- CSS Classes -->
<style>
/* Topbar Classes */
.topbar {
display : flex;
justify-content : space-between;
position : fixed;
top : 0;
left : 0;
right : 0;
background-color : #dddddd;
padding : 0.5rem 2rem;
overflow-x : auto;
white-space : nowrap;
}
/* Dropdown Classes */
.dropdown {
position : relative;
display : inline-block;
}
.dropdown-content {
display : none;
position : absolute;
background-color : white;
min-width : 100px;
z-index : 1;
}
.dropdown-content a {
padding : 4px;
text-decoration : none;
display : block;
}
.dropdown-content a:hover {
background-color : #f1f1f1
}
.dropdown:hover .dropdown-content {
display : block;
}
</style>
</head>
<body>
<!-- Navigation -->
<div class="topbar">
<div style="display:inline-block;margin-right:12px">
<div style="display:inline-block;padding:4px"><span>Navigation Top Bar Title</span></div>
<div style="display:inline-block;padding:4px"><span>></span></div>
<div style="display:inline-block;padding:4px"><span>App Information</span></div>
</div>
<div style="display:inline-block">
<!-- Quick Search Input -->
<div style="float:left;margin-right:3px"><input type="text" placeholder="Quick Search..."></div>
<!-- Buttons -->
<button type="button">Search</button>
<button type="button">New</button>
<button type="button">Save</button>
<button type="button">Clear</button>
<button type="button">Copy</button>
<button type="button">Paste</button>
<button type="button">Delete</button>
<button type="button">Help</button>
<!-- Dropdown Button -->
<div class="dropdown">
<button>Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
</div>
</div>
</body>
</html>
解决方案
尝试这个
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
<title>Title</title>
<!-- CSS Classes -->
<style>
/* Topbar Classes */
.topbar {
display : flex;
flex-wrap: wrap;
justify-content : space-between;
position : fixed;
top : 0;
left : 0;
right : 0;
background-color : #dddddd;
padding : 0.5rem 2rem;
overflow-x : auto;
white-space : nowrap;
}
/* Dropdown Classes */
.dropdown {
position : relative;
display : inline-block;
}
.dropdown-content {
display : none;
position : absolute;
background-color : white;
min-width : 100px;
z-index : 1;
left: -20px;
}
.dropdown-content a {
padding : 4px;
text-decoration : none;
display : block;
}
.dropdown-content a:hover {
background-color : #f1f1f1
}
.dropdown:hover .dropdown-content {
display : block;
}
</style>
</head>
<body>
<!-- Navigation -->
<div class="topbar">
<div style="display:inline-block;margin-right:12px">
<div style="display:inline-block;padding:4px"><span>Navigation Top Bar Title</span></div>
<div style="display:inline-block;padding:4px"><span>></span></div>
<div style="display:inline-block;padding:4px"><span>App Information</span></div>
</div>
<div style="display: flex;flex-wrap: wrap;">
<!-- Quick Search Input -->
<div style="float:left;margin-right:3px"><input type="text" placeholder="Quick Search..."></div>
<!-- Buttons -->
<button type="button">Search</button>
<button type="button">New</button>
<button type="button">Save</button>
<button type="button">Clear</button>
<button type="button">Copy</button>
<button type="button">Paste</button>
<button type="button">Delete</button>
<button type="button">Help</button>
<!-- Dropdown Button -->
<div class="dropdown">
<button>Dropdown</button>
<div class="dropdown-content">
<a href="#">Link 1</a>
<a href="#">Link 2</a>
<a href="#">Link 3</a>
</div>
</div>
</div>
</div>
</body>
</html>
推荐阅读
- rust - 如何显式注释数组文字的类型
- angular - 在 Angular 中使用 MSAL 和在 WebAPI 中使用 JWT Auth 时 API 请求触发 CORS 错误
- tableau-api - 使用 rest api 在 tableau server/tableau 中的视图的最后访问日期
- javascript - 获取 iframe 值
- azure-active-directory - Graph API azure 目录授权错误
- javascript - 无法从角度的路线中找到参数
- javascript - 使用 lodash 从数组中查找子字符串并将它们推送到另一个,然后将结果与第三个表进行比较
- laravel - 从相关表中获取数据到 laravel 中的 vuejs 组件
- php - 无法从 POST 中获取价值
- php - herokku 中的 PHPmailer 邮件程序给出 HTTP ERROR 500