您现在的位置是:网站首页> 编程资料编程资料
CSS3的Flexbox骰子布局的实现及问题讲解利用CSS3的flexbox实现水平垂直居中与三列等高布局基础的CSS3弹性盒Flexbox布局使用实例CSS3的Flexbox布局的简明入门指南css3弹性盒模型(Flexbox)详细介绍CSS3 Flexbox中flex-shrink属性的用法示例介绍10分钟理解CSS3 FlexBox弹性布局
2021-09-05
968人已围观
简介 骰子布局顾名思义,就是好比骰子的一面最多可以放置9个点,而每个面放置的点数正好就是一个布局的模型图,这里我们就带来CSS3的Flexbox骰子布局的实现及问题讲解:
本文中只是熟悉基本属性的用法,并完成一组骰子各个面的制作。在下面的内容我不会涉及flexbox一些比较棘手的问题,比如旧版本语法、供应商前缀、浏览器怪癖等:
一、First Face
我们知道,骰子有六个面,每个面的点的个数代表该面的值,第一个面由一个水平垂直居中的点组成。下面来看具体的实现:
-
"01" class="face-01"> - "dot">
- face-01 {
- display: flex;
- justify-content: center;
- align-items: center;
关于justify-content和align-items的用法请参考这里justify-content,align-items。使用flexbox,垂直居中两行属性就可以搞定,很easy!
二、Second Face
- .face-02 {
- display: flex;
- justify-content: space-between;
- }
- .face-02 .dot:nth-of-type(2) {
- align-self: flex-end;
- }
-
"02" class="face-02"> - "dot">
- "dot">
这里我们不能使用align-items属性,使用它两个点都会受影响,flexbox提供了一个align-self属性,这个属性可以让我们更方便的控制flex items的各项沿着cross axias方向,设置不同的布局。align-self的用法参考这里align-self。
三、Third Face
- .face-03 {
- display: flex;
- justify-content: space-between;
- }
- .face-03 .dot:nth-of-type(2) {
- align-self: center;
- }
- .face-03 .dot:nth-of-type(3) {
- align-self: flex-end;
- }
"03" class="face-03"> - "dot">
- "dot">
- "dot">
该face与second face 使用的属性相同,不再解释。
四、Fourth Face
- .face-04 {
- display: flex;
- justify-content: space-between;
- flex-direction: column;
- }
- .face-04 .column {
- display: flex;
- justify-content: space-between;
- }
"04" class="face-04"> - "column">
- "dot">
- "dot">
- "column">
- "dot">
- "dot">
本例中使用了flex-direction,从字面意思可以看出,是用来控制flex的方向,即按列还是按行来布局,该属性更详细的用法可以参考这里flex-direction
后面Fifth Face 和 Sixth Face,根据前面的布局思想,就很easy了不再赘述!
写到此,想想配合JS写一个玩骰子的小游戏应该很easy了吧。
五、实现1,2,3,4,6,12等份
- .row {
- display: flex;
- box-sizing: border-box;
- }
- .column {
- margin: 10px;
- flex-grow: 1;
- flex-shrink: 1;
- flex-basis: 0;
- box-sizing: border-box;
- }
"row"> - "column">One
"row"> - "column">One Half
- "column">One Half
"row"> - "column">One Third
- "column">One Third
- "column">One Third
"row"> - "column">One Fourth
- "column">One Fourth
- "column">One Fourth
- "column">One Fourth
"row"> - "column">One Sixth
- "column">One Sixth
- "column">One Sixth
- "column">One Sixth
- "column">One Sixth
- "column">One Sixth
"row"> - "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
- "column">One Twelve
在本例中用到了flex-grow,flex-shrink,flex-basis三个属性。
1. flex-grow:根据需要用来定义伸缩项目的扩展能力。它接受一个不带单位的值做为一个比例。主要用来决定伸缩容器剩余空间按比例应扩展多少空间。
如果所有伸缩项目的“flex-grow”设置了“1”,那么每个伸缩项目将设置为一个大小相等的剩余空间。如果你给其中一个伸缩项目设置了“flex-grow”值为“2”,那么这个伸缩项目所占的剩余空间是其他伸缩项目所占剩余空间的两倍。负值无效。
2. flex-shrink:根据需要用来定义伸缩项目收缩的能力。负值同样无效。
3. flex-basis: 用来设置伸缩基准值,剩余的空间按比率进行伸缩,不支持负值。如果设置为0,围绕内容的额外的空间不会考虑在内。如果设置为auto,额外的空间是基于flex-grow的值分配。
六、实现2-3-7布局
- .row237 .column:first-of-type {
- flex-grow: 2;
- flex-basis: 5px;
- }
- .row237 .column:nth-of-type(2) {
- flex-grow: 3;
- flex-basis: 18px;
- }
- .row237 .column:nth-of-type(3) {
- flex-grow: 7;
- flex-basis: 70.5px;
- }
"row row237"> - "column">One Half
- "column">One Third
- "column">One Seventh
此处各项flex-basis的值的计算,应该有个公式(待解决),如果有这个公式,配合sass,less等预处理语言实现多列自适应布局将会很方便。
相关内容
- 浅谈HTML(css基础样式)html/css基础篇——html代码编写过程中的几个警惕点(必看)html、css基础注意点(前端必看篇)HTML CSS样式基础(必看篇)HTML基础总结推荐(段落)HTML基础知识——css样式表,样式属性,格式与布局详解HTML基础知识——设置超链接的样式简单实例HTML基础必看——全面了解css样式表HTML基础必看---表单,图片热点,网页划区和拼接详解HTML基础重点_一般标签、常用标签和表格前端开发每天必学之HTML入门介绍
- 全面了解css行高line-height的用法深入理解CSS行高line-height与文本垂直居中的原理CSS中的line-height行高属性学习教程CSS中的line-height行高属性的使用技巧小结CSS中行高line-height属性的一些使用技巧css属性行高line-height的用法详解CSS行高line-height的个人理解CSS line-height行高上下居中垂直居中样式属性关于css中line-height(行高)设置无效的问题的解决方法
- 纯CSS仿迅雷看看蓝色导航Jacascript和CSS实现Mac OS导航菜单20个css做的漂亮导航菜单Js+CSS 共同打造的黑色导航菜单UL、LI 无序列表实现纯CSS网站导航菜单CSS技巧 使用标签来创建导航菜单(滑动门教程)使用CSS做出一个嵌套导航.CSS Cookbook创建水平导航菜单CSS Cookbook 创建文字导航菜单和翻转特效 CSS 制作网页导航条(下)CSS实现仿2010猪八戒首页导航菜单
- CSS3制作圆角图片和椭圆形图片Css3圆角边框制作代码CSS的一些圆角图形实例分享CSS3绘制圆角矩形的简单示例使用css实现圆角图形绘制纯CSS实现圆角折叠菜单的方法CSS实现反方向圆角的示例代码
- CSS 定位之position全面了解CSS属性之定位属性(图文详解)css绝对定位如何在不同分辨率下的电脑正常显示定位位置?(一定要看!)CSS position属性和实例应用演示css position定位属性_动力节点Java学院整理 css中的三种基本定位机制CSS的position定位和float浮动详解CSS3定位和浮动详解深入理解CSS定位与层叠CSS定位的教程
- css3media响应式布局实例详解使用CSS3的@media来编写响应式的页面 css3 media 响应式布局的简单实例css3的@media属性实现页面响应式布局示例代码详解CSS3媒体查询响应式布局bootstrap 框架原理实战(推荐)
- CSS使用float属性设置浮动元素的实例教程CSS清除浮动float的三种方法小结详解css清除浮动float的七种常用方法总结和兼容性处理CSS的position定位和float浮动详解理解CSS浮动float、定位positioncss浮动(float/clear)使用讲解css浮动(float,clear)通俗讲解经验分享html/css中float浮动的用法实例详解
- CSS的clear属性清除浮动的基本用法示例CSS3 清除浮动的方法示例CSS清除浮动float的三种方法小结清除css浮动的三种方法小结详解css清除浮动float的七种常用方法总结和兼容性处理浅谈css中浮动和清除浮动带来的影响CSS清除浮动方法小结详解CSS中zoom属性或overflow:auto属性清除浮动的作用关于清除浮动塌陷的几种方法总结浅谈css清除浮动(clearfix和clear)的用法浅谈CSS中的clear清除浮动
- 使用CSS的overflow属性防止float撑开div的方法css 设置overflow:scroll 滚动条的样式 CSS中overflow-y: visible;不起作用的原因分析及解决方法深入理解CSS overflow:hidden——溢出,坍塌,清除浮动css中text-overflow属性与文本截断详解详解CSS中zoom属性或overflow:auto属性清除浮动的作用CSS属性text-overflow的使用问题使用CSS隐藏元素滚动条的示例代码css 给div添加滚动并隐藏滚动条
- CSS隐藏页面元素的5种方法css 元素显示隐藏的9种思路使用CSS隐藏元素滚动条的示例代码CATIA装配体中的所有参考元素怎么隐藏?CSS“隐藏”元素的多种方法的对比隐藏 Web 中的元素方法及优缺点教程详解