flex布局与position:absolute/fixed的冲突问题
2019-05-15 15:17
801 查看
之前笔者在开发项目的过程中就遇到了这个坑,flex布局与position:absolute/fixed的冲突问题。后来想到了解决办法,今天就与大家一起交流一下:
项目实战:
我们现在想做一个头部的导航栏,又想用fixed把它固定在上方,又想用弹性盒布局去设置它内部的样式,可是发现其中的弹性盒布局已经失效了。
HTML代码如下:
<ul> <li>协会简介</li> <li>协会章程</li> <li>协会架构</li> <li>资料下载</li> </ul>
CSS代码如下:
ul { position: fixed; display: flex; justify-content: space-between; margin: 0 15px; background: pink; } li { flex: 1; list-style: none; height: 100px; line-height: 100px; text-align: center; font-size: 30px; border: 1px solid #fff; }
效果如下:
我们可以发现弹性盒布局已经失效了,那么我们如何解决这个问题呢?
其实很简单,只需要在ul的外面再套一个盒子就可以了。然后外层盒子使用定位,内层盒子正常使用弹性盒布局。
HTML改变后的代码为:
<div class="nav-box"> <ul> <li>协会简介</li> <li>协会章程</li> <li>协会架构</li> <li>资料下载</li> </ul></div>
CSS改变后的代码为:
.nav-box { width: 100%; position: fixed; } ul { display: flex; justify-content: space-between; margin: 0 15px; background: pink; } li { flex: 1; list-style: none; height: 100px; line-height: 100px; text-align: center; font-size: 30px; border: 1px solid #fff; }这时候我们发现问题已经迎刃而解了!
相关文章推荐
- IE6/IE7下绝对定位position:absolute和margin的冲突问题解决
- inline元素、inline-block元素在float、position:fixed、position:absolute之后出现的问题
- CSS定位问题--position--static\absolute\relative\fixed
- 移动端内容显示在一页时,虚拟键盘输入与position:fixed的冲突问题解决
- IE6和IE7下绝对定位position:absolute和margin的冲突问题解决
- HTML静态网页的格式与布局(position:(fixed、absolute、relative)、分层、float(left、right))
- HTML静态网页的格式与布局(position:(fixed、absolute、relative)、分层、float(left、right))
- position:absolute和position:fixed元素位置和宽度高度的问题
- CSS布局模型 之 层模型(position的relative、absolute与fixed区别?)
- 打开input输入的时候,css中position:absolute/fixed定位的时候,定位元素上移问题解决
- IE6和IE7下绝对定位position:absolute和margin的冲突问题解决
- Position属性四个值:static、fixed、absolute和relative的区别和用法
- position:absolute 的div 无法cursor:pointer 的问题
- 解决IE6不支持position:fixed;的问题
- 适配android和iOS上position:absolute和input问题
- position为absolute的居中问题
- position:relative|absolute|fixed:各自的特性
- js,css三种方法解决IE6下position:fixed的Bug以及闪动问题
- 解决 IE6 position:fixed 固定定位问题
- Chrome浏览器下调试flex项目时出现安全沙箱冲突的问题