flex布局與position:absolute/fixed的沖突問題


https://blog.csdn.net/weixin_43606158/article/details/90237258

 

之前筆者在開發項目的過程中就遇到了這個坑,flex布局與position:absolute/fixed的沖突問題。后來想到了解決辦法,今天就與大家一起交流一下:

項目實戰:
我們現在想做一個頭部的導航欄,又想用fixed把它固定在上方,又想用彈性盒布局去設置它內部的樣式,可是發現其中的彈性盒布局已經失效了。

HTML代碼如下:

<ul>
<li>協會簡介</li>
<li>協會章程</li>
<li>協會架構</li>
<li>資料下載</li>
</ul>
1
2
3
4
5
6
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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
效果如下:

我們可以發現彈性盒布局已經失效了,那么我們如何解決這個問題呢?
其實很簡單,只需要在ul的外面再套一個盒子就可以了。然后外層盒子使用定位,內層盒子正常使用彈性盒布局。

HTML改變后的代碼為:
<div class="nav-box">
<ul>
<li>協會簡介</li>
<li>協會章程</li>
<li>協會架構</li>
<li>資料下載</li>
</ul>
</div>
1
2
3
4
5
6
7
8
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;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
這時候我們發現問題已經迎刃而解了!

 

四川省奇呱科技有限公司
關注

6

6

10


專欄目錄

 

Ay__________:
ul {
position: fixed;
top: 0;
left: 50%;
/* 位移達到居中效果*/
transform: translateX(-50%);
/* calc 達到15px左右邊距效果*/
width: calc(100% - 30px);
/* 剩下部分和博主一樣 */
display: flex;
justify-content: space-between;
background: pink;}
這樣不加盒子也能達到效果.9 月前回復


————————————————
版權聲明:本文為CSDN博主「四川省奇呱科技有限公司」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43606158/article/details/90237258


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM