HTML5与CSS3视口-retina屏幕适配

1.视口

视口是移动设备上用来显示网页的区域,一般会比移动设备可视区域大,宽度可能是980px或者1024px,目的是为了显示下整个为PC端设计的网页,这样会让移动端出现横向滚动条,为了避免这种情况,移动端会将视口缩放到移动端窗口的大小,这样会让网页不容易观看,可以使用meta标签,name="viewport"来设置视口的大小,将视口的大小设置为和移动设备可视区一样的大小。

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,user-scalable=no,initial-scale=1.0,maximum-scale=1.0,minimum-scale=1.0"> <!--设置视口的宽,缩放-->
<title>窗口</title>
<style type="text/css">

.box{
    width: 300px;
    height: 300px;
    background-color: gold;
}
</style>

</head>

<body>

<div class="box"></div>

</body>

2.视网膜屏幕(retina屏幕)清晰度解决方案

图像在视网膜屏幕上显示的大小和在一般屏幕上显示的大小一样,但是由于视网膜屏幕的物理像素点比一般的屏幕小,图像在上面好像是被放大了,图像会变得模糊,为了解决这个问题,可以使用比原来大一倍的图像,然后用CSS样式强制把图像的尺寸设为原来图像尺寸的大小。

3.background新属性

(1)background-size:

length:用长度值指定背景图像大小,不允许负值

percentage:用百分比指定背景图像大小,不允许负值

auto:背景图像的真实大小

cover:将背景图像等比例缩放到完全覆盖容器,背景图像有可能超出容器

contain:将背景图像等比例缩放到宽度和高度与容器的宽高相等,背景图像始终被包含在容器内

<head>
<meta charset="utf-8">
<title>scale</title>
<style type="text/css">

.box{
    width: 300px;
    height: 300px;
    border: 1px solid #000;
    background: url(images/3_02.png) no-repeat;
    /*background-size: 100%,100%;*/  /*用指定大小,缩放不成功*/
    /*background-size: auto; */       /*背景图真实大小*/
    /*background-size: contain;*/         /*按宽高等比例缩放*/
    background-size: cover;           /*等比例缩放到完全覆盖容器*/
    margin: 50px auto 0;
}
</style>

</head>

<body>

<div class="box"></div>

</body>

4.PC级移动端页面适配方法

(1)全适配:响应式布局+流体布局

(2)移动端适配:

流体布局+少量响应式
基于rem的布局

(3)流体布局

就是使用百分比来设置元素的宽度,元素的高度按实际高度写固定值,流体布局中,元素的边线无法用百分比,可以使用样式中的计算函数calc()来设置高度,或者使用box-sizing属性将盒子设置为从边线计算盒子尺寸。

calc()
可以通过计算的方式给元素加尺寸,比如:width:calc(25%-4px);

box-sizing
content-box默认的盒子尺寸计算方式

border-box设置盒子的尺寸计算方式为从边框开始,盒子的尺寸,边框和内填充算在盒子尺寸内。

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<title>流体布局</title>
<style type="text/css">

body{
    margin: 0px;
}
.box a{
    display: block;
    /*width: calc(25% - 4px);*/       /*方法一计算函数,整体25%-边框的4个像素*/
    width: 25%;
    height: 100px;
    background-color: aqua;
    float: left;
    text-align: center;
    line-height: 100px;
    text-decoration: none;
    color: antiquewhite;
    border: 1px solid #5B5758;

    box-sizing: border-box;         /*方法二:设置盒子的计算方式从边框开始算*/
}
</style>

</head>

<body>

<div class="box">
    <a href="#">菜单</a>
    <a href="#">菜单</a>
    <a href="#">菜单</a>
    <a href="#">菜单</a>
</div>

</body>
</html>

(4)响应式布局

式使用媒体查询方式,通过查询浏览器宽度,不同的宽度应用不同的样式块,每个样式块对应的是该宽度下的布局方式,从而实现响应式布局。响应式布局的页面可以适配多种终端屏幕(pc、平板、手机)

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>响应式布局</title>
<style type="text/css">

.box a{
    display: block;
    width: 23%;
    height: 100px;
    background-color: blueviolet;
    margin: 1%;
    float: left;
    text-align: center;
    text-decoration: none;
    line-height: 100px;

}
@media (max-width:800px){          /*当屏幕小于800px执行以下样式*/
    .box a{
        width: 46%;
        margin: 2%;
    }
}
@media (max-width:500px){          /*当屏幕小于500px执行以下样式*/
    .box a{
        width: 94%;
        margin: 3%;
    }
}
</style>

</head>

<body>

<div class="box">
    <a href="#">1.哈哈哈</a>
    <a href="#">2.哈哈哈</a>
    <a href="#">3.哈哈哈</a>
    <a href="#">4.哈哈哈</a>
</div>

</body>

</html>

原文地址:http://blog.51cto.com/13742773/2337203

时间: 2024-11-08 16:36:13

HTML5与CSS3视口-retina屏幕适配的相关文章

html5开发之viewport使用-屏幕适配

