【发布时间】:2016-03-24 12:19:45
【问题描述】:
我正在构建一个 UI,它需要在视口底部有一个固定位置/粘性元素,其宽度受主要内容区域的限制。主要内容区域的两侧可选地是(兄弟)具有固定宽度的左侧和/或右侧边栏,因此我使用 Flexbox 构建主要内容上带有 flex-grow: 1 的三列结构。
我从@Marc Audet 在How can I make a fixed positioned div inherit width of parent? 接受的答案中了解到,在固定元素上设置width: inherit 通常是解决此问题的方法,但它似乎仅在其父元素上有指定宽度时才有效,这考虑到我需要主要内容区域来填充页面的剩余宽度,这对我没有帮助。
有没有人有任何解决这个问题的想法?查看我的Fiddle 以获取代码/示例。任何帮助将不胜感激!
【问题讨论】:
-
不会为您计算宽度?
width: calc(100vw - 150px - 250px); -
@AntonYakushev 的重点是,如果侧边栏被省略,中间部分会自动增长,否则他可以使用
left:150px和right:250px代替。 -
@jabram
width:inherit不起作用的原因是width的默认值是auto,它被继承得很好,在这种情况下它对你没有帮助。我知道您的问题可能的解决方案,但它们非常复杂,涉及多个同级选择器...... -
@NielsKeurentjes 如果有一种简洁的方式来传达这个概念,我很想听听你的建议!
-
'简洁'是我担心的部分 :) 我不久前建立了一个完全一样的设置(遗憾的是对于内部站点,所以无法共享链接)但 CSS 是如此复杂到连我的同事都看不懂呵呵。
标签: css width css-position flexbox fixed