2014-01-20 2 views
2

я использовал это для стилизации панель навигации моего веб-страницы, но цвет не меняется на паренияцвет фона не меняется на парения CSS

.nav { 
    list-style-type:none; 
    margin:0; 
    padding:0; 
    overflow:hidden; 
} 

.nav li { 
    float: left; 
} 

.nav li a:hover,.nav li a:active { 
    background-color:#7A991A; 
} 

.nav li a:link,.nav li a:visited { 
    display:block; 
    width:9em; 
    font-weight:bold; 
    color:#FFFFFF; 
    background-color:#98bf21; 
    text-align:center; 
    padding:4px; 
    text-decoration:none; 
    text-transform:uppercase; 
} 

HTML код:

<ul class = "nav"> 
     <li><a href="index.html">Home</a></li> 
     <li><a href="products.html">Our Products</a></li> 
     <li><a href="aboutus.html">Contact us</a></li> 
</ul> 

кто-то может предложить то, что я сделал не так?

+0

Можете ли вы включить html? То, что сразу приходит на ум, - это задаться вопросом, действительно ли элемент «a» имеет высоту. – Semicolon

+0

Пожалуйста, добавьте скрипку. –

+0

@Wisam http://jsfiddle.net/BcJR8/ –

ответ

3

Либо добавить !important здесь:

.nav li a:hover,.nav li a:active { 
    background-color:#7A991A !important; 
} 

Или переместить свойства :hover:active) после тех, для :link.

+0

Его работа. большое спасибо! но я не понимаю, в чем проблема с написанием этого перед ': link'? – user3131961

+0

@ user3131961 CSS читается линейно сверху вниз, объявляя 'a: hover' перед' a', я предполагаю, что любое состояние объявлено до того, как 'a' будет переопределено. –

1

Заменить .nav a:link с .nav li a

demo

.nav li a, .nav li a:visited { 
    /*here^^^*/ 
      display:block; 
      width:9em; 
      font-weight:bold; 
      color:#FFFFFF; 
      background-color:#98bf21; 
      text-align:center; 
      padding:4px; 
      text-decoration:none; 
      text-transform:uppercase; 
     } 
+0

По-прежнему ту же проблему – user3131961

+0

@ user3131961: отлично работает в скрипке ..... проверьте демо, которое я дал !! – NoobEditor

+0

@ user3131961: у вас есть какой-нибудь другой 'nav' класс css тоже ... ?? – NoobEditor

1

Теперь это прекрасно работает на скрипке.

.nav { 
    list-style-type:none; 
    margin:0; 
    padding:0; 
    overflow:hidden; 
} 

.nav li { 
    float: left; 
} 

.nav li a:link,.nav li a:visited { 
    display:block; 
    width:9em; 
    font-weight:bold; 
    color:#FFFFFF; 
    background-color:#98bf21; 
    text-align:center; 
    padding:4px; 
    text-decoration:none; 
    text-transform:uppercase; 
} 

.nav li a:hover,.nav li a:active { 
    background-color:#7A991A; 
} 
1
.nav { 
    list-style-type:none; 
    margin:0; 
    padding:0; 
    overflow:hidden; 
} 

.nav li { 
    float: left; 
} 
.nav li a:visited{ 
    background-color:#98bf21; 
} 
.nav li a:hover,.nav li a:active { 
    background-color:#7A991A; 
} 

.nav li a{ 
    display:block; 
    width:9em; 
    font-weight:bold; 
    color:#FFFFFF; 
    background-color:#98bf21; 
    text-align:center; 
    padding:4px; 
    text-decoration:none; 
    text-transform:uppercase; 
} 
0

Ваш a:hover покрывается a:link или так далее.

Я думаю, поскольку a:hover имеет такой же уровень с a:link, класс Css в нижнем положении файла имеет более высокий приоритет.

Вы можете обратиться к этому:

resolve css conflict

0

Вот demo.

.nav { 
    list-style-type:none; 
    margin:0; 
    padding:0; 
    overflow:hidden; 
} 

.nav li { 
    float: left; 
} 

.nav-link { 
    display:block; 
    width:9em; 
    font-weight:bold; 
    color:#FFFFFF; 
    background-color:#98bf21; 
    text-align:center; 
    padding:4px; 
    text-decoration:none; 
    text-transform:uppercase; 
} 

.nav-link:hover,.nav-link:active { 
    background-color:#7A991A; 
} 
  1. это не очень хорошая практика, чтобы гнездо слишком много тегов, дать ему класс.
  2. используйте :link :visited :hover :active только в том случае, если вы хотите переписать стили по умолчанию.
  3. css - это каскадная таблица стилей, порядок имеет значение, поместите .nav-link сначала, чтобы нормализовать стили по умолчанию, а затем перезаписаны по умолчанию с помощью :hover и :active.
  4. !important не является хорошей практикой здесь, просто измените порядок.
+0

Я попробовал. он работал, но потом я понял, что когда я нажимаю на ссылку, цвет остается прежним. – user3131961

Смежные вопросы