在前面的一篇文章中,我很简单介绍了弹性布局的概念,这里我将介绍弹性布局的实例化。理解弹性布局,并不是那么简单,因为弹性布局的基础和思想,和我们传统的盒装模式不同,所以必须要深入接受这种弹性布局的思路。接受这种思维的要点是动态布局。那么什么是动态布局呢。这里我举一个例子,传统的盒装模式,我们编写的UI适配到pc-web但是能够适配到移动设备吗?这是不能够的,如果我们需要适配到移动设备,必须要编写额外的UI去主动适配,所以才有了web-pc和移动设备展现效果的不同。即使所有的UI仅仅某些布局或者div进行了适配和编写,那也是多写了一部分内容。弹性布局的意义在于,我们设计的UI是主动适配到各个设备的,这种适配是主动的放大或者缩小到所有的设备,换句话说,我们的UI的元素的相对位置一直不变化,变化的仅仅是单位值rem。这样得到的负面效果是:可能并不能很友好的适配到pc-web,因为pc-web变形比较厉害。这个时候的问题,我们就可以使用《关于html5的屏幕适配方案1》中介绍的第二点了。但是到了其他的设备,基本上可以比较友好的展现,所以效果可以接受。

动态是弹性布局的内核思维。理解动态,理解相对,那么就理解了弹性布局。基本上,我们编写一套UI就可以适配到所有的设备,这是动态布局带来的优势。当然本文我仅仅会介绍非常简单的例子,事实上理解这些简单的例子,对于我们入门者或者想要深入学习的人而言,也是一笔财富:可以有效理解和直接应用。

第一点,我们作一个简单的尝试。我们看看flex的默认布局。前文已经讲说,默认模式首行左对齐!也即使最上行左对齐。现给出部分代码。

其展现的效果如下:

效果的确是如上文所说的上行左对齐。

我们再看看居中的情况

实现的代码如下:

也许你要问的是,我们需要控制的是子元素或者子容器,为什么不直接控制子元素。我们是不是在前文一再说明过:弹性布局的概念,已经不再说去主动控制某个子元素了,为了适配所有的设备的size,所以这种适配需要实现的效果是从宏观上去控制统一,这样才是弹性布局的最主要思想。所以你一再试图做出的方案,如果你的设置并不是布局观念的,那么你需要做的可能是如下的思路:

主布局主要是上行左对齐,但是到了某子元素,你想实现居中对齐!这是可以的行为。现实现如下:

效果图如下:

看到两处,我们可以发觉,在设置的两处中,第一种手法是全局居中,第二种手法则是全局上行左对齐。不过最后实现的方式相同了。这里分作两部分编写的缘故就是,如果在某个项目中,我们必须设置上行左对齐,但是又需要某些效果居中对齐,所以我们可以使用这种手法实现了。唯一需要做的工作是:要计算数值。我们的子容器已经设置了绝对位置,所以这个绝对位置的left或者right是要有数值的。这里有读者可能会问到,设置了绝对的值,那么其他的平台还是相同效果,如果细心的读者会发现单位是rem而不是px,这就是利用了不同设备的rem值不同,这个rem值是经过计算的,所以不同的平台或者设备rem不同,在相同的数值的情况下,绝对的位置相对于各个设备而言都是相同的。这就是rem的功劳。

另外又有人会问到,绝对位置我们是怎么计算的呢。这里我给出一个简单的思路,假定你的子容器的高度和高度一致,那么这里的top就不需要了,left的数值需要计算,这个情况下,先定义父容器宽度100%,子容器宽度20%,那么left的计算数值为:

Val = (100%-20%)*10/2 = 4 单位rem。

又例如子容器高度和父容器高度不一致,那么这个时候的top或者bottom计算如下:

Val_H=( BaseH-CH)*10/2单位rem;由于我们设定了子容器的绝对位置,所以上一级的容器的高度和子容器的高度不适合使用百分比了,我们可以直接设置rem数量,令上一级容器的height:1rem,子容器的height:0.3rem,那么子容器的top数值计算为:

Val_H= (1rem-0.3rem)/2 = 0.35rem

效果如下:

编写UI代码如下:

