我的编程空间,编程开发者的网络收藏夹
学习永远不晚

CSS怎么防止页面跳动

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

CSS怎么防止页面跳动

本篇内容介绍了“CSS怎么防止页面跳动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、水平居中布局与滚动条跳动的千年难题

当前web届,绝大多数的页面间布局都是水平居中布局,主体定个宽度,然后margin: 0 auto的节奏~

例如,大淘宝的首页:
CSS怎么防止页面跳动

然而,这种布局有一个存在一个影响用户体验的隐患。应该都知道,现代浏览器滚动条默认是overflow:auto类型的,也就是如果尺寸不足一屏,没有滚动条;超出,出现滚动条。于是,问题来了:

    信息流页面,如新浪微博,是从上往下push渲染的。开始只有头部一些信息加载,此时页面高度有限,没有滚动条;然后,更多内容显示,滚动条出现,占据可用宽度,margin: 0 auto主体元素自然会做偏移——跳动产生。
    JS交互,本来默认页面高度不足一屏,结果点击了个“加载更多”,内容超过一屏,滚动条出现,页面主体就会左侧跳动。
    结构类似几个页面通过头部的水平导航刷新切换,结果有的页面有滚动条,有的没有。造成的结果就是,导航尼玛怎么跳来跳去!

当前优化这种体验问题,一般有两种解决方法:

    高度尺寸不确定的,例如,新浪微博,使用:

CSS Code复制内容到剪贴板

  1. body { overflow-y: scroll; }  

CSS怎么防止页面跳动

高度确定的,例如淘宝网首页。使用CSS把页面尺寸布局骨架搭好,再在里面吐数据。于是,要么没有滚动条,要么滚动条直接出现。不会出现跳动。
然而,然而,后面的策略只适合一些特殊的定制性很强的页面。你说像知乎这样子,高度随内容而定的页面,显然就无法驾驭;而第1种方法overflow-y: scroll,在页面高度较小的时候,依然会保留一个丑陋的灰色的滚动栏,这其实又回到了IE当道的旧社会时代。现代浏览器做的那些默认视觉优化岂不是白费了,想想就好痛心。
二、CSS3计算calc和vw单位巧妙实现滚动条出现页面不跳动

很简单,只要一行代码就搞定了:

CSS Code复制内容到剪贴板

  1. .wrap-outer {   

  2.     margin-left: calc(100vw - 100%);   

  3. }  

或者:

CSS Code复制内容到剪贴板

  1. .wrap-outer {   

  2.     padding-left: calc(100vw - 100%);   

  3. }  

然后就可以庆祝放鞭炮啦!!

首先,.wrap-outer指的是居中定宽主体的父级,如果没有,创建一个(使用主体也是可以实现类似效果,不过本着宽度分离原则,不推荐);
然后,calc是CSS3中的计算,IE10+浏览器支持,IE9浏览器基本支持(不能用在background-position上);
最后,100vw相对于浏览器的window.innerWidth,是浏览器的内部宽度,注意,滚动条宽度也计算在内!而100%是可用宽度,是不含滚动条的宽度。
于是,calc(100vw - 100%)就是浏览器滚动条的宽度大小(如果有,如果没有滚动条则是0)!左右都有一个滚动条宽度(或都是0)被占用,主体内容就可以永远居中浏览器啦,从而没有任何跳动!

您可以狠狠地点击这里(IE10+):页面出现滚动条的时候没有跳动demo

demo页面中,标题和下面的妹子都是居中效果。其中,妹子做了本文所述的“滚动无跳动”处理,而标题没有,结果,你会发现,滚动条出现与否会让标题文字跳动,但是,妹子却女神般岿然不动:
CSS怎么防止页面跳动

兼容性
支持:IE9+以及其他现代浏览器。

窄屏幕宽度下的处理
上面CSS还是有一点瑕疵的,浏览器宽度比较小的时候,左侧留的白明显与右边多,说不定会显得有点傻。此时,可能需要做点响应式处理会更好一点:

CSS Code复制内容到剪贴板

  1. @media screen and (min-width: 1150px) {   

  2.    .wrap-outer {   

  3.        margin-left: calc(100vw - 100%);   

  4.    }   

  5. }  

“CSS怎么防止页面跳动”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注编程网网站,小编将为大家输出更多高质量的实用文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

CSS怎么防止页面跳动

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

web中如何防止点击链接,后页面会跳动

这篇文章主要介绍web中如何防止点击链接,后页面会跳动,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有些时候做的东西刚好要用到链接,但又不需要去链接,只需要对onclick事件进行处理,但它却这样子写

页面中防止缓存怎么办

这篇文章给大家分享的是有关页面中防止缓存怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决方案: 在中加上以下代码,
2023-06-08

css怎么禁止选中页面内容

小编给大家分享一下css怎么禁止选中页面内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css的选择器有哪些css的选择器可以分为三大类,即id选择器、clas
2023-06-14

html跳转页面怎么跳

要在 html 中跳转页面,有四种方法:1. 使用 标签创建超链接。2. 使用 标签设置重定向指令。3. 使用 window.location 对象动态跳转页面。4. 使用 window.open() 方法在新的窗口或标签页中打开页面。
html跳转页面怎么跳
2024-05-16

怎么在html中自动跳转页面

怎么在html中自动跳转页面?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,
2023-06-14

javascript怎么禁止网页跳转

这篇文章主要介绍了javascript怎么禁止网页跳转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么禁止网页跳转文章都会有所收获,下面我们一起来看看吧。什么是网页跳转?网页跳转是指当用户
2023-07-06

PHP中怎么实现页面自动跳转

这篇文章将为大家详细讲解有关PHP中怎么实现页面自动跳转,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.meta 标签实现跳转:
2023-06-17

怎么在小程序中自动跳转页面

这期内容当中小编将会给大家带来有关怎么在小程序中自动跳转页面,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。页面.wxml文件中定义桌面的程序:< image src="../..
2023-06-15

win10如何禁止IE页面自动跳转到EDGE浏览器

最近很多用户都在问这样一个问题,就是在电脑上打开ie浏览器浏览网页的时候,发现打开一些页面的时候会直接跳转到edge浏览器,这让用户很困扰,因为不是所有用户都喜欢使用edge浏览器,那么win10如何禁止IE页面自动跳转到EDGE浏览器呢?
2023-07-10

怎么在html页面中实现自动跳转

怎么在html页面中实现自动跳转?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签.
2023-06-14

javascript怎么跳转页面target

小编给大家分享一下javascript怎么跳转页面target,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:1、、从一个框架跳到另一个框架中,语法“wind
2023-06-15

css怎么禁止滑动

这篇文章将为大家详细讲解有关css怎么禁止滑动,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种
2023-06-14

编程热搜

目录