本文主要是介绍vue flex 布局实现div均分自动换行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
vue flex 布局实现div均分自动换行
许久没有更新了,今天才意外发现以前还是没有看懂盒模型,今天才算看懂了,首先我们今天来看一下想要实现的效果是什么?当然适配是必须的,1920 或者 1376都测试过。效果如图所选中区域所示:
一、关于flex布局我建议去看一下http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html这篇博客,我们主要用到flex布局的一个换行属性,它是flex-wrap: wrap,自动换行。
二、vue代码
(1)html部分:
<div class="home-card"><div class="home-item" v-for="n in 7" :key="n"><img class="home-img" :src="require('_img/icon.png')" alt=""><div class="home-right"><span style="color: #999; fontSize: 12px">当周流入总计</span><span class='home-num' >124,345</span><span><i class="el-icon-caret-bottom" style="color: red; fontSize: 12px" ></i> <i style="color: red"> -10%</i> <span style="color: #999; fontSize: 12px">同比上月</span></span></div></div></div>
(2)css部分
.home-card {width 100%overflow hiddenpadding 10px 0pxdisplay flexflex-wrap: wrap.home-item {border-style solidborder-width: 1pxborder-color: #E4E4E4width calc(25% - 30px)padding 20px 0px 20px 20pxmargin-right 10pxmargin-bottom 10pxdisplay flexalign-items centerbackground #fff&:nth-child(4) {margin-right 0}.home-img {display inline-blockwidth 60pxheight 60pxmargin 0padding 0}.home-right {display flexflex-direction columnjustify-content centeralign-items flex-startmargin-left 10px.home-num {font-size 40pxmargin 5px 0}}}}
要想每一个div刚好能自动填充适配,最关键的就是css样式里面的宽度计算:也就是width: calc(25% - 30px),因为最大宽度是100%,每一个平分下来是25%,剩下的这么算呢?看图
每一个home-item共占用32px,去掉10px,每个平分2.5px,也就是home-item占用32-2.5=29.5px,算30px,这样就实现宽度自动填充实现适配了。哈哈
这篇关于vue flex 布局实现div均分自动换行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!