javascript - 无法使用位置:粘性;通过 .innerHTML 添加元素时
问题描述
我想让菜单贴在页面顶部。如果我只是将代码添加到页面,代码就可以正常工作。但是,我想使用 javascript,因为我希望能够更改每个页面上的菜单,而不必在每个页面上手动进行。
document.getElementById('menu-js').innerHTML = `<div id="menu">
<div class="dropdown">
<button class="dropbtn">Button_1</button>
<div class="dropdown-content">
<a href="/src">Link 1</a>
<a href="/src">Link 2</a>
<a href="/src">Link 3</a>
</div>
</div>
<div class="dropdown">
<button class="dropbtn">Button_2</button>
<div class="dropdown-content">
<a href="/src">Link 4</a>
<a href="/src">Link 5</a>
<a href="/src">Link 6</a>
</div>
</div>
</div>`
@import url('https://fonts.googleapis.com/css?family=Abril+Fatface|Arsenal|Rubik&display=swap');
#menu {
background-color: white;
top: 0px;
left: 0px;
position: sticky;
padding-left: 10px;
margin-top: -8px;
margin-left: -30px;
margin-right: -0.51%;
border-bottom-color: black;
border-bottom-style: solid;
border-bottom: 5px;
}
.dropbtn {
background-color: white;
color: black;
padding: 16px;
font-size: 16px;
border: none;
margin: none;
font-family: 'Arsenal';
}
.dropdown {
display: inline-block;
}
.dropdown-content {
display: none;
position: absolute;
background-color: #f2d3d8;
min-width: 200px;
z-index: 1;
font-family: 'Arsenal';
}
.dropdown-content a {
color: black;
padding: 12px 16px;
text-decoration: none;
display: block;
}
.dropdown-content a:hover {
background-color: #ffd3b6;
}
.dropdown:hover .dropdown-content {
display: block;
}
.dropdown:hover .dropbtn {
background-color: #c06014;
color: white;
}
#page-container {
position: relative;
min-height: 100vh;
}
#content-wrap {
padding-bottom: 2.5rem;
}
footer {
position: absolute;
bottom: 0;
width: 100%;
height: 2.5rem;
}
hr {
margin-left: -20px;
color: #c06014
}
<html>
<head>
<title>TITLE</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div id='page-container'>
<div id='content-wrap'>
<h1>Content above menu</h1>
<div id='menu-js'></div>
<h1>body</h1>
<h2>body</h2>
</div>
<footer>
<hr>FOOTER</footer>
</div>
<script src='menu.js'></script>
</body>
</html>
如果可能的话,我只想使用这三种语言。谢谢!
解决方案
就粘性属性而言,您的代码似乎几乎完美。尝试向div添加一个max-height
属性(以像素为单位的值) 。menu-js
推荐阅读
- openstreetmap - 按路线类型提取 Open Street Map 方式 ID 的交叉口计数
- wpf - C#Wpf 中的缩放变换
- rust - 使用 wasm-pack 构建时在 Rust 和 JavaScript 之间传递字符串
- r - R中的自动变量命名
- sql - SQL Join - 无法消除笛卡尔结果
- angular - 搜索栏作为 Angular 7 中的服务
- c++ - 为什么这个“数独求解器”算法不起作用
- visual-studio-2019 - 在 Visual Studio 2019 的工具栏中添加分隔符
- javascript - 从一个 HTML 表中复制所有行并附加到另一个表
- julia - 使用 ./startup.jl 文件设置 nprocs()