响应式三步曲

来源:互联网 发布:淘宝为什么得2张银行卡 编辑:程序博客网 时间:2024/05/19 00:56

1 – 布局

  当创建一个响应式网站,或让现有的网站变成响应式的,首先要关注的元素的布局。刚接触响应式的朋友,应该在建立响应式的网站之前,先创建一个非响应的布局,页面宽度固定大小。如果非响应版本完成得非常不错,再来添加媒体查询(Media Queries)和响应式代码。这种操作方式更容易实现响应式特性,在同一时间专注于一个任务。

  在已经完成无响应的网站之后,做的第一件事是在HTML 页面,粘贴下面的代码到<head>和</head>标签之间。这将设置屏幕按1:1的尺寸显示,在 iPhone 和其他智能手机的浏览器提供网站全视图浏览,并禁止用户缩放页面。

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no"><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><meta name="HandheldFriendly" content="true">

        现在是时候添加一些媒体查询了。根据 W3C 网站,媒体查询由媒体类型和零个或多个媒体查询的条件表达式组成。通过使用媒体查询,外观呈现可以针对特定范围内的输出设备,而不需要改变内容本身。换句话说,媒体查询让网站在各种各种显示器上看起来都很好,从小的智能手机到大的电脑屏幕等等。

        媒体查询取决于你的网站布局,所以提供一个现成可以使用的代码片段有点困难。但是,下面的代码对于大多数网站都是一个很好的起点。在这个例子中,#primary 是主要内容区域,#secondary 是侧栏。

        从代码中可以看到,这里定义了两种规格:首先有一个最大宽度为1060px,为平板电脑优化的横向显示。#primary 占在其父容器宽度的67%,#senondary 占30%,再加上3%的左外边距。 第二个规格是用于平板电脑和更小的屏幕尺寸。

       由于智能手机的屏幕尺寸小,所以给 #primary 设置100%的宽度,#secondary 也设置100%的宽度,它将在 #primary 下面。 正常的项目开发过程中,必须要对这段代码进行修改才能适应实机网站项目的具体需求。

/* 宽度低于1060px */@media screen and (max-width: 1060px) {    #primary { width:67%; }    #secondary { width:30%; margin-left:3%;} } /* 宽度高于768px */@media screen and (min-width: 768px) {    #primary { width:100%; }    #secondary { width:100%; margin:0; border:none; }}

       这样就限制出了设备宽度像素在768 - 1060px之间时执行的样式。


2 – 媒体

        一个响应式的布局是实现响应网站的第一步。现在,让我们把注意力集中在另外一个现代化网站非常重要的方面:媒体,如视频或图像。 下面的 CSS 代码将确保图像将永远不会大于他们的父容器,代码非常简单,适用于大多数网站。但是需要注意,IE6 等旧的浏览器不支持 max-width 指令。

img { max-width: 100%; }

        现在我们来让这个图片根据客户端的显示大小,显示不同的图像。

<img src="image.jpg" data-src-600px="image-600px.jpg" data-src-800px="image-800px.jpg" alt="">

        可以看到,我们使用 data-* 属性来存储替换图像的 URL。现在,让我们使用强大的 CSS3 来为匹配 min-device-width 条件的媒体指定替换图像:

@media (min-device-width:600px) {    img[data-src-600px] {        content: attr(data-src-600px, url);    }} @media (min-device-width:800px) {    img[data-src-800px] {        content: attr(data-src-800px, url);    }}

        网络媒体出了图片还有很多别的形式。现在,让我们来看看另一个在今天的网站中非常重要的媒体——视频。由于大多数网站使用的视频来自第三方网站,我们就一起来看看弹性视频技术,这种技术可嵌入的响应式的视频。

HTML:

<div class="video-container">     <video src="http://bos.lego.baidu.com/converted-video/272053c9-b49f-4150-b40b-5d9bc28125c9.mp4"></video></div>

CSS:

.video-container {    position: relative;    overflow: hidden;    margin: auto;} .video-container video {    position: absolute;    top: 0;    left: 0;    width: 100%;    height: 100%;}

在你的网站上应用了这些代码后,嵌入的视频也是响应式(Responsive)的了。


3 – 字体

        最后一步绝对非常重要,但往往被网站开发人员忽视——字体。到现在为止,大多数开发人员还是使用像素来定义字体的大小。虽然像素在普通网站使用是OK的,但是对于响应式网站来说应该有响应式的字体。事实上,一个响应式的字体大小应关联它的父容器的宽度,这样它才能够适应客户端的屏幕。

        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;} }

根据上面的三步,我们就完成了一个响应式网站的基本布局,剩下的东西就靠自己动脑动手来发挥创意和想象了。

响应式技术,为前端创造一个web世界提供了一个完美的媒介。

3 0
原创粉丝点击