教程来自阮一峰的flex布局教程实例篇

容器五大属性:

flex-direction:容器内项目的排列方向

(1)row:横向从左往右排列(默认)

(2)row-reverse:横向从右往左排列,是将元素一个一个的靠右放置,要跟justify-content中的flex-end区分清楚

(3)column:纵向从上往下排列

(4)column-reverse:纵向从下往上排列

flex-wrap:项目排列换行

(1)nowrap:不换行,项目超出容器范围自动缩小项目(默认)

(2)wrap:顺序换行

(3)wrap-reverse:排完序后整行交换

justify-content:项目在主轴上的对齐方式(一定要跟flex-direction区分清楚)

(1)flex-start:左对齐(默认),或向上对齐

(2)center:居中

(3)flex-end:右对齐,或向下对齐,是将元素从左往右排列完后整体右对齐,要跟flex-direction中的row-reverse区分清楚

(4)spaec-around:元素两边平均等分剩余空白间隙部分,最左(上)或最右(下)和元素之间的距离是1:2

(5)space-between:两端对齐,元素之间平均等分生于空白间隙部分

align-items:交叉轴上元素的对齐方式

(1)flex-start:交叉轴起点对齐(向上或向左)

(2)center:交叉轴居中对齐

(3)flex-end:交叉轴结束位置对齐(向下或向右)

(4)stretch:对未设置高度或高度设置为auto的项目进行拉伸填满容器(默认)

(5)baseline:保证元素中的文字在同一条基准线上

align-content:定义轴线的对齐方式

(1)flex-start:交叉轴起点对齐

(2)center:交叉轴中点对齐

(3)flex-end:交叉轴终点对齐

(4)space-between:与交叉轴两段对齐,轴线之间等距

(5)space-aroud:每根轴线等距

(6)strtch:轴线占满整个交叉轴(默认)

项目属性:

order:定义项目排序顺序,数值越小排列越靠前.默认为0

flex-grow:项目放大比例,默认为0不放大,将剩余空间按比例分配给要放大的元素

flex-shrink:项目缩小比例,设置为0不缩小

flex-basis:为项目设置主轴上的固定空间

align-self:允许单个项目与其他项目不同的对齐方式,可以覆盖align-items属性

(一)骰子的布局

1.1单项目一个点

