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

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

您可能感兴趣的相关文章
  • 2012年排名前20位的 CSS 网站作品
  • 25佳优秀的流体和响应式布局网页设计
  • 2012年最佳 Web 前端开发工具和框架
  • 25个国外优秀的电子商务网站设计案例
  • 85个很优秀的响应式网页设计作品范例

 

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 下面。 正如我已经说过的,你可能必须要对这段代码位进行修改才能适应您的网站的具体需求。

 

/* Tablet Landscape */
@media screen and (max-width: 1060px) {#primary { width:67%; }#secondary { width:30%; margin-left:3%;}  
}/* Tabled Portrait */
@media screen and (max-width: 768px) {#primary { width:100%; }#secondary { width:100%; margin:0; border:none; }
}

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

 

2 – 媒体

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

 

img { max-width: 100%; }

 

  虽然上述技术是有效的,有时你可能需要有更多的图像控制权,例如根据客户端的显示大小,显示不同的图像。

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

 

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

  

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

  HTML:

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

  

  CSS:

.video-container {position: relative;padding-bottom: 56.25%;padding-top: 30px;height: 0;overflow: hidden;
}.video-container iframe,  
.video-container object,  
.video-container embed {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;} } 

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

  这就是今天的所有内容了,希望你会喜欢这个教程!记得推荐和分享啊!

 

您可能感兴趣的相关文章

  • 带给你灵感的20个漂亮的单页网站作品
  • 20个非常经典的国外单页网站作品示例
  • 分享35个非常漂亮的单页网站设计案例
  • 25个优秀的国外单页网站设计作品欣赏
  • 分享最新30个漂亮的单页网站设计案例

 

原文链接:Making a website responsive in 3 easy steps

编译来源:梦想天空 ◆ 关注前端开发技术 ◆ 分享网页设计资源

转载于:https://www.cnblogs.com/lhb25/archive/2013/03/06/making-a-website-responsive-in-3-easy-steps.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/409076.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hiveserver2 mysql_HiveServer2的配置使用

HiveServer2的配置和使用 hive-site.xml配置 hiveserver2的配置 property name hive.support.concurrency / name description Enable Hives TableLock Manager Service / description value true / value / property property name hive.zookeeper.quorum /HiveServer2的配置和…

[机器学习笔记]Note7--神经网络:学习

继续是机器学习课程的笔记&#xff0c;这节课会继续介绍神经网络的内容&#xff0c;上一节主要是基本的介绍&#xff0c;以及模型表示&#xff0c;而本节会介绍代价函数&#xff0c;反向传播算法等。 神经网络代价函数 首先是有如下一个神经网络&#xff0c;这里将首先介绍一些…

spark插件剔除步骤

spark插件删除步骤当需要删除插件时&#xff0c;1.删除在../target/build/pulgins/**.jar&#xff0c;2.在运行../targer/build/bin/start.bat时&#xff0c;该start.bat文件默认&#xff0c;在C:\Documents and Settings\gty\&#xff08;gty电脑用户名&#xff09;下创建spar…

java json 修改字段_JSON文件-Java:编辑/更新字段值

我的工作流程中有一些JSONObject&#xff0c;并且通过将它们写入json文件来存储相同的JSONObject。我想要一种有效的方式来更新json文件&#xff0c; 仅 更新 需要的字段&#xff0c; 以及更新的JSONObjects实例的内容。例如&#xff1a;档案中我有ObjectOnFile {key1:val1, k…

[机器学习笔记]Note8--机器学习应用建议

继续是机器学习课程的笔记&#xff0c;本节课的内容主要是一些机器学习应用的建议&#xff0c;包括对假设的评估&#xff0c;如何处理过拟合和欠拟合等。 觉得下一步做什么 到目前为止&#xff0c;我们已经学习了线性回归&#xff0c;逻辑回归以及神经网络&#xff0c;梯度下…

Unity3d 手机屏幕自动适配

现在&#xff0c;市场上的手机分辨率多样化。带给开放人员一个很大的“跨界问题”。本人&#xff0c;昨晚突发奇想。手机分辨率多样化&#xff0c;但手机开放人员&#xff0c;制作UI时&#xff0c;最为重要的两个因素就是Position(位置)、Scale(大小)&#xff1b; 我引入一个“…

[机器学习笔记]Note9--机器学习系统设计

继续是机器学习课程的笔记&#xff0c;本节课的内容主要是介绍如何设计一个机器学习系统。 首先要做什么 这节课将介绍如何设计一个机器学习系统&#xff0c;首先是以设计一个垃圾邮件分类器算法作为例子。 为了解决这个问题&#xff0c;首先要决定的是如何选择并表达特征向…

java 图片阴影_Java 为 PPT 中的图形添加阴影效果

在PowerPoint文档中&#xff0c;给图形添加阴影效果能增强图形的立体感&#xff0c;使其贴近现实效果&#xff0c;提升文档的美观度。 本文将展示如何使用Free Spire.Presentation for Java为PPT中的图形添加阴影效果。除了文中展示的预设阴影效果&#xff0c;还可以添加内部阴…

nyoj 21 三个水杯 BFS

三个水杯 时间限制&#xff1a;1000 ms | 内存限制&#xff1a;65535 KB难度&#xff1a;4描述给出三个水杯&#xff0c;大小不一&#xff0c;并且只有最大的水杯的水是装满的&#xff0c;其余两个为空杯子。三个水杯之间相互倒水&#xff0c;并且水杯没有标识&#xff0c;只…

论文阅读(1)--Fine-grained Image Classification by Exploring Bipartite-Graph Labels

这是阅读《Fine-grained Image Classification by Exploring Bipartite-Graph Labels》这篇论文所做的笔记。 这篇论文是来自NEC实验室&#xff0c;是一篇有关细粒度分类/精细分类方面的论文。 0. 摘要 首先提出一个问题&#xff0c;给定一张食物的图片&#xff0c;对于一个…

java常用jar_常用jar包含义

常用jar包含义activation.jar:与javaMail有关的jar包&#xff0c;使用JavaMail时应与mail.jar一起加入到lib中去&#xff0c;具体负责mail的数据源和类型等ajaxtags-1.2-beta3.jar:ajax提供的标签库&#xff0c;使用户能像使用jsp普通标签一样使用ajaxant.jar和antlr.jar(可以删…

LS 24 Bracket sequence(DP)

Bracket sequence Given string s made up with (, ), ?, count the way to substitude ? with ( or ) to form regular bracket sequence. Input A string s. (1≤|s|≤1000) Ouptut An integer denotes the number of ways modulo (1097). Sample input ???? Sample ou…

java注释和注解_深入理解JAVA注解(Annotation)以及自定义注解

Java 注解(Annotation)又称 Java 标注&#xff0c;是 JDK5.0 引入的一种注释机制。Java 语言中的类、方法、变量、参数和包等都可以被标注。注解可以看作是一种特殊的标记&#xff0c;在程序在编译或者运行时可以检测到这些标记而进行一些特殊的处理。本文对 Annotation 进行了…

[机器学习笔记]Note10--支持向量机(SVM)

继续是机器学习课程的笔记&#xff0c;这节课的内容是介绍支持向量机&#xff08;SVM&#xff09;的内容。SVM是一个非常强大且流行的算法&#xff0c;在一些情况下&#xff0c;面对一些复杂的非线性问题可以提供比逻辑回归或神经网络更加简洁更加有效的结果。 优化目标 首先…