

如上图所示,黑色是已经有框架布局。彩色是新的需求。 就是添加一个工具栏,有一个 button 。按下它,就会弹出一菜单。菜单需要和 button 左侧对齐。
button & menu 都是现成的组件
下面这个是我画出来的 
// 我自己设想的结构 <div class="toolbar"> <div class="container"> <div class="mybutton"> if showmenu && ( <menu />) // 我们框架是 react 的,点击 button,改变 state,显示 /隐藏 menu </div> </div> </div> .toolbar { position: absolute; top: 广告栏 top + height + 5px; left: 0; } .container { position: absolute; top: 0; left: 0; display: flex; flex-direction: column; // 我本来是想让 button 和 menu 在 flex 的作用下,自己对齐,结果不工作。 } // menu 是一个 legacy 组件,内部有很复杂的计算 top, left 等等的计算。现在是和打开它的 button 居中对齐。 请教一下大家,这样的布局怎么做比较好? 是直接用 position 算?还是用 flex 把内部的框起来?
大概怎么写这个 css 布局?
谢谢!
p.s.改 legacy code,还要写 css, 真是......
1 lllllliu 2020-11-12 14:29:42 +08:00 恕我眼拙。。看不懂第二个图。爱莫能助 |
2 kop1989 2020-11-12 14:40:29 +08:00 1 、整个网页本身就可以做 flex 布局。最大的 flex 横向排列,包含广告栏+一个纵向排列的 flex,命名为 B (包含广告、toolbar,以及下面的部分)。这样能解决绿框穿透到左侧的问题。 2 、button 没有被红框容纳,说明 container 和 mybutton 样式有冲突,F12 调试一下看看。 |