CSS 布局实现左边固定宽度,右边占满剩余宽度

html-css011

CSS 布局实现左边固定宽度,右边占满剩余宽度,第1张

浮动是最普遍实现的方式,但 css 浮动的初衷并不是用于布局的,所以浮动布局迟早会被淘汰,应该作为备选方式使用。

绝对定位方式有个缺点,当左边高于右边时,左边会超出父元素,需要使用 js 补救。

flex 是最鼓励使用的方式,低端 IE 不支持,但在移动端得到了广泛的使用。

  本人对前端算不得精通,只能说熟悉,在公司项目中遇见各种问题,在此文集中进行记录。

  首先介绍下此次问题产生的原因,以及中间想到的方案以及最终解决方案。

  问题产生:项目中用到了组件拖动功能,拖动后的组件遮盖了查询条件因此需要进行修改,产生这一问题后首先想到的就是给条件集合div添加 "z-index: 999" 这一属性,发现并不起作用(精通前端的小伙伴知道的话欢迎留言指导),然后我将这一属性添加到条件集合div的子功能项中,发现终于有作用了。效果如下。

  此时就会发现新的问题,我们的条件列中后半部分依然被遮盖了,这时我想的是在条件中在添加一个新的div,然后通关计算最后总的浏览器宽度减去最后一个div到左侧的宽度算出最后一个div的宽度进行设置,实际操作后发现,效果不理想,计算值总是变大,导致样式走样。猜测原因是因为条件布局中我使用的是flex导致(前边说了,前端只能说会,不敢说精通)。

  然后此时就想到了一个新的方案,就是新添加一个空白div,然后将空白div填满最后不就行了。这时候就涉及到使用flex的一个属性(flex-grow: 1)。最终完美解决。