HTML5中国

 找回密码
 立即注册

QQ登录

只需一步,快速开始

HTML5中国 首页 教程视频 HTML5教程 查看内容

《实用技巧》—让你的网站变成响应式的3个简单步骤

2014-7-9 17:04| 发布者: html5cn| 查看: 22903| 评论: 3|原作者: mo-ming

摘要: 如今,一个网站只在桌面屏幕上好看是远远不够的,同时也要在平板电脑和智能手机中能够良好呈现。响应式的网站是指它能够适应客户端的屏幕尺寸,自动响应客户端尺寸变化。 ...
       如今,一个网站只在桌面屏幕上好看是远远不够的,同时也要在平板电脑和智能手机中能够良好呈现。响应式的网站是指它能够适应客户端的屏幕尺寸,自动响应客户端尺寸变化。在这篇文章中,我将向您展示如何通过3个简单的步骤轻松地使网站变成响应式(Responsive)。

1 – 布局

  当创建一个响应式网站,或让现有的网站变成响应式的,首先要关注的元素的布局。我在建立响应式的网站,总是先创建一个非响应的布局,页面宽度固定大小。如果非响应版本完成得非常不错,我再添加媒体查询(Media Queries)和响应式代码。这种操作方式更容易实现响应式特性,在同一时间专注于一个任务。
  当你已经完成了无响应的网站,做的第一件事是在你的 HTML 页面,粘贴下面的代码到<head>和</head>标签之间。这将设置屏幕按1:1的尺寸显示,在 iPhone 和其他智能手机的浏览器提供网站全视图浏览,并禁止用户缩放页面。
  1. <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">

  2. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">

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

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

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

   由于智能手机的屏幕尺寸小,我决定给 #primary 设置100%的宽度,#secondary 也设置100%的宽度,他将在 #primary 下面。 正如我已经说过的,你可能必须要对这段代码位进行修改才能适应您的网站的具体需求。
  1. /* Tablet Landscape */

  2. @media screen and (max-width: 1060px) {

  3.     #primary { width:67%; }

  4.     #secondary { width:30%; margin-left:3%;}  

  5. }



  6. /* Tabled Portrait */

  7. @media screen and (max-width: 768px) {

  8.     #primary { width:100%; }

  9.     #secondary { width:100%; margin:0; border:none; }

  10. }
复制代码
 
      完成以后,让我们看看你的布局是如何响应的。要做到这一点,我用这 Matt Kersley 创建的一款非常的响应式测试工具

2 、媒体

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

  1. img { max-width: 100%; }
复制代码
 
      虽然上述技术是有效的,有时你可能需要有更多的图像控制权,例如根据客户端的显示大小,显示不同的图像。

  这是由 Nicolas Gallagher 发明的好方法。让我们看看 HTML:

  1. <img src="image.jpg" data-src-600px="image-600px.jpg" data-src-800px="image-800px.jpg" alt="">
复制代码

        正如你可以看到,我们使用 data-* 属性来存储替换图像的 URL。现在,让我们使用强大的 CSS3 来为匹配 min-device-width 条件的媒体指定替换图像:
  1. @media (min-device-width:600px) {

  2.     img[data-src-600px] {

  3.         content: attr(data-src-600px, url);

  4.     }

  5. }



  6. @media (min-device-width:800px) {

  7.     img[data-src-800px] {

  8.         content: attr(data-src-800px, url);

  9.     }

  10. }
复制代码

       令人印象深刻,是不是?现在,让我们来看看另一个在今天的网站中非常重要的媒体——视频。由于大多数网站使用的视频来自第三方网站,我决定把重点放在 Nick La 的弹性视频技术,这种技术可让您嵌入的响应式的视频。


HTML:
  1. <div class="video-container">

  2.     <iframe src="http://player.vimeo.com/video/6284199?title=0&byline=0&portrait=0" width="800" height="450" frameborder="0"></iframe>

  3. </div>
复制代码

CSS:

  1. .video-container {

  2.     position: relative;

  3.     padding-bottom: 56.25%;

  4.     padding-top: 30px;

  5.     height: 0;

  6.     overflow: hidden;

  7. }



  8. .video-container iframe,  

  9. .video-container object,  

  10. .video-container embed {

  11.     position: absolute;

  12.     top: 0;

  13.     left: 0;

  14.     width: 100%;

  15.     height: 100%;

  16. }
复制代码

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


3 – 字体

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

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

   rem 是相对于 HTML 元素的,不要忘了重置 HTML 的字体大小:
  1. html { font-size:100%; }
复制代码

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

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

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

  3. @media (min-width:1100px) { body {font-size:1.5rem;} }
复制代码

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


  这就是今天的所有内容了,希望你会喜欢这个教程!

更多
18

鲜花

握手

雷人

路过

鸡蛋

刚表态过的朋友 (18 人)

相关阅读

发表评论

最新评论

引用 追风。 2014-10-30 12:01
好教程,,,,,,,,,,,,,,,,,,
引用 rpgforever 2014-11-1 14:24
感谢分享。
引用 csboyty 2014-11-14 09:25
第二个和第三个比较实用

查看全部评论(3)

HTML5中国微信

小黑屋|关于我们|HTML5论坛|友情链接|手机版|HTML5中国 ( 京ICP备11006447号 京公网安备:11010802018489号  

GMT+8, 2017-6-25 11:25

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

返回顶部