默认为首行左对齐:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> <style type="text/css">
body{
background-color: black;
}
.box{
/*
*默认为首行左对齐
*/
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
}
.item{
width: 100px;
height: 100px;
margin: 30px;
background-color: #000000; }
.thick-white-border{
/*
*为容器box设置样式
*/
border-color: #ffffff;
border-width: 50px;
border-radius: 20px;/*圆角边框*/
}
.thick-black-border{
/*为元素span设置样式*/
border-color: #000000;
border-radius: 50%;/*把span元素变成圆形*/
}
</style>
</head>
<body>
<div class="box thick-white-border">
<!--
--box为外层容器,是骰子的面
-->
<span class="item thick-black-border"></span>
</div>
</body>
</html>

defalut

设置居中对齐:

/*
*把以下代码加入box样式设置中
*/
justify-content: center;

设置右对齐:

justify-content: flex-end;

设置交叉轴对齐方式,将横向轴下移,显示为中间行左对齐:

 .box{
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
align-items: center;
}

中间行,中间对齐:

 .box{
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
align-items: center;
justify-content: center;
}

中间行右对齐:

justify-content: flex-end;

靠低行中间对齐:

align-items: flex-end;
justify-content: center;

靠低行右对齐:

align-items: flex-end;
justify-content: flex-end;

1.2双项目2个点

首行两边对齐:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> <style type="text/css">
body{
background-color: black;
}
.box{
/*
*默认为首行左对齐
*/
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
justify-content: space-between;/*首行两边对齐*/
}
.item{
width: 100px;
height: 100px;
margin: 30px;
background-color: #000000; }
.thick-white-border{
/*
*为容器box设置样式
*/
border-color: #ffffff;
border-width: 50px;
border-radius: 20px;/*圆角边框*/
}
.thick-black-border{
/*为元素span设置样式*/
border-color: #000000;
border-radius: 50%;/*把span元素变成圆形*/
}
</style>
</head>
<body>
<div class="box thick-white-border">
<!--
--box为外层容器,是骰子的面
-->
<span class="item thick-black-border"></span>
<span class="item thick-black-border"></span>
<!--CSS文件中的样式设置类可以复用,无需为新span元素单独设置样式-->
</div>
</body>
</html>

双项目2个点

等距对齐:

justify-content: space-around;

双项目纵向排列,默认首列:

 .box{
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
flex-direction: column;
justify-content: space-around;
}

双项目,骰子2点布局:

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> <style type="text/css">
body{
background-color: black;
}
.box{
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
justify-content: space-around;
}
.item{
width: 80px;
height: 80px;
margin: 30px;
background-color: #000000;
display: flex;
}
.item:nth-child(2){
align-self: center;
} .thick-white-border{
/*
*为容器box设置样式
*/
border-color: #ffffff;
border-width: 50px;
border-radius: 20px;/*圆角边框*/
}
.thick-black-border{
/*为元素span设置样式*/
border-color: #000000;
border-radius: 50%;/*把span元素变成圆形*/
}
</style>
</head>
<body>
<div class="box thick-white-border">
<!--
--box为外层容器,是骰子的面
-->
<span class="item thick-black-border"></span>
<span class="item thick-black-border"></span> </div>
</body>
</html>

骰子2点

1.3三项目:

骰子三点斜线布局;

 <!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title></title> <style type="text/css">
body{
background-color: black;
}
.box{
width: 400px;
height: 400px;
background-color: ghostwhite;
display: flex;
}
.item{
width: 80px;
height: 80px;
margin: 30px;
background-color: #000000;
display: flex;
}
.item:nth-child(2){
align-self: center;
}
.item:nth-child(3){
align-self: flex-end;
} .thick-white-border{
/*
*为容器box设置样式
*/
border-color: #ffffff;
border-width: 50px;
border-radius: 20px;/*圆角边框*/
}
.thick-black-border{
/*为元素span设置样式*/
border-color: #000000;
border-radius: 50%;/*把span元素变成圆形*/
}
</style>
</head>
<body>
<div class="box thick-white-border">
<span class="item thick-black-border"></span>
<span class="item thick-black-border"></span>
<span class="item thick-black-border"></span>
</div>
</body>
</html>

骰子三点布局

样式文件分离:

便于样式的修改

在页面page文件中的同目录下新建CSS文件,在pages文件中使用@import导入CSS样式文件

flex布局学习的更多相关文章

  1. flex 布局学习

    flex 布局学习 寻根溯源话布局 一切都始于这样一个问题:怎样通过 CSS 简单而优雅的实现水平.垂直同时居中.记得刚开始学习 CSS 的时候,看到 float 属性不由得感觉眼前一亮,顺理成章的联 ...

  2. CSS flex 布局学习笔记

    写在前面 Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为 Flex 布局. 采用 Flex 布局的元素 ...

  3. Flex布局学习笔记

    任何元素都可以使用Flex布局,包括行内元素 display: flex; display: inline-flex使用Flex布局之后,子元素的float, clear, vertical-alig ...

  4. flex布局学习总结

    最近项目主要是小程序,小程序里面的布局主要采用flex布局,之前对flex 布局只是稍作了解,总结下flex 布局的常用套路 容器 Flex是Flexible Box的缩写,意为"弹性布局& ...

  5. Flex 布局学习笔记

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  6. FreeMusic项目优化(一)——flex布局学习记录

    参考博客:http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html flex布局是w3c于09年提出的,用于简便,整洁,响应式地解决布局问题的手 ...

  7. 前端flex布局学习笔记

    flex布局,即为弹性布局,其为盒模型提供最大的灵活性,任何一个容器都可以指定为flex布局. eg:.box{ display:flex: } 行内元素也可以使用flex布局. 注意:设置flex布 ...

  8. flex布局学习总结--阮一峰

    基本概念:   采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器".它的所有子元素自动成为容器成员,称为 Flex 项目(flex it ...

  9. Flex布局【弹性布局】学习

    先让我们看看在原来的学习中遇到的问题 之前在软件工程的大作业中,自己从零开始学习如何开发一个网站,从页面,到后台,当然数据库是大二的必修课 在学习如何编写一个静态页面的时候,完全是自学,自己摸索,所以 ...

随机推荐

  1. Power BI免费版(Free),专业版(Pro)以及增值版(Premium)授权功能对比, Server

    Features of Power BI Report Server and the Power BI service Features Power BI Report Server Power BI ...

  2. Tutorial: Create a Windows Machine Learning UWP application (C#)

    In this tutorial, we'll build a simple Universal Windows Platform application that uses a trained ma ...

  3. pycharm failed to create JVM

    启动的时候,出现这个error: 解决办法: 如果电脑安装的jdk是64位,找到pycharm的安装目录下的bin目录下的pycharm64.exe.vmoptions文件修改以下值, 如果是32位, ...

  4. Linux下批量管理工具pssh安装和使用

    Linux下批量管理工具pssh安装和使用 pssh工具包 安装:yum -y install pssh pssh:在多个主机上并行地运行命令 pscp:把文件并行地复制到多个主机上 prsync:通 ...

  5. 一文入门HTML5

    1.HTML5 上节回顾:一文读懂ES6(附PY3对比) | 一文入门NodeJS 演示demo:https://github.com/lotapp/BaseCode/tree/master/java ...

  6. LeetCode--11_Container_With_Most_Water

    题目链接:点击这里 首先我们不考虑高度的话 最大的面积应该是l r 应该是最边上的值 ,我们要取最大 所以 要维护从左到右单调增,从右到左 单调增 这样我们才能保证 面积增加 public stati ...

  7. Cucumber启动类配置

    @CucumberOptions ( features = "src/test/resources", glue = {"Steps"}, tags = {&q ...

  8. 机器学习中模型泛化能力和过拟合现象(overfitting)的矛盾、以及其主要缓解方法正则化技术原理初探

    1. 偏差与方差 - 机器学习算法泛化性能分析 在一个项目中,我们通过设计和训练得到了一个model,该model的泛化可能很好,也可能不尽如人意,其背后的决定因素是什么呢?或者说我们可以从哪些方面去 ...

  9. Angular记录(6)

    文档资料 箭头函数--MDN:https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Functions/Arrow_fun ...

  10. 【Unity游戏开发】你真的了解UGUI中的IPointerClickHandler吗?

    一.引子 马三在最近的开发工作中遇到了一个比较有意思的bug:“TableViewCell上面的某些自定义UI组件不能响应点击事件,并且它的父容器TableView也不能响应点击事件,但是TableV ...