创建可滚动的覆盖层,位于固定头部和底部之间

创建可滚动的覆盖层,位于固定头部和底部之间

本文旨在解决如何使用纯CSS创建一个可滚动的覆盖层,该覆盖层位于页面固定头部和动态高度的底部之间,且不与头部和底部重叠。我们将利用`calc()`函数和相对定位,根据视口高度、头部高度和底部高度动态计算覆盖层的最大高度,实现预期的布局效果。

实现原理

核心思想是利用CSS的calc()函数动态计算覆盖层的最大高度。具体来说,覆盖层的最大高度等于视口高度减去头部高度和底部高度。为了确保覆盖层位于底部之内,我们将使用position: relative和bottom: calc(100%)将覆盖层相对于底部定位。

具体步骤

HTML结构:

Header
Long middle content.....

保持与原HTML结构一致,wrapper包含header, content, footer,footer内部包含footer-wrapper,footer-wrapper内部包含footer-content。

CSS样式:

美间AI 美间AI

美间AI:让设计更简单

美间AI 45 查看详情 美间AI

html, body {  height: 100%;  margin: 0;}.wrapper {  height: 100%;  display: flex;  flex-direction: column;  max-height: calc(100vh - 1.5rem);}.header, .footer {  padding: 10px;  background: silver;}.header {  margin-top: 20px;}.content {  overflow-y: auto;  min-height: 2.5rem;  padding: 2.5rem;  flex-grow: 1;  position: relative;  background: pink;}#footer-content {  display: none;  background: white;  padding: 10px;  overflow-y: auto;  position: absolute;  bottom: calc(100%); /* 将footer-content的底部放置在footer的顶部 */  max-height:calc(100vh - 100% - 58px); /* 视口高度 - footer高度 - header高度 */  width: 100%; /* 确保宽度与footer一致 */}.footer-wrapper {  position: relative; /* 相对于footer定位 */}.footer {  position: relative;}

关键在于#footer-content的样式:

position: absolute;:使其可以相对于父元素(.footer-wrapper)进行定位。bottom: calc(100%);:将覆盖层的底部与底部的顶部对齐,利用了底部的高度作为计算的基准。max-height:calc(100vh – 100% – 58px);:计算覆盖层的最大高度,100vh是视口高度,100%是底部的高度,58px是头部的高度(包含margin-top)。overflow-y: auto;:允许内容滚动。width: 100%;: 确保宽度与footer一致。.footer-wrapper的position: relative;是使#footer-content可以相对于它进行绝对定位的关键。

JavaScript (jQuery) 保持不变:

