2010-03-24 2 views
1

В моем основном файле CSS у меня есть мой переключатель ссылок: link для отображения ссылок в белом.Переопределение ссылки:

a:link{ 
color: white; 
} 

Однако, я хочу, чтобы ссылки в другом DIV (.menuItem) были черными.

Я пытаюсь

.menuItem a:link{ 
color: black; 
} 

не могу показаться, чтобы заставить его работать, так что это, вероятно, неправильно ..

Может кто-нибудь протянуть руку на это?

ответ

2
.menuItem a:link{ 
color: black !important; 
} 
+3

Это не идеальное решение - должно быть возможно использовать каскадный эффект для выполнения этой работы. –

+0

@Grant Palin: это правильно, css может сортировать «переопределить» общее определение стиля с более конкретным. Поэтому иметь важное значение или нет не должно быть критически важным для решения –

0

Работа над образцом кода сейчас. Но имеет ли ваш тег div идентификатор элемента меню или класс menuItem? Это мое предположение.

Отредактировано: Okay, теперь я вижу. ! Если вы разделяете CSS в другой файл и использовать ссылку тег, чтобы импортировать его, то это должно быть хорошо без использования важной команды, увидеть это:

body {background-color : green;} 

a:link{ color : white;} 

.menuItem a:link 
{ 
color : black; 
} 

И это:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="en-US"> 
<head profile="http://gmpg.org/xfn/11"> 
<meta http-equiv="Content-type" content="text/html; charset=utf-8"> 
<title>Test page</title> 
<link rel="stylesheet" href="master.css" type="text/css" media="screen" title="no title" charset="utf-8"> 
</head> 
<body> 
<div> 
    <a href="#">This is a link</a> 
</div> 
<div class="menuItem"> 
    <a href="#">This is a link in div menuItem</a> 
</div> 
</body> 
</html> 

Надеюсь, это поможет :)

Все еще, если я вставляю фрагмент css в html, то это не сработает ... Интересно, почему?

+0

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

+0

@ Chacha102: теперь я вижу вашу проблему, работая над ней, чтобы ее разрешить ... –

2

Что касается Chacha102, я не думаю, что решение идеально. !important - это kludge, и лучшим способом справиться с этим было бы использование структуры документа, чтобы добавить определенную специфику. Предполагая, что ваши .menuItem элементов общего родитель, возможно, div с идентификатором menu, вы могли бы пересмотреть свое меню конкретного стиля ссылок следующим образом:

#menu a:link { 
    color: black; 
} 

Лишняя специфичность должна привести к более конкретным правилам вступили в силу для эти пункты меню.

+0

Это хорошее предложение для структуры html, но я считаю, что проблема связана с вложением css прямо в html-страницу или нет. Если вы возьмете мой пример кода и получите доступ к нему в XAMP, вы увидите эту разницу. Поэтому, с учетом первоначального вопроса, да, это возможно, я боюсь, что это должны быть два файла, а не один. –