广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >CSS怎么防止页面跳动
  • 429
分享到

CSS怎么防止页面跳动

2024-04-02 19:04:59 429人浏览 八月长安
摘要

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

--结束END--

本文标题: CSS怎么防止页面跳动

本文链接: https://www.lsjlt.com/news/77871.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

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

下载Word文档
猜你喜欢
  • CSS怎么防止页面跳动
    本篇内容介绍了“CSS怎么防止页面跳动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、水平居中布局与滚动...
    99+
    2022-10-19
  • CSS页面滚动条出现时怎么防止页面跳动
    本篇内容介绍了“CSS页面滚动条出现时怎么防止页面跳动”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!CSS...
    99+
    2022-10-19
  • web中如何防止点击链接,后页面会跳动
    这篇文章主要介绍web中如何防止点击链接,后页面会跳动,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!有些时候做的东西刚好要用到链接,但又不需要去链接,只需要对onclick事件进行处理,但它却这样子写 <a h...
    99+
    2023-06-08
  • AJAX中怎么防止页面缓存
    今天就跟大家聊聊有关AJAX中怎么防止页面缓存,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。htm网页  <metahttp-equ...
    99+
    2022-10-19
  • AngularJS中怎么防止页面闪烁
    AngularJS中怎么防止页面闪烁,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。1、ng-cloakng-cloak指令是angular...
    99+
    2022-10-19
  • 页面中防止缓存怎么办
    这篇文章给大家分享的是有关页面中防止缓存怎么办的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。解决方案: 在<head>中加上以下代码,<base target="_self&...
    99+
    2023-06-08
  • 在浏览器加载CSS时怎么防止影响页面渲染
    这篇文章主要讲解了“在浏览器加载CSS时怎么防止影响页面渲染”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“在浏览器加载CSS时怎么防止影响页面渲染”吧!CS...
    99+
    2022-10-19
  • css怎么禁止选中页面内容
    小编给大家分享一下css怎么禁止选中页面内容,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!css的选择器有哪些css的选择器可以分为三大类,即id选择器、clas...
    99+
    2023-06-14
  • javascript怎么禁止网页跳转
    这篇文章主要介绍了javascript怎么禁止网页跳转的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇javascript怎么禁止网页跳转文章都会有所收获,下面我们一起来看看吧。什么是网页跳转?网页跳转是指当用户...
    99+
    2023-07-06
  • 怎么在html中自动跳转页面
    怎么在html中自动跳转页面?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,...
    99+
    2023-06-14
  • css如何禁止页面的左右滚动条
    这篇文章主要介绍“css如何禁止页面的左右滚动条”,在日常操作中,相信很多人在css如何禁止页面的左右滚动条问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”css如何禁止页面的...
    99+
    2022-10-19
  • PHP中怎么实现页面自动跳转
    这篇文章将为大家详细讲解有关PHP中怎么实现页面自动跳转,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。1.meta 标签实现跳转:<meta http-equiv="refr...
    99+
    2023-06-17
  • win10如何禁止IE页面自动跳转到EDGE浏览器
    最近很多用户都在问这样一个问题,就是在电脑上打开ie浏览器浏览网页的时候,发现打开一些页面的时候会直接跳转到edge浏览器,这让用户很困扰,因为不是所有用户都喜欢使用edge浏览器,那么win10如何禁止IE页面自动跳转到EDGE浏览器呢?...
    99+
    2023-07-10
  • 404页面怎么跳转到首页
    在404页面中添加js代码实现延时跳转到首页,具体方法如下:在网站项目文件中,查找到404页面源文件,并打开;404页面文件打开后,添加以下js代码:<script>setTimeout(function(){location=...
    99+
    2022-10-20
  • javascript怎么跳转页面target
    小编给大家分享一下javascript怎么跳转页面target,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!方法:1、、从一个框架跳到另一个框架中,语法“wind...
    99+
    2023-06-15
  • 怎么在小程序中自动跳转页面
    这期内容当中小编将会给大家带来有关怎么在小程序中自动跳转页面,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。页面.wxml文件中定义桌面的程序:<scroll-view>< im...
    99+
    2023-06-15
  • 怎么在html页面中实现自动跳转
    怎么在html页面中实现自动跳转?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。html是什么html的全称为超文本标记语言,它是一种标记语言,包含了一系列标签....
    99+
    2023-06-14
  • 在浏览器加载CSS时如何防止影响页面渲染
    本篇内容介绍了“在浏览器加载CSS时如何防止影响页面渲染”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!&n...
    99+
    2022-10-19
  • css怎么禁止滑动
    这篇文章将为大家详细讲解有关css怎么禁止滑动,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。css的选择器有哪些css的选择器可以分为三大类,即id选择器、class选择器、标签选择器。它们之间可以有多种...
    99+
    2023-06-14
  • react怎么实现跳转页面
    本教程操作环境:Windows10系统、react18.0.0版、Dell G3电脑。react怎么实现跳转页面?react项目实现页面跳转更新:useNavigate()的使用import { useNavigate } from ...
    99+
    2023-05-14
    React
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作