$(document).ready(function(){    $('#button').click( function(e) {        e.preventDefault(); // stops link from making page jump to the top        e.stopPropagation(); // when you click the button, it stops the page from seeing it as clicking the body too        $('#footer-content').toggle();    });    $('#footer-content').click( function(e) {        e.stopPropagation(); // when you click within the content area, it stops the page from seeing it as clicking the body too    });});

这段JavaScript代码负责切换覆盖层的显示和隐藏,以及阻止事件冒泡

完整示例

      body { height: 600px; }    #content { background: salmon; display: none; height: 300px; width: 100%; }    html, body {      height: 100%;      margin: 0;    }    .wrapper {      height: 100%;      display: flex;      flex-direction: column;      max-height: calc(100vh - 1.5rem);    }    .header, .footer {      padding: 10px;      background: silver;    }    .header {      margin-top: 20px;    }    .content {      overflow-y: auto;      min-height: 2.5rem;      padding: 2.5rem;      flex-grow: 1;      position: relative;      background: pink;    }    #footer-content {      display: none;      background: white;      padding: 10px;      overflow-y: auto;      position: absolute;      bottom: calc(100%); /* 将footer-content的底部放置在footer的顶部 */      max-height:calc(100vh - 100% - 58px); /* 视口高度 - footer高度 - header高度 */      width: 100%; /* 确保宽度与footer一致 */    }    .footer-wrapper {      position: relative; /* 相对于footer定位 */    }    .footer {      position: relative;    }          $(document).ready(function(){      $('#button').click( function(e) {        e.preventDefault(); // stops link from making page jump to the top        e.stopPropagation(); // when you click the button, it stops the page from seeing it as clicking the body too        $('#footer-content').toggle();      });      $('#footer-content').click( function(e) {        e.stopPropagation(); // when you click within the content area, it stops the page from seeing it as clicking the body too      });    });    
Header
Long middle content.....

注意事项

确保引入jQuery库,以便使用JavaScript代码。头部高度和底部高度的计算需要根据实际情况进行调整。如果底部高度是动态变化的,则需要考虑使用JavaScript来动态更新覆盖层的最大高度。

总结

通过结合CSS的calc()函数和相对定位,我们可以创建一个可滚动且位于固定头部和动态底部之间的覆盖层,而无需使用JavaScript来动态计算高度。这种方法简单有效,适用于各种需要类似布局的场景。

以上就是创建可滚动的覆盖层,位于固定头部和底部之间的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/299330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年11月5日 00:13:06
下一篇 2025年11月5日 00:14:08

相关推荐

  • 欧易交易平台 v6.135.1 2025 官方安卓版

    欧易(okx)是一款全球领先的数字资产交易平台。部分安卓手机在完成欧易app官方安装包下载后,可能会出现“安全风险”、“病毒风险”等提示而无法完成安装,您可以参照以下方法完成安装。 欧易官网直达: 欧易官方app: 华为安卓版手机安装指南 1、当您看到“是否允许安装应用”提示时,请点击“允许”,不要…

    2025年12月11日 好文分享
    000
  • 币安binance交易所 v3.2.5 最新安卓版 – 安全可靠

    本教程将为您详细介绍安币binance v3.2.5最新安卓版的完整使用流程,包括从新用户注册到账户安全加固的全方位指南,助您轻松开启数字资产之旅。 币安官网直达: 币安官方app: 一、新用户注册指南 1、首先,在您的安卓设备上打开安币Binance App,点击主界面的【注册】按钮,开始创建您的…

    2025年12月11日 好文分享
    000
  • 币安binance交易平台官网入口 币安官方最新版v3.2.0APP下载安装

    欢迎来到币安(binance)的世界!作为全球领先的数字资产交易平台,保障您的账户安全始于第一步——从官方渠道获取应用。本文将为您详细介绍如何通过币安官网入口,下载并安装官方最新版v3.2.0 app,并引导您完成后续的新用户注册与关键的安全设置,确保您的数字资产之旅安全无忧。 币安官网直达: 币安…

    2025年12月11日 好文分享
    000
  • 币安binance官网入口 – 正规虚拟货币交易所

    欢迎来到币安(binance),全球领先的虚拟货币交易所。作为行业内公认的正规、安全平台,我们致力于为用户提供稳定可靠的数字资产交易服务。本文将作为您的官方入口指南,详细介绍如何快速、安全地注册币安账户并进行关键安全设置,开启您的数字货币之旅。 币安官网直达: 币安官方app: 第一步:创建您的币安…

    2025年12月11日 好文分享
    000
  • 什么是NFT?如何创建和交易?

    NFT,全称为非同质化代币(Non-Fungible Token),是一种记录在区块链上的独特数字资产。理解它的关键在于“非同质化”这个概念。生活中的“同质化”物品,比如同一面额的货币,每一张的价值都是相等的,可以相互替换。 2025主流nft交易所: 1、欧易OKX 注册入口: APP下载: 2、…

    2025年12月11日
    000
  • 币圈“鲸鱼”和“韭菜”分别指什么?

    在数字货币的世界里,市场参与者被赋予了各种生动的绰号,其中最为人熟知的就是“鲸鱼”和“韭菜”。这两个词汇并非官方术语,而是社区中约定俗成的比喻,形象地描绘了不同体量和行为模式的投资者在市场中的角色与处境。理解这两个概念,是洞悉加密市场生态的一个独特视角。 2025主流数字货币交易所: 1、欧易OKX…

    2025年12月11日
    000
  • 如何理解加密货币的市场市值和流通量?

    在加密货币的世界里,市场市值(Market Capitalization)和流通量(Circulating Supply)是两个核心指标,它们共同描绘了一个加密资产在市场中的规模和价值图景。理解这两个概念及其相互关系,对于评估一个加密项目的基本面至关重要。它们不是孤立的数字,而是动态变化的度量衡,反…

    2025年12月11日
    000
  • 什么是Gas费?如何计算和优化?

    Gas费是在区块链网络上执行交易或与智能合约交互时,用户需要支付给网络验证者(或矿工)的费用。这个概念在以太坊等支持智能合约的区块链上尤为核心。可以把它想象成在区块链这条高速公路上行驶时,你的车辆(交易)需要消耗的燃料(Gas)。 2025主流数字货币交易所: 1、欧易OKX 注册入口: APP下载…

    2025年12月11日
    000
  • 什么是瑞波币(XRP)?值得投资吗?XRP购买方法介绍

    瑞波币(XRP)是一种独特的数字资产,由Ripple Labs公司早期创建并主要推动,其核心定位是成为全球金融机构之间快速、低成本进行资金流转的桥梁货%ignore_a_2%。与许多依赖分布式节点持续计算来验证交易的数字资产不同,XRP的全部供应量在创世之初就已经确定,它运行在一个名为XRP Led…

    2025年12月11日
    000
  • 什么是跨链技术?如何实现资产跨链转移?

    在当前的数字化环境中,不同的区块链系统如同独立的数字岛屿,各自拥有独特的共识机制、底层架构和资产类型。例如,比特币网络保障着BTC的流转,而以太坊网络则承载着大量的智能合约和多样化的代币。这些网络在默认情况下是相互隔离的,一个网络中的资产和信息无法被另一个网络直接识别或使用,这便形成了所谓的“价值孤…

    2025年12月11日
    000
  • Doge ETF是什么?在哪里可以购买Doge ETF?

    Doge ETF,全称为狗狗币交易所交易基金(Dogecoin Exchange-Traded Fund),是一种旨在追踪狗狗币(Doge)价格表现的金融衍生产品。从本质上讲,它是一个在传统证券交易所上市交易的基金,其价值与狗狗币的市场价格直接挂钩。投资者可以通过购买该基金的份额来间接获得对狗狗币的…

    2025年12月11日
    000
  • 瑞波币(XRP)币价格预测:ETF预期助推涨势,3.60美元能否成为下一目标?

    瑞波币(XRP)作为数字资产市场中的重要一员,其价格波动一直备受关注。近期,随着关于现货XRP交易所交易基金(ETF)的讨论日益增多,市场情绪显著升温。投资者普遍认为,ETF的推出将为XRP带来前所未有的流动性和主流认可度,这与此前其与美国证券交易委员会(SEC)的法律纠纷所带来的不确定性形成鲜明对…

    2025年12月11日
    000
  • 币圈网格交易是什么?详解策略原理、参数设置和适用行情

    币圈网格交易是一种量化交易策略,其核心思想是在特定的价格区间内,通过程序自动执行一系列的买入和卖出订单。这种策略不依赖于对市场未来走势的精确预测,而是旨在从市场价格的上下波动中捕获利润。它将资金网格化,在价格下跌时分批买入,在价格上涨时分批卖出,通过不断重复这个过程来累积收益。这种方式就像在价格波动…

    2025年12月11日
    000
  • 区块链中的默克尔树是什么?详解结构原理、数据验证和应用场景

    默克尔树(Merkle Tree),也被称为哈希树,是区块链技术中一项至关重要的数据结构。它由计算机科学家拉尔夫·默克尔(Ralph Merkle)在1979年申请了专利,其核心思想是使用哈希函数对一个数据集合进行逐层聚合,最终生成一个单一的、能够代表整个数据集合完整性的哈希值,即默克尔根(Merk…

    2025年12月11日
    000
  • 加密货币做市商是什么?一文明白做市机制、价差控制和盈利模式

    在复杂的加密货币交易世界中,做市商扮演着一个至关重要的角色。他们是市场的“润滑剂”,确保交易能够顺畅、高效地进行。简单来说,加密货币做市商是专业的交易实体或个人,通过在交易所持续提供买入和卖出报价,为市场创造流动性。他们的存在使得普通交易者在任何时候都能找到对手方,从而轻松地完成买卖操作,避免了因市…

    2025年12月11日
    000
  • 币圈恐慌与贪婪指数是什么?深入解读指标构成、使用方法和市场意义

    币圈恐慌与贪婪指数(Crypto Fear & Greed Index)是一个用来衡量加密货币市场整体情绪的指标。它的核心理念源自传统金融市场,即市场情绪在驱动投资者行为中扮演着关键角色。当市场普遍表现出极度恐惧时,可能意味着投资者过度担忧,资产价格被低估。 2025主流数字货币交易所: 1…

    2025年12月11日
    000
  • 区块链中的原子交换是什么?搞懂跨链交易原理、技术实现和限制条件

    区块链中的原子交换,英文为Atomic Swap,是一种允许两种不同加密货币在各自的区块链上进行点对点直接兑换的技术。它实现了资产交换的去信任化,整个过程不需要依赖任何中心化的第三方机构,例如加密货币交易所。这种交换的核心特性在于其“原子性”,意味着整个交易要么完全成功,要么完全失败,不存在一方发送…

    2025年12月11日
    000
  • 币圈KYC认证是什么?详解验证流程、隐私保护和必要性

    在数字资产的世界里,KYC是一个频繁被提及的术语。对于许多初入币圈的用户而言,这个概念可能显得陌生甚至有些繁琐。KYC的全称是“Know Your Customer”,直译为“了解你的客户”,它是一项源自传统金融行业的客户身份识别规定。 2025主流数字货币交易所: 1、欧易OKX 注册入口: AP…

    2025年12月11日
    000
  • Gate.io最新注册入口 Gate.io注册教程

    gate.io是一款知名的全球性数字资产交易平台,为用户提供安全、便捷的加密货币交易服务。本文旨在为新用户提供gate.io的详细注册教程,并指引大家找到官方注册入口。点击本文提供的下载链接,您可以直接访问gate.io官方网站进行注册。 Gate.io下载官方指南 1、请务必通过官方渠道下载App…

    2025年12月11日
    000
  • 币圈社区治理是什么?搞懂代币投票、提案机制和参与方式

    在加密货币和区块链的世界里,社区治理是一个核心概念,它代表着项目决策权从中心化团队向分布式社区成员转移的过程。这套机制使得项目的发展方向、协议参数的修改以及资金的使用等重要事宜,不再由少数创始人或开发者决定,而是由整个社区通过一套预设的规则共同管理。这种模式是去中心化自治组织(DAO)得以运作的基石…

    2025年12月11日
    000

发表回复

登录后才能评论
关注微信