首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

header+footer应该取屏幕高度减去( Div和其他div的高度)

在网页设计中,headerfooter 是常见的布局元素,分别位于页面的顶部和底部。为了确保这些元素在不同屏幕尺寸下都能正确显示,并且不会遮挡主要内容,通常需要计算它们的合适高度。以下是一些基础概念和相关信息:

基础概念

  1. 屏幕高度:指的是用户设备屏幕的垂直分辨率。
  2. Div和其他div的高度:指的是页面中其他内容区域的高度总和。

相关优势

  • 响应式设计:通过动态计算高度,可以使页面在不同设备上都能良好显示。
  • 用户体验:确保headerfooter不会遮挡重要内容,提升用户体验。

类型

  • 固定高度headerfooter的高度是固定的像素值。
  • 相对高度headerfooter的高度相对于屏幕或其他元素的高度。

应用场景

  • 单页应用(SPA):在单页应用中,动态计算高度可以确保页面内容不被遮挡。
  • 响应式网站:在不同屏幕尺寸下,动态调整headerfooter的高度以适应屏幕。

示例代码

以下是一个简单的示例,展示如何使用JavaScript动态计算headerfooter的高度:

代码语言:txt
复制
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Dynamic Header and Footer</title>
    <style>
        body, html {
            margin: 0;
            padding: 0;
            height: 100%;
        }
        #header {
            background-color: #f1f1f1;
            text-align: center;
            padding: 20px;
        }
        #content {
            padding: 20px;
        }
        #footer {
            background-color: #f1f1f1;
            text-align: center;
            padding: 20px;
        }
    </style>
</head>
<body>
    <div id="header">Header</div>
    <div id="content">Main Content</div>
    <div id="footer">Footer</div>

    <script>
        function adjustHeights() {
            const header = document.getElementById('header');
            const footer = document.getElementById('footer');
            const content = document.getElementById('content');
            const screenHeight = window.innerHeight;

            // 计算可用高度
            const availableHeight = screenHeight - (header.offsetHeight + footer.offsetHeight);

            // 设置内容区域的高度
            content.style.height = `${availableHeight}px`;
        }

        // 初始调整
        adjustHeights();

        // 监听窗口大小变化
        window.addEventListener('resize', adjustHeights);
    </script>
</body>
</html>

可能遇到的问题及解决方法

  1. 高度计算不准确
    • 原因:可能是因为其他元素的动态内容导致高度变化。
    • 解决方法:使用MutationObserver监听DOM变化,重新计算高度。
  • 滚动条影响
    • 原因:页面内容过多导致出现滚动条,影响高度计算。
    • 解决方法:考虑滚动条的宽度,调整计算公式。
  • 兼容性问题
    • 原因:不同浏览器对高度计算的实现可能有所不同。
    • 解决方法:使用CSS的calc()函数或JavaScript进行兼容性处理。

通过上述方法和示例代码,可以有效地动态调整headerfooter的高度,确保页面布局的合理性和用户体验。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

css视口单位vw,vh的妙用(embed篇)

【假设父级div就是真个屏幕】,高度设置为屏幕的宽度乘以9/16。...因为刚刚【假设父级div就是真个屏幕】这样假设了下,实际用起来肯定是多种情况的,比如我的博客电脑端是有侧边栏的,文章的div也是有边距的,而手机端只有边距没有侧边栏。其实只需要做个数学题就好。...本来,文章写道这里就应该结束了,但是突然想到了香菇社长那个超宽的屏幕,仅仅是上述代码肯定会导致一个问题,视频高度可能会超出屏幕的高度。 怎么办呢?想了一下,觉得这样比较简单!...16/9*/ 这样不管屏幕多奇葩,应该也能保证视频播放器尺寸16:9了哈!...如果想要其他尺寸对应的数字改一下就好了。 至于有黑边问题,这个原因有很多,视频素材比例问题?embed播放器尺寸问题?等等

