Flex布局 - 实现平均分布和移入展开效果!

657 阅读2分钟

学习Flex布局,Flex常用的是水平垂直居中,也可以用于页面窗口大小的分配!

学习链接

Expanding Cards (50projects50days.com)

01.gif

功能实现

使用flex布局,

  • 实现平均分布,(展示的占50%,剩余的各占50%)
  • 点击即可展开,(占屏幕50%
  • 实现放大效果

核心参数

父元素

  • display: flex

子元素

  • flex: 0.5 - 所有的
  • flex: 1.5 - 需要分配的!

这里重点就是怎么分配这个子元素的flex值!

比如说 Html 结构长这样

div.container - 这里设置display:flex
    div.item * 4 - 这里设置flex: 0.5 - 每个都是0.5

上面代码中,子元素一共有4个,每个都占0.5, 这样就实现了页面的平均分成四份 - 因为每个都所占的都一样!!

如果要实现鼠标移入,占屏幕一半!需要设置为1.5

.item:hover{
    flex: 1.5
}

这个1.5是怎么来的?

计算公式 - 所占份数 / 2 - 本身

  • 4 / 2 - 0.5 = 1.5
  • 这样就实现了移入占50%的效果

如果说是6份,要实现占一半,应该设置为多少

  • 还是用0.5 设置每个item
  • 移入的设置为 6 / 2 - 0.5 = 2.5

如果说是8份,要实现占一半,应该设置为多少

  • 还是用0.5 设置每个item
  • 移入的设置为 8 / 2 - 0.5 = 3.5

设计实践

实现效果

  • 平均分成四份
  • 有一点斜切效果
  • 默认是灰色的 - filter滤镜
  • 移入占一半,还原图片的颜色,还有一点图片放大效果!

核心参数

  • display: flex; - 父元素设置 + 水平居中
  • flex: 0.5 - 子元素设置
  • flex: 1.5 - 移入设置
  • filter: grayscale(80%) - 灰度滤镜

码上掘金 (juejin.cn)

总结

主要是总结了一下flex这个属性的用法,简单实用,可以算百分比之外的选择!然后实践了一下,官方编辑器贴代码。。

遇到喜欢的效果都写个博客!

山再高,往上攀,总能登顶;路再长,走下去,定能到达。