html css做骰子,用CSS-flex写个骰子

1583d67a4a36

上班中午休息时间试着用flex做了一个CSS骰子,效果如下:

1583d67a4a36

demo

主要是flex布局,写的时候用到的还有scss和一点vue,vue只是用作生成结构。

HTML

var vm = new Vue({

el:'#app',

data:{

cellNumber:6

},

computed:{

numberNum:function(){

var old = this.cellNumber;

if(old == ''){

old = 0;

}

if(old > 6){

old = 6;

}

return parseInt(old);

},

className:function(){

return 'cell' + this.numberNum

},

cellHtml:function(){

var returnHtml = '';

switch (this.numberNum) {

case 1:returnHtml = '';break;

case 2:returnHtml = '';break;

case 3:returnHtml = '';break;

case 4:returnHtml = '

case 5:returnHtml = '

case 6:returnHtml = '';break;

}

return returnHtml;

}

}

})

SCSS

body{

margin: 0px;

}

.control{

display: flex;

justify-content: center;

align-items: center;

height: $topbarHeight;

background-color: #222;

position: absolute;

left: 0px;

right: 0px;

input{

height: 40px;

line-height: 40px;

width: 300px;

border-radius: 5px;

padding: 0px;

margin: 0px;

background-color: rgba(#000,0.2);

color: #FFF;

text-align: center;

font-size: 20px;

border: 0px;

outline: none;

}

}

.group{

position: absolute;

top: $topbarHeight;

bottom: 0px;

left: 0px;

right: 0px;

background-color: #333;

display: flex;

justify-content: center;

align-items: center;

.box{

height: $boxSize;

width: $boxSize;

/* box: */

background: #F0F0F0;

box-shadow: 0 2px 20px 0 rgba(0,0,0,0.05), 0 5px 10px 0 rgba(0,0,0,0.10), inset 0 0 0 5px rgba(203,203,203,0.50);

border-radius: 20px;

display: flex;

padding: 40px;

i{

display: block;

height: 60px;

width: 60px;

border-radius: 50%;

background-image: linear-gradient(-135deg, #737373 0%, #3B3B3B 100%);

box-shadow: 0 1px 1px 1px rgba(255,255,255,0.50), inset 0 1px 3px 0 rgba(0,0,0,0.50);

}

&.cell1{

justify-content: center;

align-items: center;

i{

height: 100px;

width: 100px;

/* Oval Copy: */

background-image: linear-gradient(-135deg, #FF7E7E 0%, #FF0000 100%);

box-shadow: 0 1px 1px 1px rgba(255,255,255,0.50), inset 0 1px 3px 0 rgba(0,0,0,0.50);

}

}

&.cell2{

justify-content: space-between;

i{

&:nth-child(2){

align-self: flex-end;

}

}

}

&.cell3{

justify-content: space-between;

i{

&:nth-child(2){

align-self: center;

}

&:nth-child(3){

align-self: flex-end;

}

}

}

&.cell4{

flex-direction: column;

justify-content: space-between;

div{

display: flex;

flex-direction: row;

justify-content: space-between;

}

}

&.cell5{

flex-direction: column;

justify-content: space-between;

div{

display: flex;

flex-direction: row;

justify-content: space-between;

&:nth-child(2){

justify-content: center;

}

}

}

&.cell6{

flex-direction: column;

flex-wrap: wrap;

align-content: space-between;

justify-content: space-between;

}

}

}

然后生成一堆CSS就不贴了,没有什么技术难点,需要的朋友自行研究代码好了

1583d67a4a36

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: `display:inline-flex` 是 CSS 中的一个属性值,它用于设置一个元素以行内弹性盒的形式进行布局,即该元素会按照弹性盒模型的方式进行排列,但是它会像行内元素一样排列。 使用 `display:inline-flex` 可以让元素具有弹性盒子的一些特性,例如自适应宽度、自动换行等,同时也可以设置 flex 容器的属性,如 `justify-content` 和 `align-items` 等。这样可以方便地进行元素的排列和布局。 需要注意的是,`display:inline-flex` 是 CSS3 中的一个新特性,因此在一些旧的浏览器上可能不支持。如果需要兼容性更好的方案,可以考虑使用 `display:-webkit-inline-box` 或 `display:-moz-inline-box` 来实现类似的效果。 ### 回答2: CSS的display:inline-flex属性定义了一个内联弹性盒子。 首先,我们要了解弹性盒子(flexbox)。弹性盒子是一种用于布局的高度灵活的容器。它可以容纳和控制一组元素的排列方式,以便它们能够适应不同的屏幕尺寸和设备。 默认情况下,弹性盒子的display属性值为"flex",这意味着该容器将作为块级元素显示。当我们将display属性值设为"inline-flex"时,弹性盒子将以内联元素的形式显示。 内联元素与行内元素类似,它们在同一行内进行排列,不会独占一行。与块级元素(如div)不同,内联元素不会独占一行空间。 使用display:inline-flex的主要优势是可以在页面中创建水平布局,而不会改变容器的块级特性。也就是说,它会将弹性盒子嵌入到文本流中,而不是使其单独占据一行。这使得我们可以将弹性盒子与其他文本元素结合使用,实现更灵活的布局效果。 需要注意的是,内联弹性盒子只对直接子元素起作用。因此,如果想要控制盒子内部的子元素,可以使用flex属性或其他相关的弹性盒子属性,如flex-direction、align-items、justify-content等。 总结来说,display:inline-flex属性可以将弹性盒子以内联元素的方式显示,这使得我们可以在水平布局中创建灵活的布局效果。这在某些情况下对于实现特定的页面布局非常有用。 ### 回答3: CSS的display:inline-flex是一种布局属性,用于在元素内部创建一个行内元素,并且使这个元素的子元素能够使用flexbox布局。 使用display:inline-flex可以使元素的子元素按照flexbox的规则进行布局,这样可以实现更灵活的布局效果。同时,由于它是行内元素,所以多个元素可以在同一行上进行布局。 与display:flex相比,display:inline-flex的主要区别在于前者会将元素的display属性设置为flex,而后者会将元素的display属性设置为inline-flex。 使用display:inline-flex时,可以通过设置相应的flex属性来控制子元素的布局方式,如设置flex-direction属性来控制子元素的排列方向(如水平方向或垂直方向)、设置flex-wrap属性来控制子元素是否换行,以及设置justify-content属性来控制子元素在主轴上的对齐方式等。 总结来说,display:inline-flex是一种常用的CSS属性,用于创建行内元素的flexbox布局。它可以在元素内部使用flexbox的相关属性,实现更灵活且具有响应式的布局效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值