响应式网页设计(一)

响应式网页设计(一)


目录

  • 响应式网页设计(一)
    • 基本环境的建立
      • 响应式 最重要的 属性
      • 屏幕尺寸查询
    • 媒体查询 Media Query
      • 基本使用
      • 小练习
    • 浏览器 手机模拟
    • 常见的布局
      • 禁止显示 X 轴 法则
      • max-width 一个小设定 将网页设置成 流体布局
      • 单位 %
      • 三栏流体布局
      • 左侧 Float 固定, 右侧流体 布局E5%B1%80)
      • Float: none 清除浮动并排效果
      • 网站版型设定
      • 练习

基本环境的建立

响应式 最重要的 属性

<meta name="viewport" content="width=device-width, initial-scale=1.0,minimum-scale=1.0, maximum-scale=1.0, user-scalacle=no">
  • device-width 画面宽度
  • device-height 画面高度
  • initial-scale 初始缩放比
  • minimum-scale 最小可缩放比
  • maximum-scale 最大可缩放比
  • user-scalacle 用户是否可缩放

屏幕尺寸查询

PHONE OPERATING SYSTEM PHYS SIZE " PHYS SIZE CM W PX H PX DEVICE WIDTH PX PER INCH POPULARITY
Apple iPhone 7 iOS 4.7 11.5 750 1334 750 326 100
Apple iPhone 7+ iOS 5.5 14.0 1080 1920 1080 401 100
  • 因为 iPhone5 宽度 320px(大部分手机最小宽度), 所以移动端通常有做到 320px 的页面

媒体查询 Media Query

基本使用

/* PC 的样式 */
body {
  color: blue;
}

/* PAD 的样式 */
@media (max-width: 768px) {
  body {
    color: red;
  }
}

/* 手机 的样式 */
@media (max-width: 375) {
  body {
    color: yellow;
  }
}
  • 网页字体为蓝色
  • 当网页宽度小于 768px 时, 字体显示红色 (等于 宽度小于 768px 时生效 @media 里的 css 样式)
  • 当网页宽度小于 375px 时, 字体显示黄色
  • 利用 css 后面的代码 会覆盖 前面的代码 的特性, 从 PC 的页面开始写样式, 再逐级更改

小练习

  • 预设 背景颜色 为 红色
  • 平板(768px) 背景颜色 为 蓝色
  • 手机(375px) 背景颜色 为 绿色
body {
  background: red;
}

@media (max-width: 768px) {
  body {
    background: blue;
  }
}

@media (max-width: 375) {
  body {
    background: green;
  }
}

注意!!! 手机横向的时候 宽度为 600px+ 所以显示的背景颜色为 蓝色


v min-width 语法

/* 手机 的样式 */
body {
  color: blue;
}

/* PAD 的样式 */
@media (min-width: 375) {
  body {
    color: yellow;
  }
}

/* PC 的样式 */
@media (min-width: 768px) {
  body {
    color: red;
  }
}
  • 网页字体为蓝色
  • 当网页宽度大于 375px 时, 字体显示黄色 (等于 宽度大于 375px 时生效 @media 里的 css 样式)
  • 当网页宽度大于 768px 时, 字体显示红色
  • 利用 css 后面的代码 会覆盖 前面的代码 的特性, 从 手机 的页面开始写样式, 再逐级更改

本人常用 max-width 从 PC 网页开始写 (这个主要需求)


浏览器 手机模拟

  • PC 版 Chrome 打开开发者工具, 在左上角有一个 手机图标, 打开就可以启用 手机模拟
  • Safari

常见的布局

禁止显示 X 轴 法则

  • 用户体验极差, 试想在手机要左右滑的情况

max-width 一个小设定 将网页设置成 流体布局

.wrap {
  width: 600px;
}
  • 如果像上面一样把宽度写死, 当屏幕宽度小于 600px 时, 就会显示 X 轴滚动条
.wrap {
  max-width: 600px;
}
  • 使用 max-width 当屏幕宽度小于 600px 时, 就会自适应 屏幕宽度

  • 这样用的好处

    • PC 端 media 断点为 1200px, 平板 media 断点为 768px
    • 屏幕宽度在 1200px ~ 768px 时, 网页宽度就会自适应.

单位 %

  • 相对父元素的 百分比 显示
<div class="wrap">
  <div class="menu"></div>
  <div class="content"></div>
</div>
.wrap {
  max-width: 500px;
  margin: 0 auto;
  height: 200px;
  background: black;
}
.menu {
  width: 30%;
  height: 100px;
  background: orange;
  float: left;
}
.content {
  width: 70%;
  height: 100px;
  background: blue;
  float: left;
}
  • 当浏览器宽度小于 500px 时, .wrap 就会自适应

    %1.png

  • 不管怎么调整浏览器宽度, .menu 都会显示为 .wrap 的 30% 大小, .content 都会显示为 .wrap 的 70% 大小

    %2.png


