首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何仅使用HTML和CSS (没有JS)制作“粘性”导航栏?

如何仅使用HTML和CSS (没有JS)制作“粘性”导航栏?
EN

Stack Overflow用户
提问于 2020-08-17 21:07:13
回答 3查看 1.1K关注 0票数 0

我正在创建一个简单的HTML网页,我想创建一个“粘性”导航栏,如果页面被滚动,它会漂浮在内容上,如果页面没有滚动,它会显示在内容之前(它的最上面部分是可见的)。在第二种情况下,它几乎可以工作,但与内容重叠,所以我设法让它与JavaScript一起工作:将content-containerpadding-top CSS属性设置为导航栏的offsetHeight + 15px (导航栏和滚动页面之间的缩进),并在每次窗口大小改变时更新它。但是也许它也可以在纯CSS中完成呢?

以下是代码片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function fixContentPadding() {
  document.getElementById("content-container").style.paddingTop = document.getElementById("navbar").offsetHeight + 15 + "px";
}
window.onresize = fixContentPadding;
fixContentPadding();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#navbar {
  width: 100%;
  background-color: lightblue;
  color: white;
  top: 0;
  position: fixed;
  z-index: 1;
}

#navbar *:hover {
  background-color: #2196F3;
  border-radius: 32px;
}

#navbar * {
  float: left;
  text-decoration: none;
}

#content {
  width: 90%;
  margin: auto;
  word-wrap: break-word;
  padding: 0.01em 16px;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="navbar">
  <a href="/">Hello, World!</a>
</div>

<div id="content-container">
  <div id="content">
    <p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p>
  </div>
</div>

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-08-17 21:19:06

这就是position: sticky的用途:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#navbar {
  position: sticky;
  top: 0;
  background: aliceblue;
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="navbar">
  <a href="/">Hello, World!</a>
</div>

<div id="content-container">
  <div id="content">
    <p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p>
  </div>
</div>

票数 4
EN

Stack Overflow用户

发布于 2020-08-17 21:18:13

在div#content-container上添加页边距-top?

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#navbar {
  width: 100%;
  background-color: lightblue;
  color: white;
  top: 0;
  position: fixed;
  z-index: 1;
}

#navbar *:hover {
  background-color: #2196F3;
  border-radius: 32px;
}

#navbar * {
  float: left;
  text-decoration: none;
}

#content-container {
  margin-top:40px;
}

#content {
  width: 90%;
  margin: auto;
  word-wrap: break-word;
  padding: 0.01em 16px;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="navbar">
  <a href="/">Hello, World!</a>
</div>

<div id="content-container">
  <div id="content">
    <p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p>
  </div>
</div>

票数 1
EN

Stack Overflow用户

发布于 2020-08-17 21:27:35

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
function fixContentPadding() {
  document.getElementById("content-container").style.paddingTop = document.getElementById("navbar").offsetHeight + 15 + "px";
}
window.onresize = fixContentPadding;
fixContentPadding();
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#navbar {
  width: 100%;
  height: 3em;
  background-color: lightblue;
  color: white;
  position: fixed;
  top: 0;
  z-index: 1;
}

#navbar *:hover {
  background-color: #2196F3;
  border-radius: 32px;
}

#navbar * {
  float: left;
  text-decoration: none;
}

#content {
  width: 90%;
  margin: 3em auto auto auto;
  word-wrap: break-word;
  padding: 0.01em 16px;
  box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12)
}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<div id="navbar">
  <a href="/">Hello, World!</a>
</div>

<div id="content-container">
  <div id="content">
    <p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p><p>Hello, World!</p>
  </div>
</div>

在内容div等于或等于导航栏高度的位置添加一个空白处。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63458661

