关键词:
这篇文章是我在阮一峰老师的flex布局教程下,按照自己的理解重写写一遍,以便增强理解。如果你来到这里最好去看一下阮一峰大神的Flex布局教程
正式开始自己的。
说起布局方式,大家首先要了解css3有哪些布局方式,这里就不一一详解了。网上一大堆,而且平时写css3的时候大家一般也都会用到。
Flex布局:
1.概念:flex布局,英文全称为:Flexible Box 也就是弹性盒子的意思。设置flex布局的元素叫做容器,其他的子元素叫做项目。恩,我之前还真不知道叫做项目,没注意过。在容器中存在着两根轴:主轴(水平)和交叉轴(垂直)。
然后我们先创建一个正常的li列表
<div> <ul> <li>first</li> <li>second</li> <li>third</li> <li>forth</li> <li>fifith</li> </ul> </div>
在简单设置一下css样式,也不能太难看
div{ height: 500px; width: 500px; margin:0 auto; background-color: #333; } ul{ padding: 20px; box-sizing: border-box; } div li{ list-style: none; display: block; width: 200px; height:50px; text-align: center; line-height: 50px; font-size: 30px;
margin:10px; } li:nth-child(n){ background-color: #007aff; } li:nth-child(2n){ background-color: #8a6de9; color: #fff; }
最终展现在我们眼前的效果就是
这个留着备用,我们继续开始下面的流程。
2.作用在容器上面的6大属性
flex-direction
align-items
justify-content
align-content
flex-wrap
flex-flow
2.1首先看第一个flex-direction属性
在之前我们设置好得li列表上面我们做一下改动,给div增加新的样式,为了方便容易看,我就直接在之前的样式后面 继续为 div 下ul元素添加样式。
div ul{ display: flex; }
看一下效果
从原本的横向排列,变成了纵向排列。而且之前我们设置的 每个li 的宽度已经不起作用了。当我们设置display:flex;的时候,主轴默认的方向是水平方向也就是我们看到的样子。所以我们可以通过改变主轴的方向来随意调整我们li的排列方式。
/*设置主轴方向为垂直方向*/ flex-direction: column; /*设置主轴方向为垂直方向,从下往上*/ flex-direction: column-reverse; /*设置主轴方向为水平方向,从左往右*/ flex-direction: row; /*设置主轴方向为水平方向,从右往左*/ flex-direction: row-reverse; flex-direction: inherit;
flex-direction有五个属性,也可以说四个,毕竟最后一个可以省去。我们只要记着两个就行,column代表着垂直方向,row代表着水平方向。
2.2、这里我们看一下flex-wrap属性。
上面我们看到,设置成flex布局之后,li的宽度发生了变化,而且没有换行,挤在了一起。给样式加上flex-wrap之后,看一下
div ul{ display: flex; flex-wrap: wrap; }
flex-wrap,默认是nowrap。不换行。所以就导致了我们之前的那种情况,现在我们设置成wrap,让他根据宽度来决定是否换行。这样一来,就和float一样了。而且更加方便。flex-wrap还有一个属性
div ul{ display: flex; flex-wrap: wrap-reverse; }
也就是颠倒个个。
2.3flex-flow也就是flex-direction和flex-wrap的结合体,没什么好说的啦!
2.4justify-content
div ul{ display: flex; flex-wrap: wrap; justify-content: center; }
也就是设置垂直方向的排列方式,center就是居中。另外还有其他属性space-between;space-around;这两个属性可以说是我经常用到的属性。
2.4align-item这个就是水平方向的设置了。也justify-content相对应。也就不举栗子了。
2.5align-content属性定义的是多根线轴的对齐方式。具体样式也上面那两位几乎一样的。
3、在项目上的6大属性。
order
flex-grow
flex-shrink
flex-basis
align-self
3.1、order,设置数值,数值越小越靠前。例如我们给最后一个li添加order属性。设置为-1,样式为
li:last-child{ order: -1; }
可以看到第五个fifth排到了第一位!!这就很方便了。也很实用,说实话,我刚刚发现这个属性的时候就想发现新大陆一样激动(鬼知道哥伦布怎么想的)
3.2、flex-grow属性。设置放大比例,默认值是0,例如我们给最后一个li增加属性
li:last-child{ flex-grow: 1; }
3.3、flex-shrink就是缩小比例了。这个就不多说了。
3.4、flex-basis属性则定义了在分配多余空间之前,项目占据的主轴空间。
3.5、flex属性就是结合体.....我不是很熟练。还是一个个写吧
3.6、align-self也就是一个特立独行的存在。改变自己的排列方式。
flex布局grid布局(入门初体验)(代码片段)
两种布局都可以极大简化排版布局的步骤,都是直接作用于自己的排版(比如:现在ul上,ul>li就会自动进行排版)flex布局:一般用于单行排版display:flex;justify-content:space-evenly;//属性值可以在打印窗口调试,选择合适的。flex-flo... 查看详情
前端知识——css之flex布局(代码片段)
1.基本概念flex布局是一种布局模型,经常被称之为flexbox,使用flex布局之后,他会给子元素提供强大空间分配和对齐能力。 在没有使用flex布局之前,常用布局有:流式布局,浮动布局,定... 查看详情
flex布局
布局原理 flex是flexibleBox的缩写意为:"弹性布局"用来为盒状模型提供最大的灵活性任何一个容器都可以指定为flex布局 当我们为父盒子设置为flex布局以后子元素的floatclear和vertical-align属性将会失效 伸缩布局=弹... 查看详情
flex布局
网页布局(layout)是CSS的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display属性+ position属性+ float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C提出了一种新的方案&... 查看详情
flex布局(引用阮一峰老师的flex布局-语法篇)(代码片段)
一、Flex布局是什么?Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。.boxdisplay:flex;行内元素也可以使用Flex布局。.boxdisplay:inline-flex;Webkit内核的浏览器,必须加上-w... 查看详情
flex弹性布局
Css3的flex布局用法 Flex意为“弹性布局”,英文flexiblebox的缩写,flex布局使css盒模型变得更加强大和灵活,flex布局主要用在webapp和移动端中使用,移动端flex布局,将使的布局变得异常简单。&nbs... 查看详情
css之flex兼容
...就要做些兼容性处理。我写页面的时候用到过很多的flex布局,觉得非常好用。下面附上一篇不错的flex布 查看详情
flex布局
Flex布局flex布局是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局,包括行内元素,例如:.box{display:inline-flex;}Webkit内核的浏览器,必须加上-webkit前缀。.box{display:-webkit-fl... 查看详情
grid布局和flex布局的区别
1. 什么是Grid布局Grid布局及网格布局,是一种新的css模型,一般是将一个页面划分成几个主要的区域,定义这些区域的大小、位置和层次等关系,是目前唯一一种css二维布局。2.什么是flex布局flex是flexibleBox的缩写,意为“... 查看详情
css动效实战(纯css与js动效)02flex布局实战(仿jd及gitcode布局)及media自适应初探(代码片段)
一、flex仿JD布局首先,我们在编辑器中,写上基础代码,当然要在style中加上一个flex类,用于flex布局的定义,这个是必然需要的,在此一定得加上。<!DOCTYPEhtml><htmllang="en"><head><metac... 查看详情
flex布局
1.什么是Flex布局Flex是flexibleBox的缩写,意为“弹性布局”,用来为盒装模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。链接参考2.基本概念采用Flex布局的元素,称为容器(flexcontainer),简称‘容器’。它的所有子元素... 查看详情
flex布局
网页布局(layout)是CSS的一个重点应用。布局的传统解决方案,基于盒状模型,依赖 display属性+ position属性+ float属性。它对于那些特殊布局非常不方便,比如,垂直居中就不容易实现。2009年,W3C提出了一种新的方案&... 查看详情
flex弹性布局
flex弹性布局/2-1flexbox介绍flex弹性盒式模型。它能够更加高效方便控制元素对齐,排列,更重要的是能够自动计算布局内元素的尺寸,无论这个元素的尺寸是固定的还是动态的。 css布局模型 flex弹性布... 查看详情
flex布局
一、Flex布局是什么?Flex是FlexibleBox的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。块级元素display:flex行内元素display:inline-flex注意 1>.Webkit内核的浏览器,必须加上-webkit前缀... 查看详情
flex布局
一、Flex布局是什么?Flex是FlexibleBox的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。.box{display:flex;}行内元素也可以使用Flex布局。.box{display:inline-flex;}Webkit内核的浏览器,必须... 查看详情
flex-弹性布局
Flex是FlexibleBox的缩写,意为“弹性布局”,用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为Flex布局。如:.box{ display:flex;}行内元素也可以使用Flex布局。.box{ display:inline-flex;}注意,设为Flex布局以后,子元素... 查看详情
flex布局:flex布局
参考技术A传统布局:flex布局:使用范围:1、如果是PC端页面布局,建议使用传统布局2、如果是移动端或者不考虑兼容性问题的PC端,建议使用flex弹性布局flex意为弹性布局,通过给父盒子添加flex属性,来控制子盒子的位置和排... 查看详情
flex布局
Flex布局 Flex是FlexibleBox的缩写,意为"弹性布局"。任何一个容器都可以指定为Flex布局。 Webkit内核(Safari6.1+)的浏览器,必须加上-webkit-前缀。 设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。 Flex布... 查看详情