【发布时间】:2018-10-25 23:56:11
【问题描述】:
Image showing overview of problem
我正在制作模块化的行/列布局,其中行中的列中的行的可变组合等。我正在使用 flex 属性使这些元素很好地适合页面。
CSS:
.row {
display: flex;
}
.column {
display: flex;
flex-direction: column;
flex: 1;
}
Here is a fiddle showing the effect I'm going for。请注意,列的大小与其内容成比例。
但是,我也使用 canvas 元素,为了实现多个绘图层,我将它们堆叠起来:
CSS:
.canvasarea {
position: relative;
}
.canvasarea canvas {
position: absolute;
}
Here's a fiddle showing this effect.
但是,当我尝试组合这些效果时,我得到了this unexpected result (fiddle)。它现在将列宽设置为屏幕的 50%,而不考虑子元素。
我已经尝试了所有我能找到的 flex 和 position 选项,但似乎无法将这两种效果放在一起。是否可以这样做,或者我是否通过使用 relative 来破坏 flex?我会很感激任何提示,我还是 CSS 新手。
【问题讨论】:
-
在第三个示例中,您使用的是
flex: 50%;,为什么会这样? -
@Abinthaha 很好——我最初使用的示例指定了
flex: 50%;,但在阅读后我意识到 50% 是任意的,它可以是任何正数并且功能相同(据我所知知道)。
标签: javascript html css canvas flexbox