前端如何实现浏览器适配?

1.根据window.screen.width获取当前浏览器的宽度,然后根据宽度加载不同的样式文件;

<script>

if(window.screen.width>=1680) {

​ document.write('<link rel="stylesheet" href="css/index1.css"')

} else if (window.screen.width >= 1600) {}

</script>

注意:这里的script一定要写在head标签里面,这样在加载页面的之前,会先把css文件加载出来;

2.媒体查询:根据设备显示器的特性为其设定样式,媒体查询右媒体类型和一个或多个检测媒体特性的条件表达式组成;可以根据不同的媒体类型定义不同的样式,常用于区分pc跟mobile端内容;

缺点:1.有局限性,只能适应主流的宽高,2.要匹配足够多的屏幕大小,工作量大

优点:能够适应pc和移动端,只要有足够多的耐心,效果可以尽可能达到完美;

mediatype类型:all(用于所有的设备),print(用于打印机和打印浏览),screen(用于电脑屏幕、平板电脑、手机等);

扫描二维码关注公众号,回复: 16004311 查看本文章

关键字:and(且的意思),not(排除某个媒体类型),only(指定某个特定的媒体类型);

media feature媒体特性,必须用小括号包着,width(定义页面可见的宽度),min-width(定义页面可见的最小宽度),max-width(定义页面可见的最大宽度);

link中的css媒体查询:<link rel="stylesheet" media="(max-width: 800px)" href="index.css" />

在css文件中的写法:

@media only screen and (min-width: 1200px) {样式}

@media only screen and (min-width: 992px) and (max-width:1199px) {样式}

3.rem布局(移动端):rem会随着根元素字体大小的变化而变化

  • 媒体查询+rem布局:媒体查询动态修改根元素的大小,使得rem一直跟着变化,响应式就成功了

    @media only screen and (min-width: 600px) {html{font-size: 16px;}}

  • vw+vh+rem屏幕适配方案:可以把宽高的单位设置成vw和vh,使用rem做单位;

  • meta标签:视口跟设备宽度保持一致,默认缩放比例为1,不允许用户自行缩放,最大允许缩放比例为1,最小允许缩放比例为1;

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

猜你喜欢

转载自blog.csdn.net/m0_46318298/article/details/128382288