复制
相关文章
使用html和css制作水平导航栏nav
使用html和css制作水平导航栏nav的方法及其效果: 1、li设置float:left; (1)代码片段:
全栈程序员站长
2022/09/01
3.8K0
HTML导航栏制作
注释:加上 target=”_blank” 的话,点击有链接的文字,就会新打开一个标签页,若不加,则在本页面上直接打开链接网页。
全栈程序员站长
2022/09/01
4.8K0
纯HTML CSS制作导航栏 下拉菜单
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140190.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
6.3K0
html导航栏自动调间距,HTML CSS导航栏间距[通俗易懂]
我做了一个CSS导航栏,但是在每个“navbar-item”之间,都有一点空间。我不希望那里有任何变化!有没有办法做到这一点,而不改变每个navbar-item的余裕?HTML CSS导航栏间距
全栈程序员站长
2022/09/01
5.5K0
CSS + HTML导航栏效果
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140426.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/02
4.6K0
HTML+CSS 简单的顶部导航栏菜单制作
img标签,导入图片,a标签超链接 ,img导入图片,防止图片失真width和height设置一个就可以了
全栈程序员站长
2022/09/02
3.8K0
导航栏滚动渐变效果 html+css+js
6.当页面有滚动后导航栏的样式,padding上下变小,字体颜色变,有了蓝背景色:
全栈程序员站长
2022/08/24
9.3K0
导航栏滚动渐变效果 html+css+js
html里制作简单导航栏
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140112.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/01
4.4K0
点击导航栏,切换div内容(js+css+html)[通俗易懂]
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140453.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/24
12.7K0
点击导航栏,切换div内容(js+css+html)[通俗易懂]
html导航栏可以展开的下拉菜单,html导航栏下拉菜单如何制作[通俗易懂]
小编给大家分享一下html导航栏下拉菜单如何制作,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!
全栈程序员站长
2022/09/01
8.8K0
第8天:CSS制作导航栏
今天主要学习了网页导航栏的制作。注意:引入外部CSS样式时,如果使用background:url(../images/1.png),一定记得用..跳出当前文件夹,回到上级目录。
半指温柔乐
2018/09/11
2K0
第8天:CSS制作导航栏
如何使用 HTML、CSS 和 JS 制作电子商务网站
编写基本的 HTML 5 模板index.html。并将home.css文件链接到index文件。现在,创建导航栏。
玖柒的小窝
2021/09/14
4.8K0
如何使用 HTML、CSS 和 JS 制作电子商务网站
【CSS】课程网站头部制作 ② ( 导航栏测量 | 导航栏编写 | 代码示例 )
导航栏 最左侧位置 , 距离 logo 盒子 有 70 像素 , 考虑到设置外边距 , 这里将 logo 盒子 与 导航栏之间的距离设置成 60 像素即可 ;
韩曙亮
2023/04/03
3.9K0
【CSS】课程网站头部制作 ② ( 导航栏测量 | 导航栏编写 | 代码示例 )
CSS+HTML 顶部导航栏实现「建议收藏」
2018/11/16更新: 最近在使用这个导航栏的时候,发现页面在放大和缩小的情况下,导航栏的布局和显示都有些小问题,所以重新改了一下css部分的代码,重新贴上来
全栈程序员站长
2022/09/01
3.4K0
html页面缩小导航栏隐藏,html – 导航栏缩放问题[通俗易懂]
我有一个问题,我的导航栏似乎与CSS中的.container缩放.现在,我是一个新手,但我已经尝试搞乱CSS中的值,但无济于事.这是
全栈程序员站长
2022/09/02
4.6K0
html 竖排导航条,html 导航栏
$(“#navbar a[href='{ { request.path }}’]”).parent().addClass(“active”)
全栈程序员站长
2022/09/01
3.7K0
HTML导航栏的四种制作方法
在这里还想说的是,<ul>的子集元素只能是<li>,不可以是别的,HTML的语义很弱,标签的使用很重要,在实际的网页开发中,不同标签的语义,权重都不一样,所以,优化也不一样。
全栈程序员站长
2022/08/24
3.3K0
HTML导航栏的四种制作方法
html 下拉导航栏源码,html导航栏下拉菜单怎么制作?这里有详细的代码实例「建议收藏」
.dropdown类使用position:relative,这将设置下拉菜单的内容放置在下拉按钮(使用position:absolute)的右下角位置。
全栈程序员站长
2022/09/01
4.2K0
让我们使用HTML,CSS和Javascript构建响应式导航栏和面包屑菜单
大家好!在本教程中,我们将使用html,css和一些javascript构建响应式导航栏和面包屑菜单。
海拥
2021/08/23
2.3K0
让我们使用HTML,CSS和Javascript构建响应式导航栏和面包屑菜单
零基础html5+div+css+js网页开发教程第009期 导航栏css美化
overflow: auto;/* 使用浮动时候结合使用,可以使得容器的宽高自动体现出来 */
刘金玉编程
2019/12/10
1.6K0

相似问题

如何制作粘性导航栏?

216

不能仅使用CSS和HTML隐藏导航栏

13

没有Javascript的响应式导航栏,仅使用HTML和CSS

120

如何制作没有位置的粘性导航栏:已修复

15

如何仅使用HTML、CSS和Javascript突出显示导航栏

120
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文