如何使用html5的视频网站技术适配手机网站

iphone6及iphone6plus已经出来一段时间了。很多移动端网站,以前写死body为320px的,现在估计也忙着做适配了。
大屏幕手机其实一直有,只是以前大家没怎么重视,移动端的H5页面大部分都以320px为基准宽度进行布局,那些大屏屌丝android用户也懒得去理,而现在iphone也搞起多屏幕,老板们重视程度就不一样了。
回归正题,兼容iphone各版本机型最佳的方式就是自适应。
1、viewport简单粗暴的方式:
&metaname="viewport"content="width=320,maximum-scale=1.3,user-scalable=no"&
直接设置viewport为320px的1.3倍,将页面放大1.3倍。
为什么是1.3?
目前大部分页面都是以320px为基准的布局,而iphone6的宽度比是375/320=1.171875,iphone6+则是414/320=1.29375
那么以1.29倍也就约等于1.3了。
2、ip6+的CSSmediaquery
@media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){
/*iphone6*/
@media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){
/*iphone6plus*/
PS:也可以直接使用实际的device-width:如device-width:375px
在原有页面的基础上,再针对相应的屏幕大小单独写样式做适配。
3、REM布局
REM是CSS3新增的一种单位,并且移动端的支持度很高,android2.x+,ios5+都支持。
REM是相对于dom结构的根元素来设置大小,也就是html这个元素。相较于em单位,rem使用上更容易理解及运用。
REM与PX的换算可以查看网址:https://offroadcode.com/prototypes/rem-calculator/
假设,html我们设置font-size:12也就是说12px相对于1rem,那么18px也就是18/12=1.5rem。
那么我们以320px的设计布局为基准,将html设置为font-size:100px,即100px=1rem。(设置100px是为了方便计算)那么可以将大部分px单位除以100就可以直接改成rem单位了。
REM如何做响应式布局?
1、如果仅仅是适配ip6+设备,那么使用mediaquery就行。
伪代码如下:
/*320px布局*/
html{font-size:100}
body{font-size:0.14rem/*实际相当于14px*/}
/*iphone6*/
@media(min-device-width:375px)and(max-device-width:667px)and(-webkit-min-device-pixel-ratio:2){
html{font-size:117.1875}
/*iphone6plus*/
@media(min-device-width:414px)and(max-device-width:736px)and(-webkit-min-device-pixel-ratio:3){
html{font-size:129.375}
这样,在ip6下,也就将页面内的元素放大了1.17倍,ip6+下也就是放大了1.29倍。
2、如果是完全自适应,那么可以通过JS来控制。
(function(doc,win){
vardocEl=doc.documentElement,
resizeEvt='orientationchange'inwindow?'orientationchange':'resize',
recalc=function(){
varclientWidth=docEl.clientW
if(!clientWidth)
docEl.style.fontSize=100*(clientWidth/320)+'px';
//AbortifbrowserdoesnotsupportaddEventListener
if(!doc.addEventListener)
win.addEventListener(resizeEvt,recalc,false);
doc.addEventListener('DOMContentLoaded',recalc,false);
})(document,window);
页面初始化的时候计算font-size,然后再绑定resize事件。这种效果就和百分比布局一样了。
那么用REM做单位与百分比做单位有什么优势?
主要优势在于能更好的控制元素大小。(一般百分比应用在布局层,一般常见设置为50%,33.3%,25%之类的整数居多,难以运用在复杂的页面小部件内)。
但是相比百分比布局,需要借助JS或mediaquery实现,略有一点瑕疵。
4、图片自适应
刚说完REM布局,那么用百分比布局也能实现一样的效果,但是用百分比布局,必须要面临一个问题:图片宽度100%,页面加载时会存在高度塌陷的问题。.
那么可以用padding-top设置百分比值来实现自适应。
公式如下:
padding-top=(ImageHeight/ImageWidth)*100%
原理:padding-top值为百分比时,取值是是相对于宽度的。
相关代码实现:
&divclass="cover"&
&imgsrc="http://g.ald.alicdn.com/bao/uploaded/i1/TB1d6QqGpXXXXbKXXXXXXXXXXXX_!!0-item_pic.jpg_160x160q90.jpg"alt=""/&
.cover{position:padding-top:100%;height:0;overflow:}
.coverimg{position:top:0;width:100%;}
DEMO地址,缩放浏览器窗口看看。
5、图片高清化
大家都知道,iphone6plus是3倍高清图了,它的devicePixelRatio=3。
在ios8下,已经开始支持img的srcset属性了(目前移动端也就ios8开始支持),也就是说,可以对一张图片设置2个URL,浏览器自动加载对应的图片。
黄色表示仅支持旧的srcset规范,绿色表示支持全新的srcset规范,包括sizes属性,w描述符。这里不展开,详细了解可自行google。
不过目前前端这边图片的实现基本都用lazyload的方式实现。srcset的图片加载方式在实际项目中运用还比较少。
6、背景图高清化
mediaquery实现高清化
img标签的高清化,可以通过JS判断devicePixelRatio的值来加载不同尺寸的图片,但是对于背景图,写在CSS中的,用JS来判断就略麻烦了,还好CSS通过mediaquery也能判断dpr。
目前兼容性最好的背景图高清化实现方式,使用mediaquery的-webkit-min-device-pixel-ratio做判断:
/*普通显示屏(设备像素比例小于等于1)使用1倍的图*/
background-image:url(img_1x.png);
/*高清显示屏(设备像素比例大于等于2)使用2倍图&*/
@mediaonlyscreenand(-webkit-min-device-pixel-ratio:2){
background-image:url(img_2x.png);
/*高清显示屏(设备像素比例大于等于3)使用3倍图&*/
@mediaonlyscreenand(-webkit-min-device-pixel-ratio:3){
background-image:url(img_3x.png);
进一步,可以通过工具生成相应的3x,2x,1x的图片及css,在使用时直接引用即可。谁搞一个?
关于移动设备的-webkit-min-device-pixel-ratio值,可以查看该网页的整理:http://bjango.com/articles/min-device-pixel-ratio/
image-set实现高清化
image-set,它是Webkit的私有属性,也是Css4的一个属性,它是为了解决Retina屏幕下的图像显示而生。
使用方式也很简单。伪代码如下:
background-image:url(1x.png);&&&/*不支持image-set的情况下显示*/
background:-webkit-image-set(
url(1x.png)1x,/*支持image-set的浏览器的[普通屏幕]下*/
url(2x.png)2x,/*支持image-set的浏览器的[2倍Retina屏幕]*/
url(3x.png)3x/*支持image-set的浏览器的[3倍Retina屏幕]*/
目前移动端的支持程度来看,ios7+,android4.4+下已经支持了。如果仅仅是做ip6+的高清适配方案。image-set也是一种实现方案。
使用image-set与mediaquery实现有什么区别及好处?
这篇文章里面做了很详细的阐述,大家可以看看:http://blog.cloudfour.com/safari-6-and-chrome-21-add-image-set-to-support-retina-images/
大体的意思是:image-set不需要告诉浏览器使用什么图像,而是直接提供了图像让浏览器选择。这就意味着,如果在低网速下,浏览器可以选择加载低分辨率的图片。(PS:好智能的样子)
但是相比如mediaquery的实现,image-set仅支持单个图片的高清化,不适合在csssprite下使用。并且兼容性也是一大硬伤。
但是一般来说,用在LOGO区域,单个图片图标的区域下,也是个不错的选择。
7、图片列表的自适应
关于适配,也就是要让布局更灵活,在电商网站里面,商品列表是一个非常常见的结构。
一种比较智能的列表方式是:两端对齐,间距自适应。
那么可以使用FLEXBOX布局来实现两端对齐的效果,也可以使用text-align:justify的方式实现。
先看个flex实现的例子,主要通过justify-content:space-between,来实现:
flexbox的布局方式,在PC端就不合适了,ie9以下都不支持,那么更友好的方式可以使用text-align:justify来实现,兼容各大主流浏览器,包括IE6。
但是这2种布局方式都有一定的局限性。就是列表个数必须凑整。目前还没找到一种能够兼容不限个数的实现方案,如果各位看官有更好的实现方式,也欢迎提出,一起交流。
移动端ip6的适配方案有很多,没有固定的套路及方法,请根据自身业务的特点,选择其中的一些方法组合使用。
跨无忧(www.kuawuyou.com)来自“跨屏无忧”的想法,我们首个推出永久的、不依赖第三方的跨屏幕适配方案,希望以我们专业的力量帮助每个企业都能实现在移动互联网的转变,让企业网站轻松无忧完成到移动设备的跨屏幕适配,快速抓住移动互联网机遇。
本文仅代表作者观点,不代表百度立场。本文系作者授权百度百家发表,未经许可,不得转载。
分享到微信朋友圈
打开微信,点击 “ 发现 ”
使用 “ 扫一扫 ” 即可将网页分享至朋友圈。
扫一扫在手机阅读、分享本文
百家号作者平台APP
扫码下载安卓客户端
便捷管理文章信息
随时查看文章收益7个步骤让PC网站自动适配手机网页_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
7个步骤让PC网站自动适配手机网页
阅读已结束,下载本文需要
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩2页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢这几天都在修改博客上面的样式。本来用的是d83.0的模板。自己又修改了许多地方,其中自己修改的一些地方在手机里面显示的效果不是很理想,于是想改成自适应的效果。对不是特别的熟练,只能去网上找找案例看了。发现一个不错的文章。写的比较入门,也很仔细。所以拿过来分享给大家。如果还想看图片的案例可以看我找的另外的一篇《》。移动设备正超过桌面设备,成为访问互联网的最常见终端。于是,网页设计师不得不面对一个难题:如何才能在不同大小的设备上呈现同样的网页?手机的屏幕比较小,宽度通常在600像素以下;PC的屏幕宽度,一般都在1000像素以上(目前主流宽度是),有的还达到了2000像素。同样的内容,要在大小迥异的屏幕上,都呈现出满意的效果,并不是一件容易的事。很多网站的解决方法,是为不同的设备提供不同的网页,比如专门提供一个mobile版本,或者iPhone / iPad版本。这样做固然保证了效果,但是比较麻烦,同时要维护好几个版本,而且如果一个网站有多个portal(入口),会大大增加架构设计的复杂度。于是,很早就有人设想,能不能”一次设计,普遍适用”,让同一张网页自动适应不同大小的屏幕,根据屏幕宽度,自动调整布局(layout)?一、”自适应网页设计”的概念2010年,Ethan Marcotte提出了(Responsive Web Design)这个名词,指可以自动识别屏幕宽度、并做出相应调整的网页设计。他制作了一个,里面是《福尔摩斯历险记》六个主人公的头像。如果屏幕宽度大于1300像素,则6张图片并排在一行。如果屏幕宽度在600像素到1300像素之间,则6张图片分成两行。如果屏幕宽度在400像素到600像素之间,则导航栏移到网页头部。如果屏幕宽度在400像素以下,则6张图片分成三行。上面有更多这样的例子。这里还有一个,可以在一张网页上,同时显示不同分辨率屏幕的测试效果,我推荐安装。二、允许网页宽度自动调整“自适应网页设计”到底是怎么做到的?其实并不难。首先,在网页代码的头部,加入一行。&meta name=”viewport” content=”width=device-width, initial-scale=1″ /&是网页默认的宽度和高度,上面这行代码的意思是,网页宽度默认等于屏幕宽度(width=device-width),原始缩放比例(initial-scale=1)为1.0,即网页初始大小占屏幕面积的100%。所有主流浏览器都支持这个设置,包括IE9。对于那些老式浏览器(主要是IE6、7、8),需要使用。&!–[if lt IE 9]&&script src=”http://css3-mediaqueries-js.googlecode.com/svn/trunk/css3-mediaqueries.js”&&/script&&![endif]–&三、不使用绝对宽度由于网页会根据屏幕宽度调整布局,所以不能使用绝对宽度的布局,也不能使用具有绝对宽度的元素。这一条非常重要。具体说,CSS代码不能指定像素宽度:width:只能指定百分比宽度:width: xx%;或者width:四、相对大小的字体字体也不能使用绝对大小(px),而只能使用相对大小(em)。body {font: normal 100% Helvetica, Arial, sans-}上面的代码指定,字体大小是页面默认大小的100%,即16像素。h1 {font-size: 1.5}然后,h1的大小是默认大小的1.5倍,即24像素(24/16=1.5)。small {font-size: 0.875}small元素的大小是默认大小的0.875倍,即14像素(14/16=0.875)。五、流动布局(fluid grid)的含义是,各个区块的位置都是浮动的,不是固定不变的。.main {float:width: 70%;}
.leftBar {float:width: 25%;}的好处是,如果宽度太小,放不下两个元素,后面的元素会自动滚动到前面元素的下方,不会在水平方向overflow(溢出),避免了水平滚动条的出现。另外,绝对定位(position: absolute)的使用,也要非常小心。六、选择加载CSS“自适应网页设计”的核心,就是引入的模块。它的意思就是,自动探测屏幕宽度,然后加载相应的CSS文件。&link rel="stylesheet" type="text/css"
media="screen and (max-device-width: 400px)"
href="tinyScreen.css" /&上面的代码意思是,如果屏幕宽度小于400像素(max-device-width: 400px),就加载tinyScreen.css文件。&link rel="stylesheet" type="text/css"
media="screen and (min-width: 400px) and (max-device-width: 600px)"
href="smallScreen.css" /&如果屏幕宽度在400像素到600像素之间,则加载smallScreen.css文件。除了用html标签加载CSS文件,还可以在现有CSS文件中加载。@import url("tinyScreen.css") screen and (max-device-width: 400px);七、CSS的@media规则同一个CSS文件中,也可以根据不同的屏幕分辨率,选择应用不同的CSS规则。@media screen and (max-device-width: 400px) {
#sidebar {
}上面的代码意思是,如果屏幕宽度小于400像素,则column块取消浮动(float:none)、宽度自动调节(width:auto),sidebar块不显示(display:none)。八、图片的自适应(fluid image)除了布局和文本,”自适应网页设计”还必须实现图片的。这只要一行CSS代码:img { max-width: 100%;}这行代码对于大多数嵌入网页的视频也有效,所以可以写成:img, object { max-width: 100%;}老版本的IE不支持max-width,所以只好写成:img { width: 100%; }此外,windows平台缩放图片时,可能出现图像失真现象。这时,可以尝试使用IE的:img { -ms-interpolation-mode: }或者,Ethan Marcotte的。addLoadEvent(function() {
var imgs = document.getElementById("content").getElementsByTagName("img");
imgSizer.collate(imgs);
});不过,有条件的话,最好还是根据不同大小的屏幕,加载不同分辨率的图片。有可以做到这一条,服务器端和客户端都可以实现。我觉得从上面的的一些分析可以学到很多东西,能解决一些网页设计基本的入门问题,希望也能帮到看到的朋友。转载请注明: &
如果你觉得这篇文章或者我分享的主题对你有帮助,请支持我继续更新网站和主题 ! or分享 (0)&>&自适应手机触屏HTML5网站模板
自适应手机触屏HTML5网站模板
上传大小:1.61MB
自适应手机触屏HTML5网站模板,大气、漂亮、简介。
综合评分:3(2位用户评分)
下载个数:
{%username%}回复{%com_username%}{%time%}\
/*点击出现回复框*/
$(".respond_btn").on("click", function (e) {
$(this).parents(".rightLi").children(".respond_box").show();
e.stopPropagation();
$(".cancel_res").on("click", function (e) {
$(this).parents(".res_b").siblings(".res_area").val("");
$(this).parents(".respond_box").hide();
e.stopPropagation();
/*删除评论*/
$(".del_comment_c").on("click", function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_invalid/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parents(".conLi").remove();
alert(data.msg);
$(".res_btn").click(function (e) {
var parentWrap = $(this).parents(".respond_box"),
q = parentWrap.find(".form1").serializeArray(),
resStr = $.trim(parentWrap.find(".res_area_r").val());
console.log(q);
//var res_area_r = $.trim($(".res_area_r").val());
if (resStr == '') {
$(".res_text").css({color: "red"});
$.post("/index.php/comment/do_comment_reply/", q,
function (data) {
if (data.succ == 1) {
var $target,
evt = e || window.
$target = $(evt.target || evt.srcElement);
var $dd = $target.parents('dd');
var $wrapReply = $dd.find('.respond_box');
console.log($wrapReply);
//var mess = $(".res_area_r").val();
var mess = resS
var str = str.replace(/{%header%}/g, data.header)
.replace(/{%href%}/g, 'http://' + window.location.host + '/user/' + data.username)
.replace(/{%username%}/g, data.username)
.replace(/{%com_username%}/g, data.com_username)
.replace(/{%time%}/g, data.time)
.replace(/{%id%}/g, data.id)
.replace(/{%mess%}/g, mess);
$dd.after(str);
$(".respond_box").hide();
$(".res_area_r").val("");
$(".res_area").val("");
$wrapReply.hide();
alert(data.msg);
}, "json");
/*删除回复*/
$(".rightLi").on("click", '.del_comment_r', function (e) {
var id = $(e.target).attr("id");
$.getJSON('/index.php/comment/do_comment_del/' + id,
function (data) {
if (data.succ == 1) {
$(e.target).parent().parent().parent().parent().parent().remove();
$(e.target).parents('.res_list').remove()
alert(data.msg);
//填充回复
function KeyP(v) {
var parentWrap = $(v).parents(".respond_box");
parentWrap.find(".res_area_r").val($.trim(parentWrap.find(".res_area").val()));
评论共有2条
没什么用,这代码到处有的下载
不错,正在找的
hooper0007
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
综合评分:
积分/C币:3
hooper0007
综合评分:
积分/C币:3
VIP会员动态
CSDN下载频道资源及相关规则调整公告V11.10
下载频道用户反馈专区
下载频道积分规则调整V1710.18
spring mvc+mybatis+mysql+maven+bootstrap 整合实现增删查改简单实例.zip
资源所需积分/C币
当前拥有积分
当前拥有C币
输入下载码
为了良好体验,不建议使用迅雷下载
自适应手机触屏HTML5网站模板
会员到期时间:
剩余下载个数:
剩余积分:0
为了良好体验,不建议使用迅雷下载
积分不足!
资源所需积分/C币
当前拥有积分
您可以选择
程序员的必选
绿色安全资源
资源所需积分/C币
当前拥有积分
当前拥有C币
(仅够下载10个资源)
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
为了良好体验,不建议使用迅雷下载
资源所需积分/C币
当前拥有积分
当前拥有C币
您的积分不足,将扣除 10 C币
为了良好体验,不建议使用迅雷下载
你当前的下载分为234。
你还不是VIP会员
开通VIP会员权限,免积分下载
你下载资源过于频繁,请输入验证码
您因违反CSDN下载频道规则而被锁定帐户,如有疑问,请联络:!
若举报审核通过,可返还被扣除的积分
被举报人:
yang470319
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
自适应手机触屏HTML5网站模板}

我要回帖

更多关于 使用html5的网站 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信