零基础建站培训介绍

当前位置:

自适应网页制作方法

自适应网页制作方法特别先想到的是css3的媒体查询 media-screen 控制在不同尺寸下显示。这里说个题外话,css中的像素单位px,是逻辑像素。不是设备的实际像素。但是,这个临界值并不好设置。

那就用js实现吧,js可以根据navigator.userAgent来识别浏览器。

做法:通过js控制显示的特别外层的div(body的子元素):


<body>
<div id="container-pc">
<!--PC端内容-->
</div>
<div id="container-mobile">
<!--移动端内容-->
</div>
</body>
(function () {
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
var containerPC = document.getElementById('container-pc');
var containerMobile = document.getElementById('container-mobile');
getRem();
addEvent();
function getRem() {
if (isMobile) {
containerPC.innerHTML = '';
var bodyWidth = document.body.offsetWidth;
//chrome最小字体的限制,放大100倍。保证根节点大于12px
document.documentElement.style.fontSize = (bodyWidth / 768)*100 + 'px' ;
window.onresize = function () {
getRem();
};
} else {//PC


containerMobile.innerHTML = '';
}
}
})()

PC端网页设计有最大宽度(比如1920px),还有个内容区域宽度(一般在960px-1200px的范围内)
移动端网页是一个自适应的网页,设计一般给一张宽550px的设计图,需要我们将这个设计图100%显示,在不同设备上进行缩放,固定的px单位无法满足,那就要用到rem这个单位。通过对html节点设置fong-size大小,局部大小就由这个基准决定。我们的设计图宽度是768px,在js代码里有体现,上面代码的第12行:


document.documentElement.style.fontSize = (bodyWidth / 768)*100 + 'px' ;

由于chrome最小字体的限制,根节点html的font-size不能小于12px,所以我们浏览器宽度跟设计图的宽度比放大100倍。写css的时候,设计图标注的宽度要缩小100.比如一个区域设计标注230px*150px,那在css里就是:


width:2.30rem;
height:1.50rem;

问题:
这样做,PC,移动端显示没有问题,但是在移动端打开,会加载pc端的资源,如图片,因为即使display:none,里面的img标签的图片也会被加载。但是也仅仅是加载<img>里的图片,不会加载background-image的图片,还可以接受。

移动端因为是自适应的网页,所以窗口缩放都要重新计算rem的基准。pc端可以用鼠标拖动缩放浏览器窗口,但是很少见到能缩放的移动端。所以这个计算好像也没那个必要。

对于网页中的mp4文件,如果在<video>中,在国产安卓浏览器播放会浮到特别上层,这个做法是做个播放弹窗。<video>资源会默认进入页面加载,导致页面特别慢。可以加个封面,再设置为不预加载。


<video poster="封面图片的地址" preload="none"></video>
上一课: 下一课:

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

相关教程

  • Media Queries,其作用就是允许添加表达式用以确定媒体的环境情况,以此来应用不同的样式表。换句话说,其允许我们在不改变内容的情况下,改变页面的
  • 制作自适应手机网站视频教程:https://www.xuewangzhan.net/gonggao/16271.html如果想让自己做的静态网页与动态程序结合在一起,就必须将静态页
  • 自适应网页制作方法 图文教程 (15457 次浏览)
    自适应网页制作方法特别先想到的是css3的媒体查询 media-screen 控制在不同尺寸下显示。这里说个题外话,css中的像素单位px,是逻辑像素。不是设
  • 如何在网页文字后加水平线?在HTML中,定义水平线可以使用水平线标签HR标签来写一个水平线。基本写法:[cce_html]<hr />[/cce_html]并且
  • :before 伪元素在元素之前添加内容:before这个伪元素允许创作人员在元素内容的特别前面插入生成内容。默认地,这个伪元素是行内元素,不过可以使用
  • 在网页制作和网站开发过程中,网页上使用的字体往往由于浏览者电脑中没有相应的字体,达不到我们设计的效果。为了解决这个问题,我们可以直接使用我们
  • 学做网站论坛承接全国各地网站制作。 学做网站论坛官网承接各类个人,企业,公司,集团,政府用户网站制作,价格公道,品质保证。
  • 雷擎石油能源有限公司是一家从事研发、生产汽车用润滑油,汽车养护品的细致公司。公司与美国芝加哥石油集团一脉相承,秉承严谨的风格,只为客户提供技
  • 热列祝贺翰典电子公司成功签约合肥睿酷网站制作,由睿酷网络为翰典电子公司制作企业官网,为企业发展添加互联网动力。翰典电子公司是一家细致生产
  • 做网站时,避免不了网站上有大量的图片。网站上的图片显示就需要使用img图片标签。HTML img图片标签写法[cce_html]<img src="图片地址" alt=
  • 在网站制作过程中经常需要使用到让div进行水平和垂直居中的技术。现在我们就来谈谈如何实现让div水平和垂直居中。Div标签水平居中方法Div
  • 通常所说的META标签,是在HTML网页源代码中一个重要的html标签。META标签用来描述一个HTML网页文档的属性,例如作者、日期和时间、网页描述、关键词、
  • 视频密码: wangzhanxue
  • 视频密码: wangzhanxue
  • 视频密码: wangzhanxue