响应式布局实现的几种方法 — 弹性布局
响应式布局的实现是前端工程中一个非常大的跨越,它非常灵活的可塑造性使得同一个网站能在不同的终端设备上展现出不同的活力。就今天这个机会,我想与大家分享并探讨一些常用来实现响应式布局方法中的弹性布局。
弹性布局是一种十分方便的,只需要依赖于CSS样式的实现响应式布局的方式,也是K最多用到的一种实现响应式的方法。尤其是现在类似于某宝、某东一类的电商web站或者手机app的页面,利用弹性布局是都可以很轻松的实现的,下面就是本K用弹性布局copy的某动的手机应用的部分页面。
大家可以看到,特别是在小图标排列或是频繁划区的时候,弹性布局就显得十分的便利。下面,K就带大家来回顾一下关于弹性布局(display:flex)。
弹性布局 flex 是CSS中 display 的一个属性值,通过在父容器上添加 display:flex; 属性,便可以实现其子元素在父元素中的弹性布局,但要注意的是 display:flex; 这一条样式只会作用在添加这一属性的父容器和非隔代子容器上,换句话说,父容器上的 diaplay:flex; 属性并不会使其直系子元素中的子元素产生弹性布局。通俗来讲,爹只能管得到自己的儿子、而管不到自己的孙子。如果想要在下一层中继续使用弹性布局,我们可以在相应的子元素上再次添加 display:flex; 属性来实现。
弹性布局在父、子元素上都有相对应的属性来规范子元素在父元素中的“弹力”。
在父元素上,我们经常会用到的有关弹性布局的属性主要有 flex-direction , flex-wrap , justify-content , align-items , align-content ,这几个属性分别从 主轴的方向、是否换行、项目在主轴上的对齐方式、项目在交叉轴上的对齐方式、项目在多根轴线上的对齐方式来规范了项目在父元素中的弹性。
在子元素上,我们经常会用到的有关弹性布局的属性主要有 order , flex-grow , flex-shrink ,flex-basis , align-self ,这几个属性分别从 项目的排序、项目放大比例、项目缩小比例、项目占据主轴空间、单个项目在交叉轴上的对齐方式来规范了项目自身的弹性。
以上几种具体的属性值及作用大家可以在我的博客(http://www.cnblogs.com/wk1102/p/6622738.html)中找到,这里给大家讲一下我在当时感觉到的比较疑惑的几个地方。
(1)主轴与交叉轴。 在弹性布局中,主轴及主轴的方向取决于 flex-direction 属性的属性值,它可以是在水平方向上,也可以是在垂直方向上,既可以是正向,也可以是反向,在这里,初次接触这一概念的朋友们要注意了,千万不要单单把“主轴”与“水平正向”划等号,虽然说在CSS中规定的默认值是这样的。而交叉轴表示的就是与主轴垂直的那条轴线。
(2)基线。在弹性布局中,还提到了“基线”这个词,基线是指字母x的下端沿。而许多属性值所谓的baseline对齐方式就是指沿一行中小写x的低端线对齐,就好像一直有那么一个模板在比对者一样。
(3)多交叉轴线。多交叉轴线是在flex-wrap属性设置为wrap后可能出现的一种情况,即父容器中出现了多行的排列,而每一行都有其各自的轴线。
以上就是K对于实现响应式布局中弹性布局方法使用的一些小小的总结和见解,下一次,K会继续跟大家探讨关于实现响应式布局的其他几种方法。