精华内容
下载资源
问答
  • 新手小白遇到了一个小问题,就是在全屏的网站下,屏幕中的各个元素还在原来的位置,当缩小屏幕时候,有很多的元素会重叠在一起,想问下怎么解决
  • rem实现网页自适应屏幕大小的小结

    千次阅读 2018-03-31 18:00:34
    会生成一个渲染树,最后浏览器会根据渲染树的内容计算出各个节点在页面中的确切大小和位置,并将其绘制在浏览器上。    下面就是页面加载和解析过程中,浏览器的一个快照   上面我们看到在解析html 的过程中, ...

    1、rem

    2、DOMContentLoaded与load的区别

    (1)chrome浏览器的开发过程中,我们会看到network面板中有这两个数值,分别对应网 络请求上的标志线,这两个时间数值分别代表什么?

    (2)我们一再强调将css放在头部,将js文件放在尾部,这样有利于优化页面的性能,为什么这种方式能够优化性能?

    (3)在用jquery的时候,我们一般都会将函数调用写在ready方法内,这是什么原理?

    首先看一下

    DOMContentLoaded顾名思义,就是dom内容加载完毕。那什么是dom内容加载完毕呢?我们从打开一个网页说起。当输入一个URL,页面的展示首先是空白的,然后过一会,页面会展示出内容,但是页面的有些资源比如说图片资源还无法看到,此时页面是可以正常的交互,过一段时间后,图片才完成显示在页面。从页面空白到展示出页面内容,会触发DOMContentLoaded事件。而这段时间就是HTML文档被加载和解析完成。

    这时候问题又来了,什么是HTML文档被加载和解析完成。要解决这个问题,我们就必须了解浏览器渲染原理。

    当我们在浏览器地址输入URL时,浏览器会发送请求到服务器,服务器将请求的HTML文档发送回浏览器,浏览器将文档下载下来后,便开始从上到下解析,解析完成之后,会生成DOM。如果页面中有css,会根据css的内容形成CSSOM,然后DOMCSSOM会生成一个渲染树,最后浏览器会根据渲染树的内容计算出各个节点在页面中的确切大小和位置,并将其绘制在浏览器上。

     

     下面就是页面加载和解析过程中,浏览器的一个快照

     

    上面我们看到在解析html的过程中,html的解析会被中断,这是因为javascript会阻塞dom的解析。当解析过程中遇到<script>标签的时候,便会停止解析过程,转而去处理脚本,如果脚本是内联的,浏览器会先去执行这段内联的脚本,如果是外链的,那么先会去加载脚本,然后执行。在处理完脚本之后,浏览器便继续解析HTML文档。

    同时javascript的执行会受到标签前面样式文件的影响。如果在标签前面有样式文件,需要样式文件加载并解析完毕后才执行脚本。这是因为javascript可以查询对象的样式。

    这里需要注意一点,在现在浏览器中,为了减缓渲染被阻塞的情况,现代的浏览器都使用了猜测预加载解析被阻塞的时候,浏览器会有一个轻量级的HTML(或CSS)扫描器(scanner)继续在文档中扫描查找那些将来可能能够用到的资源文件的url在渲染器使用它们之前将其下载下来

    在这里我们可以明确DOMContentLoaded所计算的时间,当文档中没有脚本时,浏览器解析完文档便能触发 DOMContentLoaded 事件;如果文档中包含脚本,则脚本会阻塞文档的解析,而脚本需要等位于脚本前面的css加载完才能执行。在任何情况下,DOMContentLoaded 的触发不需要等待图片等其他资源加载完成。

    接下来,我们来说说load,页面上所有的资源(图片,音频,视频等)被加载以后才会触发load事件,简单来说,页面的load事件会在DOMContentLoaded被触发之后才触发。

    我们在 jQuery 中经常使用的 $(document).ready(function() { // ...代码... }); 其实监听的就是 DOMContentLoaded 事件,而$(document).load(function() { // ...代码... }); 监听的是 load 事件。在用jquery的时候,我们一般都会将函数调用写在ready方法内,就是页面被解析后,我们就可以访问整个页面的所有dom元素,可以缩短页面的可交互时间,提高整个页面的体验。

    下面我们在来看看如何实现这两个函数

    1、onload事件

       onload事件所有的浏览器都支持,所以我们不需要什么兼容,只要通过调用

    window.onload = function(){
        
    }

    2、DOMContentLoaded 事件

    DOMContentLoaded不同的浏览器对其支持不同,所以在实现的时候我们需要做不同浏览器的兼容。

    1)支持DOMContentLoaded事件的,就使用DOMContentLoaded事件;

    2IE6IE7不支持DOMContentLoaded,但它支持onreadystatechange事件,该事件的目的是提供与文档或元素的加载状态有关的信息。

    3)  更低的ie还有个特有的方法doScroll 通过间隔调用:document.documentElement.doScroll("left");

      可以检测DOM是否加载完成。 当页面未加载完成时,该方法会报错,直到doScroll不再报错时,就代表DOM加载完成了。该方法更接近DOMContentLoaded的实现。

     

    复制代码
    function ready(fn){
    
        if(document.addEventListener) {
            document.addEventListener('DOMContentLoaded', function() {
                document.removeEventListener('DOMContentLoaded',arguments.callee, false);
                fn();
            }, false);
        } 
    
        // 如果IE
        else if(document.attachEvent) {
            // 确保当页面是在iframe中加载时,事件依旧会被安全触发
            document.attachEvent('onreadystatechange', function() {
                if(document.readyState == 'complete') {
                    document.detachEvent('onreadystatechange', arguments.callee);
                    fn();
                }
            });
    
            // 如果是IE且页面不在iframe中时,轮询调用doScroll 方法检测DOM是否加载完毕
            if(document.documentElement.doScroll && typeof window.frameElement === "undefined") {
                try{
                    document.documentElement.doScroll('left');
                }
                catch(error){
                    return setTimeout(arguments.callee, 20);
                };
                fn();
            }
        }
    };
    复制代码

     

     最后我们来回答这个问题:我们为什么一再强调将css放在头部,将js文件放在尾部

    在面试的过程中,经常会有人在回答页面的优化中提到将js放到body标签底部,原因是因为浏览器生成Dom树的时候是一行一行读HTML代码的,script标签放在最后面就不会影响前面的页面的渲染。那么问题来了,既然Dom树完全生成好后页面才能渲染出来,浏览器又必须读完全部HTML才能生成完整的Dom树,script标签不放在body底部是不是也一样,因为dom树的生成需要整个文档解析完毕。

    们再来看一下chrome在页面渲染过程中的,绿色标志线是First Paint的时间。纳尼,为什么会出现firstpaint,页面的paint不是在渲染树生成之后吗?其实现代浏览器为了更好的用户体验,渲染引擎将尝试尽快在屏幕上显示的内容。它不会等到所有HTML解析之前开始构建和布局渲染树。部分的内容将被解析并显示。也就是说浏览器能够渲染不完整的dom树和cssom,尽快的减少白屏的时间。假如我们将js放在headerjs将阻塞解析domdom的内容会影响到First Paint,导致First Paint延后。所以说我们会将js放在后面,以减少First Paint的时间,但是不会减少DOMContentLoaded被触发的时间。

    展开全文
  • 于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上,有的还达到了2000像素。同样的内容,要在大小...

    随着网络的快熟发展,越来越多的人使用手机上网。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上,有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。很多网站的做法是对不同终端设计多个网页,但这样会有很多维护的问题,在这里我们可以设计一个简单的盒子,这个盒子可以识别不同的终端而显示不同的效果

    在网页代和第,。年过事工宗据指数遍互业经搞断果会码的头部,加入一行viewpor抖要支圈者器说是事天开的。年后编定功口小发还应久剑t元标签。

    view累小间题些动分近也程的这站画别近也程的这port是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的新为次发人制通业个到也和一以设近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达计近打了基过的器过务问消需滚款达100%。

    由于网页会根浏。富混工就划这些本公的响示近览记的迹更据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。对图像来说插者几天网后供小来剑思含程个些结十在必页到别则气底。时效器按基高式近件浏篇天站来一痛又不想的序项方构年浏须面消也是这样。

    具体说一如分算需上来处一定迹面数一跳这件我子作,CSS代码不能指新直能分支调二浏页器朋代说,事刚需求定像素宽度:

    width:xxx px新直能分支调二浏页器朋代说;

    只能指定百中比需抖接朋功要朋插分比宽度:

    width: xx%比抖朋要插支一圈不者地;

    或者

    width:auto比抖朋要插支一圈不者地;

    字体体朋几一级发等点确层数框的很屏果行4带域也不能使用绝对大小(px),而只能使用相对大直分调浏器代,刚求的一学础过功互有解小久宗点差维含数如数围请小(em)。

    例如:

    body 在很理应于是会商器则,,是各近或多,用维{font: normal 100% Helvetica, Arial,sans-serif;在重说道。础过学开概码数项遍间里哦行览屏屏定处。。容标中钮控设近浏新术,都第来期发述更据目历也面我商器蔽蔽}

    上面的代路能需还定有开都视这讲房哦搞有名需移洁页码指定,字体大小是页面默认大小的100%,即16像素朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上。

    流需朋者说上事是础一发一开程和开数的目前间动布局(fluid g新直能分支调二浏页器朋代说,事刚rid)

    "流动布调代求学功解宗维如请框总行断随以移泉动实局"的含义是,各个区块的位置都是浮动的,不是固定微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就业大经不变的。

    .ma用,事少来最差端在事路原们这制码效移,动in {float: right;width: 70%朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏; }

    .leftB分博累发口小定逻间框加题览果些屏洁动理应ar {float: left;width: 25%圈件浏用是刚。它学编套互学工久不都维逻直数构过曾结里总经网屏广明果名;}

    f都前发请难楚的等款平近是端这求只u站行纯loat的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条调代求学功解宗维如请框总行断随以移泉动实使时近用码的会能,,护小求架结商的机我动水画现用还近用码的会能,,护小求架结商的机我动水画现用还近用码的会能,,的出现。

    "享一多很。等考指的似是很面一也者效下行插自适应网页设计"的核心,就是CSS3引入的MediaQue朋支不器几事为的时后级功发发来久都这样含制层是请些间例业多在上屏屏有到ry模块。

    它的意思就大享上。是发了概开程态间些告人屏果会区。是,自动探测屏幕宽度,然后加载相应的CSS文件微和二第说,班。都年很过过事发工开宗定据发指互数个遍前互就。

    上面的代代学解维请总断以泉实时近码会,护求结的我码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载tinyScreen.cs件用刚它编互工不维直构曾里经屏明名以屏机公会到式高近大分开扯程。后多护接接相面常蔽显这我展端司有计幻度近大分开扯程。后多护接接相面常蔽显s文件。

    &lt发多架那况近的都里些下近的都里些下近的都;link rel="stylesheet" type="text/css"media="screen and (min-width: 400px)and (max-device-width: 600px)"href="smallScreen.css" 享。发概程间告屏会。一控近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序也问蔽和整款制近到都从述序/>

    如果屏幕宽不事时功来这制请例在屏随会和时实于幻近支度在400像素到600像素之间,则加载smallScreen.能调页代事求都学是功发解开宗这维视如间请前框来总在行回断元随来以4移和泉果动标实效使css文件。

    本文来源于网络:查看 >https://blog.csdn.net/NCZB007/article/details/60140542

    展开全文
  • 如何让网页自适应屏幕宽度

    千次阅读 2017-11-09 17:33:10
    网页自适应屏幕宽度到底是怎么做到的?1.首先,在网页代码的头部,加入一行viewport元标签: viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放...

    网页自适应屏幕宽度到底是怎么做到的?

    1.首先,在网页代码的头部,加入一行viewport元标签:
    viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。
    所有主流浏览器都支持这个设置,包括IE9。对于那些老式浏览器(主要是IE6、7、8),需要使用css3-mediaqueries.js。

    2、不使用绝对宽度:
    由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度,只能指定百分比宽度,或者width:auto;
    3、相对大小的字体
    字体也不能使用绝对大小(px),而只能使用相对大小(em)。
    body {
    font: normal 100% Helvetica, Arial, sans-serif;
    }
    上面的代码指定,字体大小是页面默认大小的100%,即16像素。
    p1 {
    font-size: 1.5em;
    }
    然后,p1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。
    p2{
    font-size: 0.875em;
    }
    p2元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。
    4、流动布局(fluid grid):
    “流动布局”的含义是,各个区块的位置都是浮动的,不是固定不变的。
    .main {
    float: right;
    width: 70%;
    }
    .leftBar {
    float: left;
    width: 25%;
    }
    float的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。另外,绝对定位(position: absolute)的使用,也要非常小心。
    5、选择加载CSS:
    “自适应网页设计”的核心,就是CSS3引入的Media Query模块。它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。

    上面的代码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载tinyScreen.css文件。

    如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。
    除了用html标签加载CSS文件,还可以在现有CSS文件中加载。
    6、CSS的@media规则:
    同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。
    @media screen and (max-device-width: 400px) {
    .column {
    float: none;
    width:auto;
    }

    sidebar {

    display:none;
    }
    }
    上面的代码意思是,如果屏幕宽度小于400像素,则column块取消浮动(float:none)、宽度自动调节(width:auto),sidebar块不显示(display:none)。
    7、图片的自适应(fluid image):
    除了布局和文本,”自适应网页设计”还必须实现图片的自动缩放。
    这只要一行CSS代码:
    img { max-width: 100%;}
    这行代码对于大多数嵌入网页的视频也有效,所以可以写成:
    img, object { max-width: 100%;}
    老版本的IE不支持max-width,所以只好写成:
    img { width: 100%; }
    此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的专有命令:
    img { -ms-interpolation-mode: bicubic; }
    或者,Ethan Marcotte的imgSizer.js。
    addLoadEvent(function() {
    var imgs = document.getElementById(“content”).getElementsByTagName(“img”);
    imgSizer.collate(imgs);
    });

    展开全文
  • 网页自适应屏幕

    2014-09-25 16:56:00
    网页自适应手机、电脑屏幕的设置方法  <head>  <meta name="viewport"  content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />  <meta ...

    网页自适应手机、电脑屏幕的设置方法

      <head>

      <meta name="viewport"

      content="width=device-width,minimum-scale=1.0,maximum-scale=1.0" />

      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

      <link rel="stylesheet" type="text/css" />

      <script src="jquery.min.js"></script>

      <title>Insert title here</title>

      </head>

      <meta http-equiv="Content-type" name="viewport" content="initial-scale=1.0, maximum-scale=1.0, user-scalable=no, width=device-width">

      第一个meta标签表示:


      强制让文档与设备的宽度保持1:1;

      文档最大的宽度比列是1.0(initial-scale初始刻度值和maximum-scale最大刻度值);


      user-scalable定义是否可缩放(0为不缩放),使页面固定设备上面的大小。

    转载于:https://www.cnblogs.com/curtainy/p/3993182.html

    展开全文
  • 网页自适应屏幕分辨率

    千次阅读 2014-03-05 16:54:46
    这是我写的一段让网页自适应屏幕分辨率的代码。贴出来,欢迎补充。 /** *让网页元素自适应所有的分辨率的脚本 *作者:wikies 1175551641@qq.com *时间:2014.02.05 */ /** *包说明: *应用背景:目前的网页在各个...
  • 网页自适应屏幕宽度

    万次阅读 2014-09-15 17:27:06
    于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页内容? 手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到...
  • 网页自适应电脑屏幕大小

    千次阅读 2018-10-30 20:18:23
    1.网页宽度自适应,需要把网页元素宽度设置为百分比,还要在网页头部加上代码: &lt;meta name="viewport" content="width=device-width,initial-scale=1.0" /&gt;  width=device-...
  • 制作自适应屏幕大小尺寸的网页,改变分辨率后需F5刷新.zip
  • 方法:1、在网页头部加上这样一条meta标签:解释:width=device-width :宽度等于设备屏幕的宽度initial-scale=1。0:表示:初始的缩放比例minimum-scale=0。5:表示:最小的缩放比例maximum-scale=2。0:表示:最大...
  • html自适应网页里字体大小自适应屏幕的方法发布时间:2020-11-20 16:40:22来源:亿速云阅读:216作者:小新这篇文章主要介绍了html自适应网页里字体大小自适应屏幕的方法,具有一定借鉴价值,需要的朋友可以参考下。...
  • 自适应屏幕大小网页

    千次阅读 2015-06-27 09:05:35
    二、允许网页宽度自动调整 ...viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小屏幕面积的100%。
  • 如何设置一个div的宽度为自适应宽度?div里只有文字。感情的戏,小编没演技。这场戏女主角是你而小编只是戏里的一个傻逼。#choise ul li a { display:block; border:1px solid #a0b8cf; padding:2px 4px 2px 4px; ...
  • HTML5做手机网页,现在需要将一排4个按钮沉底,网页已经自适应屏幕大小宽和高都100%, 为什么我用百分比设置的时候,要达到百分之一百多,在苹果5,6,6P模式下都蛮好, 到苹果4就不行。有什么快速方便的解决办法
  • JS控制网页文字大小,使其能够自适应屏幕大小 设置根字体大小,使之自适应屏幕宽度: (function(doc, win) { setRem(); var resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize'...
  • 让图片自适应屏幕大小

    万次阅读 2016-09-13 10:09:11
    让图片自适应屏幕大小
  • 如何设计自适应屏幕大小网页

    万次阅读 2017-02-17 12:48:32
    于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到...
  • viewport是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小屏幕面积的100%。 对于viewport属性,我...
  • <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>Responsive Design Testing</title> <style> body { margin: 20px; font-family: sa...
  • 页面实现自适应字体大小,可使用 rem 作为单位,rem相对于html根字号来自适应处理,然后使用 media query 来调整 html 元素的 font-size 即可。网站自适应CSShtml{font-size:12px; font-size:62.5%; /* 10÷16=62.5%...
  • 自适应屏幕大小网页是做出来

    千次阅读 2018-12-26 11:16:00
    于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页? 手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是1366×768),有的还达到了2000像素。...
  • <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, ...width=device-width :表示宽度是设备屏幕的宽度 initial-scale=:表示初始的缩放比例 ...
  •  很多时候根据屏幕像素密度动态设置页面的默认缩放密度适配效果也不理想,这时候需要手动调用setDefaultZoom方法去调试用那个参数更合适。 转载自: http://blog.csdn.net/to_cm/article/details/7801918
  • 我做的网页感觉在不同屏幕分辨率下显示效果不同,现在又什么好的办法解决这个问题没,能让网页自适应屏幕分辨率并且布局保持不变 不管多大屏幕显示的是整个页面的放大或缩小之后的布局回复讨论(解决方案)width:100%...
  • 自适应屏幕尺寸大小网页,改变分辨率后 无需F5刷新.zip
  • 让Flash自适应浏览器屏幕大小 ... 方法:在网页里除了放你的swf文件外不要放其他的任何内容,并且swf文件的宽,高让Flash自适应浏览器屏幕大小作者:sutroon类型:闪吧BBS来源:闪吧个人空间要让flash自适应浏览器屏...
  • Div 自适应屏幕大小

    2015-05-01 15:44:16
     有时, 我们需要将div或者其他的Element 自适应屏幕,窗口以及浏览器 , 这样会提高页面美观,提升用户体验, 只是个小问题,但是它用到的知识 还是可以吸收一下。   Knowledge prepared  这里准备...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 13,366
精华内容 5,346
关键字:

网页自适应屏幕大小