html5 自适应屏幕分辨率大小

 说明:

①:H5自适应不同分辨率的设备,其实主要就一句

<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />

width=device-width 屏幕宽度;initial-scale=1 原始缩放比例为1,即100%铺满;minimum-scale=1 最小缩放比例为1;maximum-scale=1 最大缩放比例为1;user-scalable=no 禁止页面缩放。有些浏览器支持不一样,所以若想禁止缩放,就把最大最小缩放比例设为1即可!

②:字体单位使用rem,尽量不使用px,rem能等比适应所有屏幕。使用rem的优缺点,有详细介绍 http://isux.tencent.com/web-app-rem.html

③:dpr分屏,动态修改meta标签内容

下面试代码,有详细注释

<!doctype html>
<html>
<head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />
    <title>移动h5自适应布局</title>
    <style>
        /*320px布局*/
        html{font-size: 100px;  /*根字体100px, 即1px = 0.01rem*/}
        body{font-size: 0.14rem;/*实际相当于14px*/}
        body{
            padding:0;
            margin:0;
        }
        .div2{
            font-size:0.14rem;
        }
        .div3{
            width:3rem;
            height:3rem;
            
            border:1px solid #000;
            box-sizing:border-box;
        }
        .div4{
            margin-top:0.1rem;
            width:2rem;
            height:2rem;
            
            border:1px solid #000;
            box-sizing:border-box;
        }
        .img1{
            width:3.2rem;
        }
    </style>
</head>
<body>

    <div class="div2">动态更改html元素大小</div>
    <div class="div3"></div>
    <div class="div4"></div>
    <img class="img1" src="http://www.baidu.com/img/bdlogo.png" alt="" />
</body>
<script>
// 该代码来自http://www.ghugo.com/mobile-h5-fluid-layout-for-iphone6/
(function (doc, win) {
    // 分辨率Resolution适配  自适应
    var docEl = doc.documentElement,
        //判断浏览器是否支持orientationchange改变方向的函数
        resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
        recalc = function () {
            //客户端窗口的(逻辑)宽度,逻辑像素=物理像素/2  如:iphone6 (750/2=375)  
            var clientWidth = docEl.clientWidth;

            if (!clientWidth) return;
            // 把document的fontSize大小设置成跟窗口成一定比例的大小,从而实现响应式效果  由rem转换到px
            docEl.style.fontSize = 100 * (clientWidth / 320) + 'px';
        };

    // 如果浏览器不支持addEventListener函数就终止
    if (!doc.addEventListener) return;

    //addEventListener()多次绑定同一事件 参数(事件名,要执行的函数,处理程序的阶段)
    //如果浏览器不支持orientationchange改变方向的函数,则返回resize,会执行recalc函数
    win.addEventListener(resizeEvt, recalc, false);

    //绑定浏览器缩放与加载时间
    doc.addEventListener('DOMContentLoaded', recalc, false);
    
                 /*dpr分屏,动态修改meta标签内容*/
    // 一物理像素在不同屏幕的显示效果不一样。要根据devicePixelRatio来修改meta标签的scale,要注释上面的meta标签
    (function(){
        return;
        var dpr = scale =1;
         var isIPhone = win.navigator.appVersion.match(/iphone/gi);
         //获取到当前设备的dpr
        var devicePixelRatio = win.devicePixelRatio;
        if (isIPhone) {
            // iOS下,对于2和3的屏,用2倍的方案,其余的用1倍方案
            if (devicePixelRatio >= 3 && (!dpr || dpr >= 3)) {                
                dpr = 3;
            } else if (devicePixelRatio >= 2 && (!dpr || dpr >= 2)){
                dpr = 2;
            } else {
                dpr = 1;
            }
        } else {
            // 其他设备下,仍旧使用1倍的方案
            dpr = 1;
        }
           scale = 1 / dpr;
           
           // js动态写meta标签
           var metaEl = "";
           metaEl = doc.createElement('meta');
           //设置viewport,进行缩放,达到高清效果
        metaEl.setAttribute('name', 'viewport');
        metaEl.setAttribute('content', 'initial-scale=' + scale + ', maximum-scale=' + scale + ', minimum-scale=' + scale + ', user-scalable=no');
        if (docEl.firstElementChild) {
            //动态写入样式
            docEl.firstElementChild.appendChild(metaEl);
        } else {
            var wrap = doc.createElement('div');
            wrap.appendChild(metaEl);
            doc.write(wrap.innerHTML);
        }
    })();
        
})(document, window);    

