资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

html5宽度自适应的简单介绍

html5设置图片自适应屏幕宽度

使用百分比,比如

成都网站建设哪家好,找创新互联建站!专注于网页设计、网站建设公司、微信开发、微信小程序、集团成都定制网页设计等服务项目。核心团队均拥有互联网行业多年经验,服务众多知名企业客户;涵盖的客户类型包括:成都铜雕雕塑等众多领域,积累了大量丰富的经验,同时也获得了客户的一致称誉!

img

src='../a.ipg'

style='width:50%'

/

这样就会保持屏幕的50%的宽度。

如果有上级标签,比如:

div

img

src='../a.ipg'

style='width:50%'

/

/div

那图片大小就是div宽度的50%,div没有设置宽度就会默认是屏幕宽度,如果设置了宽度,就要注意

HTML5的视频能不能拉伸宽度,实现自适应宽度?

曾几何时,项目中有碰到视频比例拉伸的需求,但是发现这个看似再普通不过的一个需求,找遍全网至今都没有找到解决方法。因为强制给video标签设置width和height的话只会将video的显示区域拉伸,但是里面的视频还是保持原始比例,怎么调都没用:

因为当我横向拉伸时:

当我纵向拉伸时:

2016-09-21 11:15:40 更新:

感谢 @RileyRen 提醒,原来还有object-fit这一属性,把它设置为fill就满足需求了,泪奔~,这篇文章就当看个笑话吧,哎,不过可以看看我家喵星人的处女秀。

stylevideo {

object-fit:fill;

width:800px;

height:320px;}/styleh1测试视频比例拉伸:/h1video src="" controls autoplay loop/video

但是,这一属性兼容性不太好,IE全军覆没,安卓要4.4.3以上才支持:

所以我这个方法还是有一点点价值的,哈哈。

解决方法一

有人会说,既然网页上拉伸不了比例,那么直接把视频用转码工具拉伸比例然后重新转码不就是了?

没错,这就是我说的第一种解决方法,但是这对于少量视频没啥问题,如果有很多个视频,全部转码又重新上传也不太现实。刚开始我也确实是这么做的,但是后来发现还有其它方法。

解决方法二

就是标题说的,借用transform来实现视频比例拉伸。分2种情况,宽高比变大和宽高比变小。

3.1. 完整DEMO演示

先来看个完整的DEMO,视频主角是我家的喵星人,阿喵说:哎呀,要露脸了,好害羞~~~

3.2. 宽高比变大

保持宽度不变,调整rotateX即可实现高度变小,也就是宽高比变大了。看下图:

举个例子,假如原始视频分辨率是640*320(16:9),我想把它调成16:7,也就是640*280,那么:

cos θ = 新高度 / 旧高度 = 280 / 360

用js计算角度(单位是deg):

var rotate = (Math.acos(280/360)*180/Math.PI).toFixed(2); // 新高度 / 旧高度

3.3. 宽高比变小

宽高比减小时,以高度为基准,调整rotateY即可实现宽度变小,也就是宽高比变小了。

举个例子,假如原始视频分辨率是640*320(16:9),我想把它调成4:3,也就是480*320,那么:

cos θ = 新宽度 / 旧宽度 = 480 / 640

用js计算角度(单位是deg):

var rotate = (Math.acos(480/640)*180/Math.PI).toFixed(2); // 新宽度 / 旧宽度

总结

综上,有了这2个方法就可以实现任意比例的视频拉伸了,不过变形过程中需要注意位置可能发现的变化。

附上前面演示选择的DEMO:

!DOCTYPE htmlhtml lang="zh"head

meta charset="utf-8"

meta name="viewport" content="width=device-width, initial-scale=1.0"

title旋转比例模拟/title

style type="text/css".content {

position: absolute;

width: 400px;

height: 300px;

-webkit-perspective: 400px;

perspective: 400px;

left: 100px;

top: 100px;}.wrapper {

position: absolute;

width: 320px;

height: 240px;

transform: rotateY(-30deg) rotateX(0deg);

border: solid 2px #000;}.wrapper.rotate{

transform: rotateY(-30deg) rotateX(50deg);}.wrapper:after {

content: '';

display: block;

position: absolute;

做好的html怎样转成html5自适应屏幕大小?

首先你要在html页面头部加上下面的代码;viewport",不懂可以百度;content=",一些小的模块可以用固定尺寸;meta , name="。再就是css中要应用到媒体查询,不能不用固定尺寸。

/,其次你要把页面中的宽度修改为百分比;width=device-width; ,也就是@media;initial-scale=1"。

超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。

特点:

1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便。

2、可扩展性:超级文本标记语言的广泛应用带来了加强功能,增加标识符等要求,超级文本标记语言采取子类元素的方式,为系统扩展带来保证。

3、平台无关性:虽然个人计算机大行其道,但使用MAC等其他机器的大有人在,超级文本标记语言可以使用在广泛的平台上,这也是万维网(WWW)盛行的另一个原因。

4、通用性:另外,HTML是网络的通用语言,一种简单、通用的全置标记语言。它允许网页制作人建立文本与图片相结合的复杂页面,这些页面可以被网上任何其他人浏览到,无论使用的是什么类型的电脑或浏览器。

HTML5如何利用rem实现自适应布局

分析设计图

假设设计图大小为1080px。这也就意味着,在开发时,需要兼容的最大分辨率为1080px,最小的为320px。

2. 调整视口

代码实例:

!DOCTYPE html

head

meta charset="UTF-8" /

title布局之路-移动端开发实例/title

meta name="viewport" content="width=device-width,user-scalable = no" /

link rel="stylesheet" type="text/css" href="css/reset.css" /

/head

body

div class="wrap"/div

/body

/html

代码解析:由于使用不同设备打开网页时,宽度均有所不同,所以不能讲视口设置为固定值,应当为width=device-width,即将视口设置为当前设备的宽度。

3. 确定设计图的最小字体

浏览器(部分)能够显示的最小字体未12px,当移动端页面宽度为320px时,要保证最小字体为12px,那么在1080px的设计图中,最小字体应当为42px。

代码实例:

style type="text/css"

html {

font-size: 42px;

}

/style

4. 按照设计图的像素进行开发

按照正常网页开发流程,进行网页开发即可。

5. 使用百分比和rem替换px

代码效果对比:

/*使用固定像素*/

.box {

float: left;

width: 658px;

font-size: 72px;

text-align: center;

line-height: 195px;

}

/*使用百分比和rem*/

.box {

float: left;

width: 60.93%;

font-size: 1.71rem;

text-align: center;

line-height: 4.64rem;

}

代码解析:

水平方向的值,将具体像素调整为百分比。百分比的计算是根据父级的内容区宽度进行计算的。

例如,父级宽度为1080px, 子级元素为197px,那么子元素转换为百分比为:197/1080*100%=18.24%。需要注意的是百分比根据父级计算,当标签结构级别不同时,计算公式中的“分母”也有所不同,在开发时这个地方很容易出现问题,请务必注意。

垂直方向的值,将具体像素调整为rem,与水平方向相比,垂直方向的计算就比较简单。例如,行高为195px,HTML标签当前的字体大小为42px,将行高转换为rem单位,即195/42= 4. 64rem。


本文名称:html5宽度自适应的简单介绍
URL地址:http://www.cdkjz.cn/article/dsgdgeg.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

大客户专线   成都:13518219792   座机:028-86922220