仿站,如何让手机和PC,两个页面,融合成一个响应式页面

也就是2合1

具体怎么做呢?

本质的要求是

1.pc和M加载不同的css和js
2.pc和M展现不同的html

有一篇文章是这样的


他提供了三种方法
1.给link标签,加上id,获取这个id元素,修改link的css属性。

<link rel="stylesheet" type="text/css" id="links" href="../css/m_wuqinglan.css"/>
        <script type="text/javascript">
            window.onload=function(){ 
                var sc=document.getElementById("links"); 
                    if(window.screen.width>1024) //获取屏幕的的宽度 
                    { 
                        sc.setAttribute("href","../css/pc_wuqinglan.css"); //电脑
                    } 
                    else{ 
                        sc.setAttribute("href","../css/m_wuqinglan.css"); //手机
                    } 
            }
        </script>

2.在link中增加media属性,根据media属性,进行加载不同的css,会随着你的拖动窗口大小而执行

//其中 media 是媒体查询的范围,当最大宽度是1200,这里就是手机平板一下的尺寸 加载手机css ,反之电脑css
<link rel="stylesheet" type="text/css" href="../css/m_wuqinglan.css" media="screen and (max-width:1200px)"/>
<link rel="stylesheet" type="text/css" href="../css/pc_wuqinglan.css" media="screen and (min-width:1201px)"/>

3.直接在css中写媒体查询

直接媒体查询然后写样式
@media only screen and (max-width: 1024px) {
    .div1{
        width:50%;
    }
    .div2{
        width:50%;
    }
    .div3 {
        width:50%;
    }
}

@media only screen and (min-width: 1024px) {
    .div1{
        width:100%;
    }
    .div2{
        width:100%;
    }
    .div3 {
        width:100%;
    }
}
当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

显然,css的加载我们解决了,那js和html呢

OK 现在实现,不同的页面尺寸加载不同的js

1.根绝屏幕尺寸,加载不同的js

<script type="text/javascript">  
// 根据屏幕尺寸  
if (screen && screen.width > 480) {  
document.write('<script type="text/javascript" charset="utf-8" src="123.js"><\/script>');  
}  
  
// userAgent判断  
if( /Android|webOS|iPhone|iPod|iPad|BlackBerry/i.test(navigator.userAgent)){  
document.write('<script type="text/javascript" charset="utf-8" src="123.js"><\/script>');  
}  
</script>  

2.根据不同的手机useagent加载不同的js

<script type="text/javascript">  
function browserRedirect() {  
var sUserAgent = navigator.userAgent.toLowerCase();  
var bIsIpad = sUserAgent.match(/ipad/i) == "ipad";  
var bIsIphoneOs = sUserAgent.match(/iphone os/i) == "iphone os";  
var bIsMidp = sUserAgent.match(/midp/i) == "midp";  
var bIsUc7 = sUserAgent.match(/rv:1.2.3.4/i) == "rv:1.2.3.4";  
var bIsUc = sUserAgent.match(/ucweb/i) == "ucweb";  
var bIsAndroid = sUserAgent.match(/android/i) == "android";  
var bIsCE = sUserAgent.match(/windows ce/i) == "windows ce";  
var bIsWM = sUserAgent.match(/windows mobile/i) == "windows mobile";  
// document.writeln("您的浏览设备为:");  
if (bIsIpad || bIsIphoneOs || bIsMidp || bIsUc7 || bIsUc || bIsAndroid || bIsCE || bIsWM) {  
  
// alert("手机浏览!");  
  
document.write('<script type="text/javascript" charset="utf-8" src="123.js"><\/script>');  
} else {  
  
// alert("PC浏览!");  
document.write('<script type="text/javascript" charset="utf-8" src="123.js"><\/script>');  
}  
}  
browserRedirect();  
</script>  

如何在pc和手机,呈现不同的html

1.如果使用响应式,设置display:none。难免会出现冗余代码。
2.不使用响应式的方法,有没有呢?

除非使用SPA单页写法,否则,只能通过display:none实现

最终已经实现:代码打包如下,点击下载*
https://files.cnblogs.com/files/cn-oldboy/JS根据不同的宽度,实现不同的jscssmeta和html展示.zip

posted @ 2020-06-05 22:44  风意不止  阅读(754)  评论(0编辑  收藏  举报