</script>
</html>

运行结果:

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: HTML页面自适应电脑分辨率是指网页的元素,例如文字、图像、布局等可以自动根据不同的屏幕分辨率进行调整,以达到适配不同终端设备显示效果的目的。实现HTML页面自适应电脑分辨率的方法包括以下几个方面: 一、采用流式布局 采用流式布局就是让网页元素按照百分比宽度进行排列,而不是固定像素值。这样当屏幕分辨率变化时,网页的排版和布局也会根据屏幕宽度进行调整,从而实现自适应。 二、使用响应式框架 目前有很多响应式框架可供选择,例如Bootstrap、Foundation等。这些框架提供了一系列的样式组件,可以快速构建自适应网页,大大减轻了前端开发的负担。 三、使用CSS3技术 CSS3技术中的媒体查询功能可以根据屏幕大小和方向来应用不同的样式。通过使用@media查询和相关属性可以快速响应不同分辨率的屏幕,并实现相应的样式调整。 综上所述,实现HTML页面自适应电脑分辨率需要前端开发者结合使用流式布局、响应式框架和CSS3技术来进行处理。这样就可以兼容各种终端设备,让网页在不同的屏幕分辨率下都能够呈现适当的显示效果。 ### 回答2: HTML 页面自适应电脑分辨率的实现方法有多种,以下是其中的一些方法: 1. 使用CSS3中的媒体查询来实现页面的自适应。在编写CSS样式时,可以利用媒体查询为不同大小屏幕设置不同的样式。例如,可以为宽度大于1200px的屏幕设置一套样式表,为宽度在768px至1200px之间的屏幕设置另外一套样式表,为宽度小于768px的屏幕设置又另外一套样式表。这样,无论用户使用什么分辨率的屏幕打开页面都能够自适应。 2. 使用响应式Web设计框架,如Bootstrap、Foundation等。这些框架提供了一套完整的CSS和JavaScript代码,能够自动适应不同分辨率的屏幕。在开发过程中只需要调用这些框架提供的代码即可。 3. 使用viewport来控制页面显示。viewport是指网页在浏览器上显示的区域,页面可以通过设置viewport的大小和缩放来适应不同的屏幕分辨率。可以通过以下代码设置viewport: <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"> 其中,width=device-width表示viewport的宽度与设备宽度相等,initial-scale=1表示初始缩放比例为1,maximum-scale=1表示最大缩放比例为1,user-scalable=no表示禁止用户对页面进行缩放。 4. 使用flexbox布局。flexbox是CSS3中的一种布局方式,可以设置多个子元素在一个容器中的布局方式,通过设置子元素的宽度和高度比例来适应不同的屏幕分辨率。flexbox布局是一种比较灵活的布局方式,可以实现各种各样的布局效果。 综上所述,HTML 页面自适应电脑分辨率是一种很重要的Web设计方面。无论是企业网站还是个人博客,都需要考虑页面自适应的问题,以便让更多的用户能够方便地访问和使用页面内容。为此,需要掌握各种自适应的实现方法,并灵活运用。 ### 回答3: 随着电脑分辨率的不断提高,页面自适应技术变得越来越重要。如何让网站在各种不同的屏幕分辨率下都能呈现出最佳的设计效果和用户体验是每个 web 开发者都必须面对的问题。 在现代 web 开发中,最常用的页面自适应技术就是响应式设计,它能够自动适应任何设备和浏览器窗口大小,实现视觉效果的无缝切换。 实现响应式设计需要使用一些特定的技术,如 CSS3 的 media queries,可以根据不同的屏幕分辨率设定不同的样式规则。另外,还可以使用 fluid grid(流动网格)技术,通过设定相对宽度而不是固定宽度,使得页面元素能够自适应屏幕大小而不至于过度压缩或裁剪内容。 除此之外,也可以使用 JavaScript 技术来实现页面的自适应。比如,可以根据浏览器窗口大小动态地改变元素的尺寸和位置,或者选择性地加载不同分辨率的图片和元素,从而实现更流畅的用户体验。 总之,在页面自适应的开发中,最关键的是要考虑到用户的需求和体验。需要充分测试和优化页面,确保在不同设备和分辨率下都能正常显示和使用。这样才能为用户提供更好的浏览体验,增强网站的吸引力和竞争力。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

下页、再停留

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值