html弹性重叠,关于html5弹性布局(2)相关推荐

  1. html中前台布局特点,HTML5弹性布局有什么优点

    HTML5弹性布局是用来为盒状模型提供最大的灵活性,优点在于其容易上手,根据flex规则很容易达到某个布局效果.任何一个容器都可以指定为Flex弹性布局. 本教程操作环境:windows7系统.CSS ...

  2. html5 弹性布局

    html5 弹性布局 一.移动开发常用技巧 Viewport基本知识 设置布局Viewport的各种信息 1.width=device-width: 设置Viewport视口宽度等于设备宽度 2.in ...

  3. 从零开始学前端:弹性盒模型(flex布局) --- 今天你学习了吗?(CSS:Day19)

    从零开始学前端:程序猿小白也可以完全掌握!-今天你学习了吗?(CSS) 复习:从零开始学前端:字体图标的引入 - 今天你学习了吗?(CSS:Day18) 文章目录 从零开始学前端:程序猿小白也可以完全 ...

  4. 弹性盒子(移动端布局)

    弹性盒子(移动端布局) 1.任何一个容器都可以指定为 Flex 布局. .box{display: flex; //形成弹性盒 } //display:inline-flex行内元素形成弹性盒 //d ...

  5. HTML5 叠加布局

    HTML5 叠加布局 position语法: position : static absolute relative position参数: static : 无特殊定位,对象遵循HTML定位规则 a ...

  6. 谈谈弹性Web托管的“弹性”

    熟悉网站运营的站长都知道,一个网站运营到了一定程度,业务量上升,用户访问量急剧增长,带来的是网站服务器负载暴涨,CPU.内存和网络带宽等各项资源使用吃紧,进而影响到了用户请求的处理:从用户体验上看,很 ...

  7. 首页图标九宫格 html5,html5九宫格布局的网格菜单代码

    特效描述:html5 九宫格布局 网格菜单代码.今天我们想和大家分享一个九宫格菜单动画.这个想法的灵感来自于视频中的效果,html5全屏展开网格布局菜单,点击全屏背景切换显示代码. 代码结构 1. 引 ...

  8. html5 基本布局+新标签+新选择器 + 线性渐变

    html5 基本布局+新标签 <!DOCTYPE html> <html lang="en"> <head><meta charset=& ...

  9. html5 移动页面,html5入门到精通,移动设备的html5页面布局

    移动设备的html5页面布局 我们结合移动设备(手机和平板电脑)的特性,介绍HTML5中新增的语义化标签元素,以及在移动Web浏览器下Web页面布局的知识及例子. HTML5标准添加的新元素当中,用于 ...

最新文章

  1. 004_CSS元素选择器
  2. 漫话:如何给女朋友解释什么是HTTP
  3. Flash获取html参数的方法
  4. tcp压测工具_【解决方案】性能压测及分析调优实践
  5. Go -- log4go日志
  6. 函数式编程之一柯里化
  7. jquery 常用组件的小代码
  8. 线性代数及其应用(第三版)1.3节习题解答
  9. LR9.10破解方法。
  10. objectArx ---反应器
  11. HTML函数多个条件并列,countifs多个并列条件(countifs同一列2个条件
  12. 给一个字符串,将其按照单词顺序进行反转
  13. mysql查询耗时操作_mysql记录耗时的sql实例详解
  14. python 相关性分析原理及代码详细介绍
  15. 华为云 鲲鹏ARM云服务器 和 x86云服务器 性能评测对比
  16. MySQL 出现数据库表被锁解决方案
  17. 高新技术企业认定中涉及的领域有哪些?
  18. android ndk neon,Android NDK开发之 NEON使用介绍
  19. 假设一个C语言程序中包含a=b c,C语言程序中a=b==c是什么意思
  20. F280049C_CLA配置说明

热门文章

  1. 漫画:阿里巴巴四十大盗的故事-背包问题
  2. 百度“已死”,百度“真香”
  3. springboot集成rabbitMQ安装+代码
  4. canonicalize_url()方法格式化 url
  5. 静态Web服务器-返回固定页面数据
  6. 数据结构之队列、双端队列
  7. JSP第二次作业_4小题
  8. PyTorch Cookbook(常用代码段集锦)
  9. 使用Python部署机器学习模型的10个实践经验
  10. 【OpenCV 4开发详解】形态学应用