本人对前端算不得精通,只能说熟悉,在公司项目中遇见各种问题,在此文集中进行记录。
首先介绍下此次问题产生的原因,以及中间想到的方案以及最终解决方案。
问题产生:项目中用到了组件拖动功能,拖动后的组件遮盖了查询条件因此需要进行修改,产生这一问题后首先想到的就是给条件集合div添加 "z-index: 999;" 这一属性,发现并不起作用(精通前端的小伙伴知道的话欢迎留言指导),然后我将这一属性添加到条件集合div的子功能项中,发现终于有作用了。效果如下。
此时就会发现新的问题,我们的条件列中后半部分依然被遮盖了,这时我想的是在条件中在添加一个新的div,然后通关计算最后总的浏览器宽度减去最后一个div到左侧的宽度算出最后一个div的宽度进行设置,实际操作后发现,效果不理想,计算值总是变大,导致样式走样。猜测原因是因为条件布局中我使用的是flex导致(前边说了,前端只能说会,不敢说精通)。
然后此时就想到了一个新的方案,就是新添加一个空白div,然后将空白div填满最后不就行了。这时候就涉及到使用flex的一个属性(flex-grow: 1;)。最终完美解决。
整体代码结构如下(为了方便只显示此功能,我做了简化):
<div class="fle">
<div class="zhi">查询条件1</div>
<div class="zhi">查询条件2</div>
<div class="sma2 zhi" /> <!-- 空的div填充空白 -->
</div>
<div>
此处模拟svg图的拖拽
</div>
<style lang="scss" scoped>
.fle {
display:flex;
}
.zhi {
z-index: 999;
background-color: #ffffff;
flex-grow: 1; /*铺满剩余空间*/
}
</style>