2018-06-07 初识移动端(响应式)

前言:今天初次了解了移动端的一些常识,包括PC端和移动端的区别,媒体查询等的相关操作,以及国内的网站如何实现不同的端展示不同的样式。


1、媒体查询(附带MDN解释)

一个媒体查询由一个可选的媒体类型和零个或多个使用媒体功能的限制了样式表范围的表达式组成,例如宽度、高度和颜色。媒体查询,添加自CSS3,允许内容的呈现针对一个特定范围的输出设备而进行裁剪,而不必改变内容本身。

  • 例1:(通过不同的媒体查询使不同的CSS文件生效,即css文件一定会被下载,媒体查询仅可以控制其是否生效,下面的例子是指宽度为0-800px之间时生效)
<!-- link元素中的CSS媒体查询 -->
<link rel="stylesheet" media="(max-width: 800px)" href="example.css" />
  • 例2:(通过不同的媒体查询使不同的CSS样式生效,下面的例子是指宽度在0-600px之间时样式生效)
<!-- 样式表中的CSS媒体查询 -->
<style>
@media (max-width: 600px) {
  .facet_sidebar {
    display: none;
  }
}
</style>
  • :通过类似例2的方式设置样式时,可能需要这样的效果:浏览器宽度0-320px、321px-375px、376px-425px、426px以上,这四个宽度区间不同的样式,那么该如何设置呢?
    首先,如果按顺序@media (max-width: 320px)@media (max-width: 375px)@media (max-width:425px)@media (min-width: 426px)这么写的化,会出现一个现象,即所有宽度的样式都是376px-426px状态下的样式,这是因为后出现的@media (max-width:425px)包含的是0-425px的情形,所以覆盖了前面的样式设置。
    所以目前有两种写法,(1)倒着写,即先写宽度426px以上的,然后写376px-425px之间的,以此类推;(2)用and连接确定区间的两个端点,如@media (min-width: 376px) and (max-width:425px)

  • 媒体查询需要注意的地方

  1. 如果页面需要做移动端和pc端两套样式,建议Mobile First,即移动端优先
  2. 手机端的媒体查询,一般采用@media ( max-width:450px; ),即最大宽度为450px左右。

2、关于 meta viewport

在移动端做网页,还需要添加这么一行代码:
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

这是由历史原因的:
由于刚开始智能手机还没有出现,所有的网站都是只给PC端来看的,手机基本无法看到网页。后来诺基亚大火(此时仍然没有智能手机的出现),诺基亚用户想要比较优雅的看网页,所以很多网站为此专门做了一套“ wap ”页面,“ wap ”页面语与HTML法类似,但并非HTML。
直到iPhone 3GS 的出现,智能手机开始逐渐进入人们的视线,当时的iPhone 3GS 屏幕宽只有320px,而那时的网站一般都在九百多像素,为了在智能手机上展示网页,当时苹果的做法是:把所有的网站都缩小,然后可以两个手指拖动来放大页面,而这么做的缩放比例是什么呢?就是用320px宽的屏幕模拟980px宽的网页(980px这个值是通过市场调研所得,这是不成文的规定),所以虽然手机的分辨率宽度只有三百多像素,但是通过document.documentElement.clientWidth来获取网页宽度,一定得到的是980px。
而如今我们的智能手机发展迅速,基本所有网站都会专门为移动端设计样式,而手机默认会缩小我们的网站,为了阻止网页的自动缩放,所以有了这句代码:
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">

然后来解释一下这段代码的意思:
name="viewport" 记住viewport是视口的意思就好啦
width=device-width 宽度=设备宽度,此时获取页面宽度,设备宽就是页面宽
user-scalable=no 禁止用户缩放
initial-scale=1.0 初始缩放倍数 1.0
maximum-scale=1.0 最大缩放倍数 1.0
minimum-scale=1.0 最小缩放倍数 1.0

3、学会隐藏元素

移动端设计中,很重要的一条就是要学会隐藏元素,例如这个网站 https://www.smashingmagazine.com/,就是根据网页宽度来响应式不同的样式。以该网站的导航栏为例,它根据页面宽度大致三有种不同的样式

  • 宽度较大时,它的导航栏是这样的,左边有logo,中间是导航栏的各种按钮,右边是可以点击的Topics按钮:


    完整的导航栏
  • 宽度逐渐缩小,导航栏中间按钮下边的小字消失了:


  • 宽度继续缩小,出现最后一种样式,导航栏中间的按钮消失,而右边原来的Topics按钮,现在变为Menu按钮:



    而Menu点击后才出现链接:


    点击Menu按钮后的样式

做出上述效果,最主要的就是在不同的宽度时,让该出现的元素出现,不该出现的元素隐藏起来

4、移动端与PC端设计的一些区别

  • 没有 hover 效果(因此尽量少的使用CSS中的hover可以在从PC端改到移动端开发时更少的修改代码,相反的,如果hover在开发时使用的过多,到移动端时网页样式多半就废了)
  • 有 touch 事件 移动端是可以触摸的,所以需要使用touch触摸监听
  • 没有 resize 即在移动端,浏览器的宽高是无法更改的,其宽高就等于设备的宽高。
  • 没有滚动条 横向纵向都没有滚动条,超出屏幕的内容通过滑动屏幕来观看
  • 移动端需要设置滑动事件 但是原生JS是没有滑动事件的,不过包括jquery、Vue等框架都封装的有swipe事件可以实现滑动效果

5、国内大多数网站的设计思路

在国内,如果网页需要在不同的设备拥有不同的样式,他们很少像第二条中展示的smashingmagazine网站一样做响应式,大体上有以下两种思路:

  • 不同的端跳转到不同的域名,比如淘宝京东,他们的PC端会跳转到www.taobao.com域名(或www.jd.com),而移动端会跳转到h5.m.taobao.com(或m.jd.com/
  • 不同的端通过识别user Agent,来渲染不同的CSS样式,如知乎
  • 另外,由于如今智能设备发展迅猛,如果一个页面要有多端显示样式的话,建议“mobile-first”,即优先完成移动端的样式,然后再做PC端。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,308评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,741评论 0 2
  • 笔记参考自《响应式Web设计:HTML5和CSS3实践》,2013年出版内容说不上最新。如下是全书的章的目录:第 ...
    于晓鱼阅读 924评论 0 1
  • CSS参考手册 一、初识CSS3 1.1 CSS是什么 CSS3在CSS2.1的基础上增加了很多强大的新功能。目前...
    没汁帅阅读 3,568评论 1 13
  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92