2015-09-17 214 views
1

我有這個菜單被剪切,我很想知道是否有任何可能性來編輯CSS代碼,以便最終獲得2種顏色的菜單文本(初始和鼠標懸停)在透明背景上,將css文本transition從一種顏色應用到另一種顏色。css菜單懸停文本顏色

body { 
 
    font: normal 1.0em Arial, sans-serif; 
 
    background: #A8CBFF; 
 
} 
 

 
nav { 
 
    font-size: 3.0em; 
 
    line-height: 1.0em; 
 
    color: white; 
 
    width:6em; 
 
    height: 9.0em; 
 
    position:absolute; 
 
    top:0; bottom:0; 
 
    margin:auto; 
 
    left: -4.5em; 
 
} 
 

 
nav ul { 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 

 
nav ul li { 
 
    background-color: blue; 
 
    height: 1.0em; 
 
    padding: 0.25em; 
 
    position: relative; 
 
    border-top-right-radius: 0.75em; 
 
    border-bottom-right-radius: 0.75em; 
 
    -webkit-transition: -webkit-transform 500ms, background-color 500ms, color 500ms; 
 
    transition: transform 500ms, background-color 500ms, color 500ms; 
 
} 
 

 
nav ul li:nth-child(1) { background-color: #00aced;} 
 
nav ul li:nth-child(2) { background-color: #3b5998;} 
 
nav ul li:nth-child(3) { background-color: #517fa4;} 
 
nav ul li:nth-child(4) { background-color: #007bb6;} 
 
nav ul li:nth-child(5) { background-color: #cb2027;} 
 
nav ul li:nth-child(6) { background-color: #ea4c89;} 
 
nav ul li:hover { 
 
    background-color: #C1232D; 
 
    -webkit-transform: translateX(4.5em); 
 
    transform: translateX(4.5em); 
 
} 
 

 
nav ul li span { 
 
    display:block; 
 
    font-family: Arial; 
 
    position: absolute; 
 
    font-size:1em; 
 
    line-height: 1.25em; 
 
    height:1.0em; 
 
    top:0; bottom:0; 
 
    margin:auto; 
 
    right: 0.16666666666667em; 
 
    color: #F8F6FF; 
 
} 
 

 
a { 
 
    color: #FFF; 
 
    text-decoration: none; 
 
}
<nav> 
 
    <ul> 
 
    <li><a href="http://www.twitter.com">Category 1</a></li> 
 
    <li><a href="http://www.facebook.com">Category 2</a></li> 
 
    <li><a href="http://www.instagram.com">Category 3</a></li> 
 
    <li><a href="http://www.instagram.com">Category 4</a></li> 
 
    <li><a href="http://www.instagram.com">Category 5</a></li> 
 
    <li><a href="http://www.instagram.com">Category 6</a></li> 
 
    </ul> 
 
</nav>

我已經設置background-color:transparent;CodePen here想通了;但在這一點上,我不確定如何處理文本顏色,因爲如果我改變a {color: red;}例如,即使在鼠標懸停事件上,我也會獲得靜態顏色,而不是從一種文本顏色到另一種文本顏色的交叉淡化視覺效果。

+0

like [this](http://codepen.io/TylerH/pen/jbqagV?editors=110)? – TylerH

+0

種類,但仍然使用'css過渡':) –

+0

這是'a:hover {color:green;}'你想要什麼? – divy3993

回答

2

把它放在過渡工程中。您只需要將轉換屬性添加到選擇器,該選擇器選擇a,而不僅僅是li。具體來說,nav ul li:hover a { color: black; }

body { 
 
    font: normal 1.0em Arial, sans-serif; 
 
    background: #A8CBFF; 
 
} 
 
nav { 
 
    font-size: 3.0em; 
 
    line-height: 1.0em; 
 
    color: white; 
 
    width:6em; 
 
    height: 9.0em; 
 
    position:absolute; 
 
    top:0; 
 
    bottom:0; 
 
    margin:auto; 
 
    left: -4.5em; 
 
} 
 
nav ul { 
 
    list-style: none; 
 
    margin: 0; 
 
    padding: 0; 
 
} 
 
nav ul li { 
 
    background-color: blue; 
 
    height: 1.0em; 
 
    padding: 0.25em; 
 
    position: relative; 
 
    border-top-right-radius: 0.75em; 
 
    border-bottom-right-radius: 0.75em; 
 
    -webkit-transition: -webkit-transform 500ms, background-color 500ms, color 500ms; 
 
    transition: transform 500ms, background-color 500ms, color 500ms; 
 
} 
 
nav ul li:nth-child(1) { 
 
    background-color: #00aced; 
 
} 
 
nav ul li:nth-child(2) { 
 
    background-color: #3b5998; 
 
} 
 
nav ul li:nth-child(3) { 
 
    background-color: #517fa4; 
 
} 
 
nav ul li:nth-child(4) { 
 
    background-color: #007bb6; 
 
} 
 
nav ul li:nth-child(5) { 
 
    background-color: #cb2027; 
 
} 
 
nav ul li:nth-child(6) { 
 
    background-color: #ea4c89; 
 
} 
 
nav ul li:hover { 
 
    background-color: #C1232D; 
 
    -webkit-transform: translateX(4.5em); 
 
    transform: translateX(4.5em); 
 
} 
 
nav ul li:hover a { 
 
    transition: color, 1500ms; 
 
    color: black; 
 
} 
 
nav ul li span { 
 
    display:block; 
 
    font-family: Arial; 
 
    position: absolute; 
 
    font-size:1em; 
 
    line-height: 1.25em; 
 
    height:1.0em; 
 
    top:0; 
 
    bottom:0; 
 
    margin:auto; 
 
    right: 0.16666666666667em; 
 
    color: #F8F6FF; 
 
} 
 
a { 
 
    color: #FFF; 
 
    text-decoration: none; 
 
}
<nav> 
 
    <ul> 
 
     <li><a href="http://www.twitter.com">Category 1</a></li> 
 
     <li><a href="http://www.facebook.com">Category 2</a></li> 
 
     <li><a href="http://www.instagram.com">Category 3</a></li> 
 
     <li><a href="http://www.instagram.com">Category 4</a></li> 
 
     <li><a href="http://www.instagram.com">Category 5</a></li> 
 
     <li><a href="http://www.instagram.com">Category 6</a></li> 
 
    </ul> 
 
</nav>

你可以改變任何你想要的文字顏色,當然。

+0

我認爲還有一個誤解抱歉。如果你有機會將背景透明化,文本顏色不會從一個值「交叉淡入」到另一個值(你可以看到背景效果,這就是爲什麼在我使它透明之前將它留在那裏)。希望這可以澄清...我有興趣在透明背景上使用_only_文本,但是文字顏色從初始顏色變爲第二種預定義顏色。我認爲這與'-webkit-transition'部分有關。 –

+0

@ typo_78我不確定「透明背景上只有文字」或「兩種顏色的文字」是什麼意思。但是,我已經更新了我的答案,以顯示1.5秒內白色和黑色之間的轉換。 (另請注意,Chrome不需要用於「轉換」或「轉換」的前綴) – TylerH

+0

就是這樣!謝謝 :) –