三栏流体布局

<div class="wrap">
  <ul class="news">
    <li>
      <h2>大標題1</h2>
      <p class="news_content">文字内容</p>
    </li>
    <li>
      <h2>大標題2</h2>
      <p class="news_content">文字内容</p>
    </li>
    <li>
      <h2>大標題3</h2>
      <p class="news_content">文字内容</p>
    </li>
    <!-- 省略 -->
  </ul>
</div>
.wrap {
  max-width: 960px;
  padding-top: 20px;
  margin: 0 auto;
  line-height: 1.5;
}
.news h2 {
  color: #000000;
  padding: 0.3em 0;
  font-size: 20px;
}
.news li {
  width: 31.33333%;
  margin-right: 1%;
  margin-left: 1%;
  margin-bottom: 1em;
  float: left;
}
@media (max-width: 768px) {
  .news li {
    width: 48%;
  }
}
@media (max-width: 569px) {
  .news li {
    width: 98%;
  }
}
  • 电脑端 (屏幕宽度大于 768px)

    • li 宽度设置为 31%
    • li1.png
  • 平板端 (屏幕宽度小于 768px)

    • li 宽度设置为 48%
    • li2.png
  • 手机端 (屏幕宽度小于 569px)

    • li 宽度设置为 98%
    • li3.png

左侧 Float 固定, 右侧流体 布局

<div class="wrap">
  <div class="menu">
    <ul>
      <li>超便宜攝影機</li>
      <li>僅此一檔相機</li>
      <li>限時優惠冰箱</li>
    </ul>
  </div>
  <div class="content">
    文本内容
  </div>
</div>
.wrap {
  max-width: 800px;
  margin: 0 auto;
}
.menu {
  width: 200px;
  float: left;
  color: blue;
  padding-top: 10px;
}
.menu li {
  margin-bottom: 20px;
  color: #fff;
  background: #000;
}
.content {
  margin-left: 210px;
  background: orange;
  color: #fff;
}
  • fl1.png
  • fl2.png

Float: none 清除浮动并排效果

<div class="wrap">
  <div class="menu">
    <ul>
      <li>超便宜攝影機</li>
      <li>僅此一檔相機</li>
      <li>限時優惠冰箱</li>
    </ul>
  </div>
  <div class="content">
    文本内容
  </div>
</div>
.wrap {
  max-width: 800px;
  margin: 0 auto;
}
.menu {
  width: 200px;
  float: left;
  color: blue;
  padding-top: 10px;
  background: #000;
}
@media (max-width: 768px) {
  /* 清除浮动 并 满屏显示 */
  .menu {
    float: none;
    width: 100%;
  }
}
.menu li {
  margin-bottom: 20px;
  color: #fff;
}
.menu li a {
  color: #fff;
  text-decoration: none;
}
.content {
  margin-left: 210px;
  background: orange;
  color: #fff;
}
@media (max-width: 768px) {
  .content {
    margin-left: 0;
  }
}
  • fln1.png
  • fln2.png

网站版型设定

<div class="wrap">
  <div class="header">
    <h1 class="logo">
      <a href="#">公司LOGO</a>
    </h1>
    <ul class="menu">
      <li>
        <a href="#">公司簡介</a>
      </li>
      <li>
        <a href="#">專業服務</a>
      </li>
      <li>
        <a href="#">新聞與活動</a>
      </li>
      <li>
        <a href="#">活動花絮</a>
      </li>
      <li>
        <a href="#">聯繫我們</a>
      </li>
    </ul>
  </div>
  <div class="content">
    <h2>新聞標題</h2>
    <p>
      六角學院新聞 (2016-06-21 09:06)
    </p>
    <p>
      生藝本技得童總信。上能表有能已位字高企斷他?神些的司……特了又他的,了象大初小研車對加、間四比,想年訴選年:三車寫教。他成濟位像知他氣程表事。聽制起又雲師山,重不能界使我傷!溫統接視情期事……況無沒指超及世。
    </p>
    <p>
      列文一有愛的空金代電一前卻歡電個魚天讀狀各童流處開起那朋。他他定?一眼的樹父哥農原府之眾來長體然視像的民,廠有發當他的開人經環,費費們人物劇……了歷斯子的各好長,汽先動師還成給不國有一了了找以奇供用統蘭是影能用以張中準這一演的重前光接現會的際女完財到們紀,一要運看人!鄉定引手的反地整兒如著……聲去種交好民響於細學有請日樣遠視好院:大是會?一慢得以長一見新主神倒們大策命來高事。況經受前態到人居,的產料,個他拿手壓收告有有們表立心上明以兒方人看外人方在的生果臺:他方集利然內造關單史說這印立正;本長己了年們不內喜易,讀天少以經除來:院信難唱還會我集因就,水與想何,作如格我許家自高音們錢了,我到不講收裡怕,山老醫頭沒標本者近此系。
    </p>
  </div>
  <div class="sidebar">
    <img src="https://dummyimage.com/300x225/a1a1a1/fff" alt="">
    <img src="https://dummyimage.com/300x225/a1a1a1/fff" alt="">
    <img src="https://dummyimage.com/300x225/a1a1a1/fff" alt="">
  </div>
  <div class="footer">
    Copyright© 2016
  </div>