随着高端手机(Andriod,Iphone,Ipod,WinPhone等)的盛行,移动互联应用开发也越来越受到人们的重视,用html5开发移动应用是最好的选择.然而,每一款手机有不同的分辨率,不同屏幕大小,如何使我们开发出来的应用或页面大小能适合各种高端手机使用呢?学习html5 viewport的使用能帮你做到这一点-- viewport 语法介绍: 01 <!-- html document --> 02 <meta name="viewport" 03     

使用CSS3 Media Query技术适配Android平板屏幕分辨率和屏幕密度

使用HTML5开发移动应用时需要适配各种Android平板设备的分辨率和屏幕密度,过程实在很麻烦,最后的解决办法是使用css media query,同时匹配分辨率和屏幕密度,在每个设备上进行兼容性测试,最终保证在多数Android平板上都能较好的显示. 一个典型的针对设备的Css Media Query写法如下,可以保证页面高度充满屏幕,简单的设置height:100%是不行的. //SAMSUNG N5100, Nexus7 1, @media only screen and (min-de

【IOS 开发】IOS 开发 简介 (IOS项目文件 | MVC 模式 | 事件响应机制 | Storyboard 控制界面 | 代码控制界面 | Retina 屏幕图片适配)

一. IOS 项目简介 1. IOS 文件简介 创建一个 HelloWorld 项目, 在这个 IOS 项目中有四个目录 : 如下图; -- HelloWorldTests 目录 : 单元测试相关的类和资源; (1) HelloWorld 目录 HelloWorld 目录介绍 : -- 命名规则 : 该目录名称与 IOS 项目名称相同, 是主目录; -- 存放内容 : IOS 项目的 源码文件, 界面设计文件, 资源文件都存放在该目录下; -- 源文件 : Objective C 的 .m 和

移动端,多屏幕尺寸高清屏retina屏适配的解决方案

移动端高清.多屏适配方案 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们一个psd文件,称之为视觉稿. 对于移动端开发而言,为了做到页面高清的效果,视觉稿的规范往往会遵循以下两点: 首先,选取一款手机的屏幕宽高作为基准(以前是iphone4的320×480,现在更多的是iphone6的375×667). 对于retina屏幕(如: dpr=2),为了达到高清效果,视觉稿的画布大小会是基准的2倍,也就是说像素点个数是原来的4倍(对i

iOS视网膜(Retina)屏幕的适配方法

本文链接:http://www.penddy.com/mobile-client-knowledge-processing-1-ios-retinal-adaptation-of-the-retina-screen.html 在产品中良好的支持Retina屏幕. 一.支持视网膜(retina)屏幕的设备 设备 分辨率 屏幕尺寸 长宽比 解析度 iPod Touch 4 640×960 3.5" 3:2 326ppi iPhone 4 640×960 3.5" 3:2 326ppi iP

7种方法解决移动端Retina屏幕1px边框问题

在Reina(视网膜)屏幕的手机上,使用CSS设置的1px的边框实际会比视觉稿粗很多.在之前的项目中,UI告诉我说我们移动项目中的边框全部都变粗了,UI把他的设计稿跟我的屏幕截图跟我看,居然真的不一样.没有办法,只有在后面的版本中去修改了,但是要改的话,需要知道是为什么.所以查了很多资料,终于搞懂了这个问题,并且总结了几种方法. 造成边框变粗的原因 其实这个原因很简单,因为css中的1px并不等于移动设备的1px,这些由于不同的手机有不同的像素密度.在window对象中有一个devicePixe

CSS基础教程 -- 媒体查询屏幕适配

响应式布局 Media Query 的使用方法 在上例中, 我们使用Media Queries来根据3种不同尺寸的窗口使用3种不同的样式.通过不同的媒体类型和条件定义样式表规则,媒体查询让CSS可以更精确作用于不同的媒体类型和同一媒体的不同条件.媒体查询的大部分媒体特性都接受min和max用于表达"大于或等于"和"小与或等于".如:width会有min-width和max-width媒体查询可以被用在CSS中的@media和@import规则上,也可以被用在HTML

cocos2d-x屏幕适配原理分析

cocos2d-x作为著名的cocos2d游戏开发框架的C++实现者,最近一年发展迅猛.越来越多的app使用它实现快速多平台部署,从最初的ios,android,win32等到新近的html5,实现移动,客户端到浏览器全覆盖,不得了~~ 开发移动应用的屏幕适配和爱情一样是一个从洪荒时代就存在的永恒命题,根本目的是实现在不同设备上用户体验的统一. cocos2d-x在cocos2d-2.0-x-2.0.4版本之前没有提供解决的方案,开发者只能自己解决,其中一些方法见 这里从2.0-x-2.0.4开

image-set实现Retina屏幕下图片显示[转载]

最近一直在学习Retina屏幕下图片的处理方法,从<走向视网膜(Retina)的Web时代>一文中知道了Retina这个新名词,同时知道了他是什么东东,同时也继续在探讨Retina方面的知识点,随后在<移动Web——CSS为Retian屏幕替换图片>和<使用css sprites来优化你的网站在Retina屏幕下显示>中学习了Retina屏幕下图片的设置方法,或者说技巧吧,接下来<Web设计师如何制作Retina图像>学习了Retina屏幕下的图片制作技巧.