响应式Web设计技巧以及入门技巧

html5和css3流行至今,我在做响应式的网站一直是在“尝试”的阶段。并没有深入的去研究和学习,浅显的理解就是根据屏幕分辨率的大小,网站布局、图片、文字大小等相应改变。以后使用平板、手机浏览网站的用户会越来越多,对于前端设计师,学好用html5、css3做响应式网站是势在必行。

响应式网页设计这个术语,由伊桑马克特提出,他在Alist Apart 发表了一篇开创性的文章,将三种已有的开发技巧(弹性网格布局、弹性图片、媒体和媒体查询)整合起来,并命名为响应式网页布局。还有一些其他叫法,如流式设计、弹性布局、塑料布局、流体设计、自适应布局、跨设备设计以及弹性设计。

以往我们显示针对桌面电脑来进行宽度设计,然后将其缩小并针对小屏幕进行内容重排;现在我们应该首先针对小屏幕进行设计,然后逐步增强针对大屏幕的设计和内容。

三个简单步骤,让你的网站变成响应式网站

ios和Android浏览器都基于Webkit核心。这两种浏览器以及很多其他浏览器如chrome、opera,都支持用viewport meta元素覆盖默认的画布缩放设置,只需要在html的标签中插入一个标签。标签中可以设置具体的宽度或者缩放比例。

示例:

<meta name="viewport" content="width=device-width,initial-scale=2,maximum-scale=3,user-scalable=no">

分析:

width=device-width告诉浏览器页面的宽度应该等于设备宽度;initial-scale=2页面的缩放比例,设置比例为设备尺寸的2倍;maximum-scale=3,允许用户将页面最多放大至设备宽度的3倍;user-scalable=no禁止用户缩放。缩放是一个重要的辅助功能,所以实践中很少禁用。

  1. 粘贴下面的代码到和标签之间:
<meta name="viewport" content="width=device-width,initial-scale=1.0">

设置比例为1.0这表示浏览器将按照其视口的实际大小来渲染页面

  1. 针对不同视口宽度修正设计

设置viewport meta 标签后,现在我们针对不同视口修正设计效果,创建CSS样式表,并在页面中调用:

常见媒体查询

/* 平板电脑布局: 481px 至 768px。样式继承自: 移动设备布局。 */

@media only screen and (min-width: 481px) {

.class{

    background: #333;

}

}

/* 桌面电脑布局: 769px 至最高 1232px。样式继承自: 移动设备布局和平板电脑布局。 */

@media only screen and (min-width: 769px) {

 .class {

    background: #666;

}

}

  1. 字体、弹性图片、视频

对于响应式网站来说应该有响应式的字体,一个响应式的字体大小应关联它的父容器的宽度,这样它才可以适应客户端的屏幕。

CSS3 规范引入了一个新的单位叫 rem,和 em 类相似,但相对于 HTML 元素来说, rem 更易于使用。

rem 是相对于 HTML 元素的,不要忘了重置 HTML 的字体大小:

html { font-size:100%; }

完成后,您可以定义响应式的字体大小,如下所示:

@media (min-width: 640px) { body {font-size:1rem;} } 

@media (min-width:960px) { body {font-size:1.2rem;} } 

@media (min-width:1100px) { body {font-size:1.5rem;} }

请注意,旧浏览器不支持 rem 单元,所以不要忘了实现一个替代。

弹性图片

我们需要为图片设置max-width:100%和height:auto,来实现其弹性化。对于IE,仍然需要一点额外的工作:

img {

    max-width: 100%;

    height: auto;

    width: auto\9; /* ie8 */

}

弹性内嵌视频

同样的,对于视频,我们也需要做max-width: 100%的设置;但是Safari对embed的该属性支持不是很给力,所以我们以width: 100%来代替:

.video embed,

.video object,

.video iframe {

    width: 100%;

    height: auto;

}

PS:觉得不错记得转发哟!

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏向治洪

react-native-android之初次相识

作为一名Android开发者,我的感觉就是,一步一卡,卡的潇洒。 但是我还是要学react-native,不要问我为什么,因为我相信一门解决了原生app,开...

1826
来自专栏阮一峰的网络日志

最佳网页宽度及其实现

以minifun.cn为例,根据Google Analytics的统计,半年多以来,访问者的屏幕分辨率一共有81种。最小的分辨率是122x160,这应该是手机;...

1053
来自专栏HTML5学堂

DIV+CSS布局和TABLE布局的优缺点

HTML5学堂:TABLE布局是早以前CSS不存在的时候兴起的,是对TABLE标签的不正规使用,Table标签就是表格,是用来显示数据的,而不是用来布局网页的,...

3329
来自专栏Guangdong Qi

iOS 图标图像 (官方翻译版)

2084
来自专栏编程

《小白HTML5成长之路35》再做一个顶部的提示信息

最近天气干燥,小白和老朱都感冒了,虽然状态不好,小白还是没有停止HTML5前进的脚步,他憋了一股劲一定要在2018年到来之前提高一个台阶。看到老朱来到办公室,小...

2049
来自专栏WOLFRAM

把图像结合到画图当中

1383
来自专栏老马寒门IT

04-移动端开发教程-在线字体

在IE4开始微软就已经开始支持在线字体,不过没有流行起来,直到CSS3新增加了font-face模块,正式纳入了web开发的标准。也渐渐流行起来而且发掘了很多其...

8816
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native 学习资源精选仓库

React Native Awesome汇集了各类react-native学习资料、工具、组件、开源App、资源下载、以及相关新闻等,只求精不求全。 如果你是...

4767
来自专栏Java技术分享圈

杨老师课堂之网页制作HTML的学习入门-含有案例

l HTML的标记通常是由开始标签和结束标签组成:<b>内容</b> <br/>

1162
来自专栏贾鹏辉的技术专栏@CrazyCodeBoy

React Native 开发适配心得

众所周知用React Native是可以开发跨平台的Android和iOS App。我们可以用React Native开发Android应用也可以开发iOS应用...

3505

扫码关注云+社区