【发布时间】:2019-11-19 11:21:35
【问题描述】:
我正在尝试创建一个可以在小屏幕中水平滚动的顶栏。问题是,将 '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>
【问题讨论】: