html以及尺寸兼容性处理问题

前端开发中,HTML尺寸的兼容性问题常常困扰开发者。文章介绍了应对策略,包括采用响应式布局或Bootstrap栅格系统,利用媒介查询调整样式,通过JS识别浏览器并动态调整页面,以及使用CSS条件设计和Normalize.css来处理样式差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

对于编写前端的小伙伴来说,浏览器的兼容性以及分辨率尺寸问题,一直是一个痛疼的问题往往是个别浏览器(xx浏览器)对于一些标准的定义以及默认样式不一致导致的。
对于不同尺寸以及分辨率市面上主要方法有:
1、使用响应式布局或者是bootstrap栅格系统(自行百度)可以很好的解决页面错乱;
先引入响应式布局:

实现不同屏幕分辨率的终端上浏览网页的不同展示方式

  对于响应式布局,我们一般在<head>标签里加入这个meta标签。(例子是对移动端的响应)
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">

或者媒介查询设置样式,根据设置的条件告诉浏览器对于条件下的元素怎样渲染。

@media screen and (max-width: 680px) {
  #head { … }
  #body { … }
  #footer { … }
}

或者设置多个宽度/高度(最大宽度/高度、最小宽度/高度)等
2、同时也可以使用JS对浏览器类型(内核)进行识别,之后使用JS对页面进行重新计算调整;
通过使用HTML内置navigator进行浏览器判断,返回类型为String类型的字符。

var agent = navigator.userAgent.toLowerCase();
var agent = navigator.userAgent.toLowerCase();
         //判断是否为IE浏览器
        if (agent.indexOf("MSIE") >= 0) {
            return 'ie';
        }
        //判断是否为Firefox浏览器
        else if (agent.indexOf("Firefox") >= 0) {
            return 'Firefox';
        }
        //判断是否为Chrome浏览器
        else if(agent.indexOf("Chrome") >= 0){
            return 'Chrome';
        }
        //判断是否为Opera浏览器
        else if(agent.indexOf("Opera") >= 0){
            return 'Opera';
        }
        //判断是否为Safari浏览器
        else if(agent.indexOf("Safari") >= 0){
            return 'Safari';
        }

再通过js控制css样式进行调整,例如:

 var obj1 = document.getElementById('a1');
 obj1.style.left = "13.5%";
 obj1.style.position = "absolute";

3、其次就是对CSS样式进行分别设计,通过各浏览器不同的识别系统进行识别,或者通过IF语句判断浏览器,引入不同的css资源(外链型)。
这个方法(条件注释法)主要针对外链css样式:

<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以及IE6以下版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以及IE6以上版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以及IE7以下版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以及IE7以上版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->


而对于兼容性样式等问题,市面上也有解决此类问题的js:
差异化问题:不同浏览器的默认样式存在差异,可以使用 Normalize.css 抹平这些差异。

<link href="https://cdn.bootcss.com/normalize/7.0.0/normalize.min.css" rel="stylesheet">
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值