2016-01-26 211 views
0

我已經設置了兩個div元素,其中半透明漸變背景設置爲其中一個,彼此重疊。其中之一是標頭的高z-index和半透明漸變,另一個是導航欄。兩種div顏色混合並且都顯示在標題上。重疊的透明背景

如何只顯示標題?我到處尋找,但我不知道該怎麼做。

下面是代碼:

#container { 
    position: relative; 
    height: 100vh; 
    box-sizing: border-box; 
    background-color: DodgerBlue; 
} 
#header { 
    position: relative; 
    margin: 0 auto; 
    height: 80px; 
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.2) 25%, rgba(255, 255, 255, 0.2) 75%, rgba(255, 255, 255, 0) 100%); 
    box-sizing: border-box; 
    border-radius: 0 0 20% 30%; 
    z-index: 1; 
} 
#nav { 
    position: absolute; 
    top: 0; 
    left: calc(15% + .5px); 
    width: 10%; 
    height: 100%; 
    box-sizing: border-box; 
    background-color: cornflowerblue; 
} 

而且一峯解釋,其中的問題:

enter image description here

+2

不這樣做正是你告訴它做什麼?您設置透明度,因此您可以看到底層元素。如果你不希望你需要在沒有透明度的情況下工作,並使用不同的藍色色調 – Fester

+0

在這裏有更多的選擇,將你的第二個背景放在你的標題下方,爲這個部分分別使用不同的色調。然後應用背景圖像 –

+0

您可以嘗試在您的'#nav'上應用漸變,使它從底部是'cornflowerblue',頂部是'DodgerBlue',這樣就可以實現與背景相同的顏色,這將使它看起來透明。 – AGE

回答

0

好吧,所以我找到了這種情況的解決方案。 您需要創建另一個div(我在示例中給出了id="header_glow"),使其與標題div的尺寸相同,並且僅爲此div設置background: linear-gradient。標題div應該有純色背景。同時給予div s z-index,它們彼此相等並且大於導航z-index

CSS代碼:

#header { 
    position: relative; 
    margin: 0 auto; 
    height: 80px; 
    background-color: DodgerBlue; 
    border-radius: 0 0 20% 20%; 
    z-index: 1; 
} 
#header_glow { 
    position: absolute; 
    margin: 0 auto; 
    top: 0; 
    left: 0; 
    right: 0; 
    height: 80px; 
    border-radius: 0 0 20% 20%; 
    background: linear-gradient(90deg, 
    rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.3) 25%, rgba(255, 255, 255, 0.3) 75%, rgba(255, 255, 255, 0) 100%); 
    z-index: 1; 
} 
#nav { 
    position: absolute; 
    top: 0; 
    left: calc(15% + .5px); 
    width: 10%; 
    height: 100%; 
    background-color: cornflowerblue; 
} 

See Attached pic

0

不幸的是你的CSS代碼描繪絕對位置的導航,因此是重疊的頭。

你應該刪除絕對位置,否則會出現流血,因爲一個在另一個下面 - 你不能通過css在交叉點處剪裁元素。

你可以添加一個僞元素:在導航之前給出一個高度和寬度,並且絕對pos左上方是一個固定的十六進制值,甚至是白色,然後是an:after元素覆蓋不透明度,但這是一個真正的黑客方式,並建議你改變標記/ CSS來顯示你想要在導航和標題的父容器上的顏色。

0

我不能評論,所以這是我的解決方案:只需更改頂部:0;頂部:80px;你的導航風格,它會分開然後

+0

由於邊界半徑,標題在所需位置處彎曲。這樣做會在彎曲區域的元素之間留下間隙。 – user5842084

+0

你可以玩邊框半徑:0px 5px 0px 0px; –