博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
《实用技巧》——让你的网站变成响应式的3个简单步骤
阅读量:6145 次
发布时间:2019-06-21

本文共 3270 字,大约阅读时间需要 10 分钟。

1 – 布局

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

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

 

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

 

1
2
3
4
5
6
7
8
9
10
11
/* 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 – 媒体

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

 

1
img { 
max-width
100%
; }

 

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

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

 

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

  

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

 

1
2
3
4
5
6
7
8
9
10
11
@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:

1
2
3
<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:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.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的,但是对于响应式网站来说应该有响应式的字体。事实上,一个响应式的字体大小应关联它的父容器的宽度,这样它才可以适应客户端的屏幕。

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

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

 

1
html { 
font-size
:
100%
; }

  

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

 

1
2
3
@media (
min-width
640px
) { body {
font-size
:
1
rem;} }
@media (
min-width
:
960px
) { body {
font-size
:
1.2
rem;} }
@media (
min-width
:
1100px
) { body {
font-size
:
1.5
rem;} }

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

转载于:https://www.cnblogs.com/chenshanhe/p/7205447.html

你可能感兴趣的文章
【设计模式系列】单例模式的7种写法
查看>>
汉字转拼音 (转)
查看>>
Machine Learning Techniques -6-Support Vector Regression
查看>>
会计基础_001
查看>>
ajax请求拿到多条数据拼接显示在页面中
查看>>
小程序: 查看正在写的页面
查看>>
Jenkins持续集成环境部署
查看>>
检查磁盘利用率并且定期发送告警邮件
查看>>
MWeb 1.4 新功能介绍二:静态博客功能增强
查看>>
摄像机与绕任意轴旋转
查看>>
rsync 服务器配置过程
查看>>
预处理、const与sizeof相关面试题
查看>>
爬虫豆瓣top250项目-开发文档
查看>>
Elasticsearch增删改查
查看>>
oracle归档日志增长过快处理方法
查看>>
有趣的数学书籍
查看>>
teamviewer 卸载干净
查看>>
多线程设计模式
查看>>
解读自定义UICollectionViewLayout--感动了我自己
查看>>
SqlServer作业指定目标服务器
查看>>