/* 设置 所有元素 的盒模型 */
*,
*:before,
*:after {
  box-sizing: border-box;
}
/* 设置图片 宽, 高 自适应 */
img {
  max-width: 100%;
  height: auto;
}
.wrap {
  max-width: 960px;
  margin: 0 auto;
}
.header {
  position: relative;
  height: 350px;
}
@media (max-width: 768px) {
  .header {
    height: auto;
  }
}
.logo {
  position: absolute;
  top: 30px;
  left: 0px;
}
.logo a {
  display: block;
  width: 250px;
  text-indent: -99999px;
  height: 250px;
  background: url(https://dummyimage.com/250x250/a1a1a1/fff);
}
@media (max-width: 768px) {
  .logo {
    position: relative;
    margin: 0 auto;
    width: 150px;
  }
  .logo a {
    display: block;
    width: 150px;
    height: 170px;
    background: url(https://dummyimage.com/150x150/a1a1a1/fff) no-repeat;
  }
}
.menu {
  float: right;
  margin: 30px 0 0 0;
}
.menu li {
  float: left;
  background: #3399ff;
  border-right: 1px solid #fff;
}
.menu li a {
  color: #fff;
  display: block;
  width: 100px;
  font-weight: bold;
  text-align: center;
  height: 30px;
  line-height: 30px;
  text-decoration: none;
}
@media (max-width: 768px) {
  .menu {
    float: none; /* 拿掉浮動 */
  }
  .menu li {
    width: 90%;
    float: none; /* float style */
    margin: 0 auto 10px auto;
    border-radius: 3px;
  }
  .menu li a {
    width: 100%;
    text-align: center;
  }
}
.content {
  float: left;
  width: 75%;
  border: 2px solid #000;
  padding: 10px;
}
.content h2 {
  font-weight: bold;
  font-size: 26px;
  padding: 30px 0 20px 0;
}
.content p {
  line-height: 1.8;
  letter-spacing: 1pt;
  padding: 0 0 30px 0;
}
.sidebar {
  float: right;
  width: 20%;
  border: 2px solid #000;
  padding: 5px;
  margin-left: 5%;
}
.sidebar img {
  margin: 0 0 10px 0;
}
@media (max-width: 768px) {
  .content,
  .sidebar {
    border: none;
    float: none; /* 去掉浮动 */
    width: 100%; /* 百分比显示宽度 */
    margin: 0;
  }
  .sidebar img {
    display: block;
    max-width: 90%;
    height: auto;
    margin-bottom: 10px;
  }
}
.footer {
  clear: both;
  padding: 1em 0;
  text-align: center;
}
  • w1.png
  • w1.png

相关阅读


练习

  • 练习规范

    • 先从 PC 开始再依序做到手机
    • PC 宽度为 1000px
    • 表头选单在 767px 后变成 2*2 选单列表
    • 课程列表在 1000px 以下时也能自适应, 767px 后变成单栏式排版
      • iPad 直式 - 768*1024
  • zy.png
  • 可使用占位图代替练习中的图片

    • 占位图
    • fb & twitter
      fb & twitter
    • HTML5
      HTML5
    • jQuery
      jQuery
    • Media
      Media
    • Logo
      Logo
  • 练习范例

    • css 千万别照着写, 因为代码超脏, 写出功能就好的代码, 以后估计也不会回头优化
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,907评论 6 506
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,987评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,298评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,586评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,633评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,488评论 1 302
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,275评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,176评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,619评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,819评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,932评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,655评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,265评论 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,871评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,994评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,095评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,884评论 2 354

推荐阅读更多精彩内容

  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    love2013阅读 2,314评论 0 11
  • 选择qi:是表达式 标签选择器 类选择器 属性选择器 继承属性: color,font,text-align,li...
    wzhiq896阅读 1,754评论 0 2
  • 名词解释: Web标准:WEB标准不是某一个标准,而是一系列标准的集合。网页主要由三部分组成:结构(Structu...
    wo_jzf阅读 1,351评论 0 1
  • 笔记参考自《响应式Web设计:HTML5和CSS3实践》,2013年出版内容说不上最新。如下是全书的章的目录:第 ...
    于晓鱼阅读 926评论 0 1
  • 1.MongoDB数据库:属于非关系型数据库(NoSQL) MongoDB官网:https://www.mongo...
    橄榄的世界阅读 583评论 0 51