1.1K30
  • 19、分类详情页之基本页面结构

    前言:这章讲下分类页面的撰写,主要是涉及几个知识点:① 编程式路由的运用;② 阿里巴巴矢量图标库;③ vue.js中如何获取屏幕的高度并动态设置元素的高度; Github:https://github.com...image.png 4、主体部分 因为主体部分高度要自适应,所以涉及到的一个问题就是:vue.js中如何获取屏幕的高度并动态设置元素的高度?...(1)我们先获取下屏幕可见区域的高度然后减去顶部栏的高度,作为我们主体部分的高度; ? 获取可见屏幕高度 PS:关于屏幕各种高度的获取我这里丢张图: ?...屏幕导读获取一览图 (2)给div.main元素设置高度 可以参考:https://cn.vuejs.org/v2/guide/class-and-style.html div class="main...::before的运用 div class="item item_on">女装div> .item { position: relative; box-sizing: border-box

    63420

    解决height:100vh超出屏幕高度的问题

    ( 只看有关的代码哦 ) // 此处使用stylus书写样式 .evaluation // 最外边的div width 100% height 100vh // 高度为屏幕的高度 padding-top..., 所以设置 height : 100vh 本来可以占满屏幕 , 但它会默认将头部和底部也加进去了 , 所以会超出屏幕高度 , 那怎么解决呢 ?....evaluation // 最外边的div width 100% min-height: calc(100vh - 0.9rem) //这个页面只有头部,所以将头部的高度减去 padding-top...font-size 0.32rem border-bottom 1px solid #cccccc 决定性代码: min-height: calc(100vh – 0.9rem); 注: 100vh 减去的可以是任意像素单位...(px、rpx、em等), 此处运算符左右要有空格哟~~ 遇到这个问题的小哥哥和小姐姐可以试试哦 , 看有没有解决呀!

    4.1K10

    教你实现一个悬浮可拖动并在滑动页面时会自动收缩的vue侧边组件按钮

    动态赋值高度、宽度等属性,内部包裹元素我这里用的是一张图片,实际可以根据需要展示不同的内容。...:首先获得页面宽度并减去按钮宽度及距离页面两侧的距离得到按钮的初始宽度位置,再通过页面高度*页面上下的距离比例得到组件的高度位置 created() { this.clientWidth = document.documentElement.clientWidth...touchmove事件:当手指在屏幕上滑动的时候连续地触发。在这个事件发生期间,调用preventDefault()事件可以阻止滚动。 touchend事件:当手指从屏幕上离开的时候触发。...,组件应该跟随手指的移动而移动。...值,等于则说明开始滑动,这时我们可以将组件距离侧边的距离减去组件自身的一半宽度+组件默认距离侧边的距离,这样就可以实现在滑动组件时组件收缩到页面内侧的一个效果。

    5.2K40

    移动端开发的几点建议

    页面适配 这一点不能算是建议,应该说是解决方案。...苹果设备大多都能查到它的开发尺寸是多少。但安卓设备不是,没有这种条件,所以要靠其他手段了。 根据查资料所得,目前有两种方法可以获得移动设备的真实开发尺寸。...另外提一下,为手机开发的网站放在其他手机上一般都能适配,但是放在平板上很难适配,毕竟屏幕大小差太多了,反之亦然。...理由如下: vw vh 换算方便 1vw = 屏幕 1% 的宽度 1vh = 屏幕 1% 的高度 兼容性好 无论是在网页还是在小程序,只要支持 css 就能完美兼容。...设备状态栏 如果 app 在移动设备上不需要全屏展示,那么在 chrome 上模拟设备大小时要减去设备状态栏的高度。 当然,这一般都不会有什么问题,只是为了多加一条建议。

    98920

    可视化大屏的几种屏幕适配方案,总有一种是你需要的

    > 判断窗口宽度和高度是否大于画布的宽高,是的话通过left或top来调整: 自适应宽度 即宽度适应屏幕,高度不变,这种方案的缺点是垂直方向上会出现滚动条。...实现也很简单,计算一下画布原始比例,再计算一下屏幕的比例,然后再判断是宽度和屏幕一致,高度自适应,还是高度和屏幕一致,宽度自适应: // 当前窗口宽高比例 let windowWidth = window.innerWidth...第一种情况,假设画布的宽是高的两倍,那么比例为2,要保持原比例2适应屏幕,显然只能宽度和屏幕一致,高度自适应,因为如果高度和屏幕一致,那么宽度需要是高度的两倍,屏幕显然显示不下: 第二种情况,假设画布的高是宽的两倍...,那么比例为0.5,要保持比例为0.5适应屏幕,需要高度和屏幕一致,宽度自适应: 计算完了画布适应屏幕后的新宽高,接下来就可以计算它相对于画布原始宽高的缩放比例: // ... // 相对于画布原始宽高的缩放比例...当然可能还会存在其他一些属性或方法也会存在这个问题,这就需要各位在实际的开发时进行测试了。

    3.2K41

    vue新春游戏-年兽大作战,欢欢喜喜过大年(可在线体验)

    我这里是根据屏幕高度,分成了10个弹道,本来打算屏幕越大,弹道越多的,但是考虑到性能问题,就采用了这种方案。...* @return {*} */ showBullet () { // 此处直接设定了10条弹道,也可根据屏幕高度和弹幕高度计算弹道数 let ballisticArr = [0, 1,...$refs.gemeWrap.onmousemove = null }, 子弹 我们暂且称炮竹发出的光束为子弹吧,子弹的实现原理很简单,定时发射子弹,发射子弹时获取炮竹的横向坐标,再以屏幕高度减去炮竹高度为纵向坐标...,生成之后让子弹往上跑就行了,当子弹距离顶部距离小于等于年兽的高度时,判断子弹的横向坐标是否和年兽的横向坐标重合,如果重合就对年兽扣血,播放击中音效,移除子弹,如果未重合,则在子弹跑出屏幕时移除子弹。...,方便用户查看和选择,已经结束,则展示在屏幕左侧,方面用户查看和分享。

    66710

    让div等块级元素水平以及垂直居中的解决办法

    实现一、原理:要让div等块级元素水平和垂直居中,必需知道该div等块级元素的宽度和高度,然后设置位置为绝对位置,距离页面窗口左边框和上边框的距离设置为50%,这个50%就是指页面窗口的宽度和高度的50%...,最后将该div等块级元素分别左移和上移,左移和上移的大小就是该div等块级元素宽度和高度的一半。    ...等块级元素的宽度和高度。...如果当页面div等块级元素宽度和高度是动态的,比方说需要弹出一个div等块级元素元素层并且要居中显示,div等块级元素的内容是动态的,所以宽度和高度也是动态的,这时需要用jQuery可以解决居中。    ...jQuery设置div等块级元素的CSS,获取div等块级元素的左、上的边距偏移量,边距偏移量的算法就是用页面窗口 的宽度减去该div等块级元素的宽度,得到的值再除以2即左偏移量,右偏移量算法相同。

    1.8K20

    CSS入门13-单位详解

    这些长度由数字和单位组成,数字和单位之间是没有空格的。长度单位的类型有两种:绝对长度单位和相对长度单位。 2. 绝对长度单位 绝对长度单位的含义,就是客观上绝对存在的单位,放在任何地方都一样。...3.1.2-2 3.1.3 ex ex是指所用字体中小写x的高度,不同字体x的高度可能不同。实际上,很多浏览器取em值一半作为ex值。 ex在实际中常用于微调。...3.2.1 vh 布局视窗高度的1/100 设置height:100vh;可以达到与屏幕等高的效果。...3.2.3 vmin 布局视窗高度和宽度之间的最小值的 1/100 设置height: 100vmin;width: 100vmin;可以达到类似于contain的效果。...3.2.4 vmax 布局视窗高度和宽度之间的最大值的 1/100 设置height: 100vmax;width: 100vmax;可以达到类似于cover的效果。

    64020

    给我2分钟,保证教会你在Vue3中实现一个定高的虚拟列表

    在定高的虚拟列表中,我们可以根据可视区域的高度和每个item的高度计算得出在可视区域内可以渲染多少个item。...接下来就是计算容器里面到底渲染多少个item,很简单,Math.ceil(可视区域的高度 / 每个item的高度)。 为什么使用Math.ceil向上取整呢?...此时可视区看见的第一个是item3,很明显是不对的,应该看见的是第一个是item2。 此时应该怎么办呢? 很简单,使用translate将列表向下偏移一个item的高度就行,也就是100px。...因为在滚动时如果是在item的高度范围内滚动,我们是复用浏览器的滚动,此时无需进行偏移,所以计算偏移值时需要减去scrollTop % itemSize。...,首先根据可视区域的高度和item的高度计算出视口内可以渲染出来的item数量renderCount。

    16801

    关于响应式布局,你需要了解的知识点

    ipad 对应的 div 块中实现相应的 html 结构和 CSS 样式即可。...在这个过程中,可能不仅涉及到隐藏,还会涉及到其他的布局变动,例如:在小屏幕时是 display: block,而在大屏幕的时候则是 display: flex。...mediatype 常用取值有如下几个: all 用于所有设备 print 用于打印机和打印预览 screen 用于电脑屏幕,平板电脑,智能手机等。...并且屏幕高度小于 500px 的设备应用某些样式,那么我们可以这么写: @media (max-width:768px and max-height: 500px) { /* … */ } 总结 看到这里...其实响应式布局并不难,其语法也很简单,更重要的是理解响应式布局背后的重要意义 —— 信息传递。在不同的信息传递媒介,为了阅读者地体验,我们应该设计不同的布局方式,需要思考应该传递哪些信息。

    51810

    CSS calc() 使用指南

    然后我们用它来得到一个新的宽度值,用一个单位乘以 1px 变成 3px。 3. 使用 calc() 转换字体大小 假设有这样一个场景,我们希望段落的字体在桌面屏幕上很大,但在移动屏幕上很小。...嵌套的 CSS 函数用于将屏幕的全宽度(100%)除以 5,然后将结果减去 20px,以得到我们的最小宽度的最终值。...对于我们的高度,我们从 100% 的高度减去顶部和底部 margin 的总值(20px),结果是一个完美对齐的方框。...i: 19">div> div class="block" style="--i: 20">div> div> 我们的 CSS 应该是这样的: *{...它们包括: 当我们处理 CSS 变量时 为了得到一个新的值 用于不同单元之间的计算,这是预处理器无法做到的 定位 调整我们网站的结构和其他元素 当我们想避免重复做相同的计算时 我们在本文中介绍的大多数示例都属于上述类别

    1.8K40

    CSS布局(二)

    漫画单行本日文版由史克威尔艾尼克斯(SQUARE ENIX)出版发行,繁体中文版分别由中国台湾的尖端出版社和中国香港的玉皇朝代理发行 div> div class="right...分析以下原因:因为 main没有设置高度,且它的祖先元素 html、 body都没有设置高度,所以 main的高度就只有被上盒子和下盒子的高度撑开的那部分。既然如此,怎么可能还会有剩余空间呢?...所以主体盒子 main的高度应该为屏幕高度,然后给 footer设置 margin-top为自身高度的负值,让 footer上移到屏幕底部。...所以我们不应该给 main盒子设置正常的高度,而应该设置最小高度 min-height,这样子当高度小时,就会是屏幕高度,而当高度大于屏幕高度时,高度还是正常的内容的高度。...而且,还应该给 main盒子设定 padding-bottom的值为 footer的高度,这样子就不会出现负 margin导致 footer覆盖内容。

    98730

    建议收藏!总结了 42 种前端常用布局方案

    定位方式实现(方法二) 第二种通过定位的方式实现实现思路:top 和 bottom 将子元素拉伸至100%,设置指定的高度,通过margin:auto;即可实现垂直居中。...定位实现水平垂直居中方案(一) 步骤如下: 使子元素相对于容器元素定位 子元素开启绝对定位 设置该元素的偏移量,值为50% 减去宽度/高度的一半 实现CSS代码如下: .parent { /* 1....设置该元素的偏移量,值为 50%减去宽度/高度的一半 */ left: calc(50% - 150px); top: calc(50% - 150px); } 3....使用calc函数实现 使用 calc 函数实现的方式会比较简单,中间的容器最少高度为视口宽度的100% - 头部和底部两部分的高度即可完成该功能。...实现CSS代码如下: .container { /* 这里的 中间 部分的容器最少为视口宽度的 100% - 头部和底部两部分的高度即可完成该功能 */ min-height: calc

    4.2K30

    建议收藏!总结了42种前端常用布局方案

    定位方式实现(方法二) 第二种通过定位的方式实现实现思路:top 和 bottom 将子元素拉伸至100%,设置指定的高度,通过margin:auto;即可实现垂直居中。...定位实现水平垂直居中方案(一) 步骤如下: 使子元素相对于容器元素定位 子元素开启绝对定位 设置该元素的偏移量,值为50% 减去宽度/高度的一半 实现CSS代码如下: .parent { /* 1....设置该元素的偏移量,值为 50%减去宽度/高度的一半 */ left: calc(50% - 150px); top: calc(50% - 150px); } 3....使用calc函数实现 使用 calc 函数实现的方式会比较简单,中间的容器最少高度为视口宽度的100% - 头部和底部两部分的高度即可完成该功能。...实现CSS代码如下: .container { /* 这里的 中间 部分的容器最少为视口宽度的 100% - 头部和底部两部分的高度即可完成该功能 */ min-height: calc

    4.2K30
    领券