flex弹性盒子做骰子详解
什么是flex
网页布局是css的一个重点应用。
我们传统的布局的解决方案是基于盒装模型,依赖display属性+position属性+float属性。而这种布局相对来说不是很方便,类似垂直居中就不容易实现。
2009年,W3C提出了一种新的方案----flex布局,可以简便、完整、响应式地实现各种浏览器的支持,这就意味着,现在能很安全的使用这项功能。
弹性盒子来制作骰子
做出来的效果就是这样的
那么我们该如何用弹性布局来实现呢
首先我们要了解弹性盒子使用流程
- 首先我们要定义一个弹性盒子
display:flex;
- 确定方向
flex-direction:row/column(reverse);
/*row横轴方向默认方向 column竖轴方向*/
- 主轴的对齐方式
justify-content: flex-start;/* 左对齐 */justify-content: flex-end;/* 右对齐 */justify-content: center;/* 居中对齐 */justify-content: space-around;/* 两端对齐,两端有间距 */justify-content: space-between;/* 两端对齐,两端无间距 */
- 侧轴的对齐方式
align-items: flex-end;align-items: flex-start;align-items: center;align-self: flex-end;align-self: flex-start;align-self: center;align-content: flex-end;align-content: flex-start;align-content: center;/* flex-end侧轴右对齐 flex-start侧轴左对齐center侧轴中间对齐*/
align-items、align-content和align-self区别:
align-content对于单行的的盒子不起任何作用,而align-items则不区分单行与多行。
align-items是一个弹性容器,而align-self则是一个弹性项目。
大概就是align-items控制内部项目,而align-self则是控制自身项目
- 超出换行
flex-wrap: wrap;
/*超出换行*/
然后我们开始制作骰子
我们先写出骰子大致框架定义盒子宽高,骰子大小,阴影效果
我这边用的列表写的
ul{display: flex;width: 100px;height: 100px;background-color: #eeeeee;border-radius: 10px;box-shadow: 5px 5px 5px #cacaca;float: left;margin: 0 20px;
}
li{background-color: black;border-radius: 50%;width: 20px;height: 20px;margin: 5px;box-shadow: 2px 2px 2px #666666;
}
开始给骰子布局
ul:nth-child(2){justify-content: center;align-items: center ;
}
ul:nth-child(3){justify-content: space-between;
}
ul:nth-child(3) li:nth-child(2){align-self: flex-end;
}
ul:nth-child(4){justify-content: space-between;
}
ul:nth-child(4) li:nth-child(2){align-self: center;
}
ul:nth-child(4) li:nth-child(3){align-self: flex-end;
}
ul:nth-child(5){justify-content: space-between;flex-wrap: wrap;
}
ul:nth-child(5) li:nth-child(3){align-self: flex-end;margin-right: 20px;
}
ul:nth-child(5) li:nth-child(4){align-self: flex-end;
}
ul:nth-child(6){justify-content: space-between;align-content: space-between;flex-wrap: wrap;
}
ul:nth-child(6) li:nth-child(3){margin: 0 40px;
}
ul:nth-child(7) {justify-content: space-between;align-content: space-between;flex-wrap: wrap;
}
这样
骰子就出来了
附带完整代码
我是引入外部文件
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><link rel="stylesheet" href="../css/reset.css"><link rel="stylesheet" href="../css/style.css">
</head>
<body><ul><li></li></ul><ul><li></li></ul><ul><li></li><li></li></ul><ul><li></li><li></li><li></li></ul><ul><li></li><li></li><li></li><li></li></ul><ul><li></li><li></li><li></li><li></li><li></li></ul><ul><li></li><li></li><li></li><li></li><li></li><li></li></ul>
</body>
</html>
reset.css文件
@charset "utf-8";
*{margin: 0;padding: 0;
}
h1,h2,h3,h4,h5,h6{font-weight: normal;
}
a{ text-decoration:none;color: inherit;
}
li{list-style: none;
}
img{vertical-align: top;
}
html{font:12px/2 "微软雅黑";
}
style.css文件
ul{display: flex;width: 100px;height: 100px;background-color: #eeeeee;border-radius: 10px;box-shadow: 5px 5px 5px #cacaca;float: left;margin: 0 20px;
}
li{background-color: black;border-radius: 50%;width: 20px;height: 20px;margin: 5px;box-shadow: 2px 2px 2px #666666;
}
ul:nth-child(2){justify-content: center;align-items: center ;
}
ul:nth-child(3){justify-content: space-between;
}
ul:nth-child(3) li:nth-child(2){align-self: flex-end;
}
ul:nth-child(4){justify-content: space-between;
}
ul:nth-child(4) li:nth-child(2){align-self: center;
}
ul:nth-child(4) li:nth-child(3){align-self: flex-end;
}
ul:nth-child(5){justify-content: space-between;flex-wrap: wrap;
}
ul:nth-child(5) li:nth-child(3){align-self: flex-end;margin-right: 20px;
}
ul:nth-child(5) li:nth-child(4){align-self: flex-end;
}
ul:nth-child(6){justify-content: space-between;align-content: space-between;flex-wrap: wrap;
}
ul:nth-child(6) li:nth-child(3){margin: 0 40px;
}
ul:nth-child(7) {justify-content: space-between;align-content: space-between;flex-wrap: wrap;
}
如有错误 轻喷 小白一枚
flex弹性盒子做骰子详解相关推荐
- Flex弹性盒子详解:从量变到质变的理解
Flex弹性盒子 在前端css3中有个非常重要的属性,就是弹性盒子了,他在页面布局中起到的作用可谓是有着王霸之业,那么我们如何正确的使用flex布局呢?让我来介绍一下吧.我们可以将整个flex布局分成 ...
- HTML+CSS_第三部分(Flex弹性盒子布局、grid网格布局、移动端、移动端流式布局、移动端rem布局、响应式布局、Bootstrap框架)
文章目录 (1)Flex弹性盒子布局 一: 父容器上的属性 1. display:flex 设置为弹性盒子(写在父容器上) 2.flex-direction值 设置子项的布局方向(写在父容器上) 3. ...
- Flex弹性盒子(一篇带你掌握潮流 Flex 布局)
文章目录 Flex弹性盒子 1.说在前头 1.1.Flex布局出现之前 1.2.Flex布局出现后 2.什么是Flex布局? 3.Flex container/item(父/子容器)的常用属性 4.L ...
- flex弹性盒子flex-grow 和flex的区别
在flex弹性盒子体系中,flex-grow和flex都有对子元素进行放大的作用,但是这两个属性在放大时的计算方法不同,在使用时候要注意,使用正确的放大属性,从而达到自己想要的效果. 这是一个宽700 ...
- Vue.js-Day08【项目实战(附带 完整项目源码)-day03:订单确认页面、美团支付页面、flex弹性盒子布局】
Vue.js实训[基础理论(5天)+项目实战(5天)]博客汇总表[详细笔记] 实战项目源码[链接:https://pan.baidu.com/s/1r0Mje3Xnh8x4F1HyG4aQTA 提 ...
- flex html 页面移动,HTML页面布局之flex弹性盒子
这里是修真院前端小课堂,本篇分析的主题是 [HTML页面布局之flex弹性盒子] 每篇分享文从 [背景介绍][知识剖析][常见问题][解决方案][编码实战][扩展思考][更多讨论][参考文献] 八个方 ...
- flex弹性盒子中flex-grow与flex的区别
flex弹性盒子中flex-grow与flex的区别 大家在使用flex布局的时候很多情况下都会用到flex-grow这个属性, flex-grow 属性用于设置父元素剩余空间的瓜分比例, flex ...
- css弹性盒之justify-content详解
今天没事把css弹性盒常用及要注意的做一下整理: 先上代码如下: <!DOCTYPE html> <html> <head> <meta charset=&q ...
- 浅析flex弹性盒子伸缩比
之前在做移动端内容左右滑动时,被flex属性绕晕了.说实话,在网上看了很多讲述flex属性的相关博客,说的非常复杂,不如自己总结的香.今天用一篇博客带你玩转flex属性! 准备工作 弹性容器开启弹性布 ...
最新文章
- 如何解决http封包中gzip编码的html
- pygame显示图片的方法_使用Pygame进行游戏开发(1)
- 流式计算优化:时效性 [王方浩视角]
- Go error 处理实践
- 20165323 第五周学习总结
- 初学iBATIS的朋友,如果你不看我这篇文章,你一定后悔,因为它官方文档里面的示例少一个
- xcode7打包ipa文件
- 西南科技大学oj题逆置顺序表
- shp在MATLAB中裁剪数据,ENVI中利用Shape文件裁剪栅格数据
- python打印古诗_python教程:利用python基础知识取出对应诗句
- 4.多态(Thinking in java学习四)
- IOS天气预报(美化)
- 白鹭小游戏开发,并发布到微信平台
- 对3800x初步超频总结
- 【OCR技术】大批量构造中文文字训练集
- 开源分布式存储系统的对比
- GPS卫星位置的计算
- java内存模型浅析_浅谈java内存模型
- html5手机截屏,手机的这6种截屏方法,你用过几种?
- linux终端能不能打字,不能打字只有拼音_Ubuntu系统拼音无法正确打字怎么解决