千锋教育-做有情怀、有良心、有品质的IT职业教育机构

400-811-9990
当前位置:首页 > 行业动态  >  正文

HTML5知识:响应式页面布局

时间:2017-11-24 13:14:26     来源:千锋教育 作者:千锋

   随着互联网时代的发展,我们对网页布局有了新的要求,大气,美观,能够在不同的设备上呈现令人焕然一新的效果。此时,一个全新的概念—响应式布局应运而生。它的诞生为我们的移动端布局带来了很大的便利。因此学习响应式页面布局势在必行!

  一、响应式页面布局的概念

  响应式布局是Ethan Marcotte在2010年5月份提出的一个概念,简而言之,就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览器而诞生的。

  二、响应式布局的优势

  响应式布局可以为不同终端的用户提供加舒适的界面和好的用户体验,而且随着目前大屏幕移动设备的普及,用“大势所趋”来形容也不为过。随着越来越多的设计师采用这个技术,我们不仅看到很多的创新,还看到了一些成形的模式。

  三、响应式布局网站案例(如下图所示):

图片2.jpg

图片3.jpg

  核心知识点

  v 弹性盒模型

  v 媒体查询

  四、弹性盒模型

  弹性盒布局模型是css3规范中提出的一种新的布局方式。

  目的:提供一种加的方式来对容器中的条目进行布局、对齐和分配空间

  优势:这种布局模式已被主流浏览器所支持,可以在web应用开发中使用。

图片4.jpg

  说明:

  1.flex是display的一个属性值。

  2.设置了display:flex属性的元素,称为Flex容器,他里面的所有子元素统称为容器成员,称为Flex项目。后面我们就使用Flex容器和 Flex项目来进行介绍。 Flex容器有两根坐标轴:主轴(main axis)和交叉轴(cross axis)。

  Flex容器属性

图片5.jpg

  l flex-direction: row | row-reverse | column | column-reverse;

图片6.jpg

  flex-direction:row;

  图片7.jpg

  flex-direction:row-reverse;

  图片8.jpg

  flex-direction:column;                                              flex-direction:column-reverse;

  图片9.jpg                                                 图片10.jpg

  ljustify-content 定义了Flex项目在主轴方向上的对齐方式

  图片11.jpg

  justify-content:flex-start;

  图片12.jpg

  justify-content:flex-end;

  图片13.jpg

  justify-content:flex-center;

  图片14.jpg

  justify-content:space-between;

  图片15.jpg

  justify-content:space-around;

  图片16.jpg

  l align-items:flex-start | flex-end | center | baseline | stretch;

  定义项目在交叉轴上的对齐方式(适用于父类容器【弹性盒子】元素上)

  图片17.jpg

  align-items:flex-start;

  图片18.jpg

  align-items:flex-end;

  图片19.jpg

  align-items:center;

  图片20.jpg

  align-items:baseline;

  图片21.jpg

  align-items:stretch;

  图片22.jpg

  五、媒体查询

  1.什么是媒体查询

  使用 @media 查询,你可以针对不同的媒体类型定义不同的样式。

  @media 可以针对不同的屏幕尺寸设置不同的样式,特别是如果你需要设置设计响应式的页面,@media 是非常有用的。

  当你重置浏览器大小的过程中,页面也会根据浏览器的宽度和高度重新渲染页面。

  2.媒体查询的作用

  可以在不改变页面内容的情况下,为特定的一些输出设备定制显示效果,是响应式布局实现的主要方式

  3.媒体查询的语法

  v 外联css语法:

  <link rel="stylesheet" media="mediatype and|not|only (media feature)" href="mystylesheet.css">

  ² 媒体类型:mediatype

  ² 关键字:and|not|only

  ² 媒体特征:media feature

  实例:

  <link rel="stylesheet" media="screen and (min-width:1024px)" href="red.css" />

  v 内嵌样式的语法:

  @media mediatype and|not|only (media feature) { ... }

  ² 媒体类型:mediatype

  ² 关键字:and|not|only

  ² 媒体特征:media feature

666.jpg

  六、课堂案例

  下面是一个响应式布局的简单案例

777.jpg

  l 导航部分:

  1) 导航部分由logo,导航和登录三部分组成,这三部分放置在一个header的父容器中,给header设置display:flex;使之成为弹性盒模型,并设置主轴方向为row,子元素在父容器中的对齐方式为两端对齐。

图片27.jpg

  2) 当窗口小于等于640px时,将导航隐藏,添加媒体查询

图片28.jpg

  l 图片列表部分

  1) 所有的图片都放置在一个class名为picture的父容器中,给父容器添加display:flex;使之成为弹性盒模型,并设置子元素的对齐方式为居中对齐(justify-content:center;),并设置每一个子元素占据父元素的25%,溢出换行显示。

图片29.jpg

  2) 添加媒体查询, 当窗口小于640px时,每行放置两张图片,即每个子元素占据50%;

图片30.jpg

  综上所述,掌握了弹性盒模型和媒体查询,我们就可以很轻松的只做出一个响应式的网站。

  千锋重庆HTML5培训课程还有多知识分享。

相关文章

无相关信息
  • 北京天丰利校区(总部):北京市海淀区宝盛北里西区28号天丰利商城4层
    北京沙河校区:北京市昌平区沙阳路18号北京科技职业技术广场服务楼2层、南区服务楼2层
    咨询电话:400-654-7778 010-82790226-801
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE培训、大数据开发培训、VR/AR混
                     合现实培训、Python培训、Android培训、iOS培训、好程序员
  • 深圳西部硅谷校区:深圳市宝安区宝安大道5010号深圳西部硅谷A区B座605-619
    深圳大学城校区:深圳市南山区留仙大道1201号大学城创客小镇16栋2楼、3楼
    咨询电话:0755-33582485-801(硅谷校区)0755-86660670-801(大学城校区)
    面授课程:全栈HTML5+培训、UI交互设计培训、PHP培训、JavaEE培训、Android培训、iOS培训
  • 上海地址:上海市宝山区同济支路199号智慧七立方3号楼2-4层
    咨询电话:400-627-7899 021-56166283/56166279
    面授课程:全栈HTML5+培训、UI交互设计培训、JavaEE培训、Android课程培训、iOS课程培训、好程序员
  • 郑州地址:郑州市金水区纬五路21号河南教育综合楼(经纬中学楼)7/8层
    咨询电话:0371-55191750 400-654-7778
    面授课程:全栈HTML5+培训、UI交互设计培训、JavaEE培训、Android课程培训、iOS课程培训
  • 广州地址:广州市天河区元岗路310号智汇park创意园E座5层
    咨询电话:020-22119207 400-654-7778
    面授课程:全栈HTML5+培训、JavaEE培训、Android课程培训、iOS课程培训
  • 大连地址:辽宁省大连市甘井子区软件园路2号东软信息B8座2层
    咨询电话:0411-39026086 400-654-7778
    面授课程:全栈HTML5+培训、JavaEE培训、UI交互设计培训、Android课程培训、iOS课程培训
  • 武汉地址:武汉市光谷大道61号智慧园21号楼2层
    咨询电话:027-65523826
    面授课程:全栈HTML5+培训、JavaEE培训、Android课程培训、iOS课程培训
  • 成都地址:成都市武侯区科华北路62号力宝大厦N(北楼)18楼
    咨询电话:028-83178771
    面授课程:全栈HTML5+培训、UI交互设计培训、JavaEE培训、Android课程培训、iOS课程培训
  • 校区地址:西安市雁塔区高新六路52号立人科技C座西区4楼
    咨询电话:029-85260160
    面授课程:全栈HTML5+培训、JavaEE培训、Android课程培训
  • 杭州地址:浙江省杭州市江干区九堡旺田书画城A座4层
    咨询电话:0571-86893632 010-82790226-801
    面授课程:全栈HTML5+培训、JavaEE培训、Android课程培训、iOS课程培训
  • 青岛校区地址:青岛市市南区金坛路17号青岛职业技术南校区实训楼A4层
    咨询电话:0532-80910752/3 010-82790226-801
    面授课程:全栈HTML5+培训、UI交互设计培训、Android课程培训、iOS课程培训
  • 了解千锋动态
    关注千锋教育服务号

  • 扫码匿名提建议
    直达CEO信箱