2014-01-20 5 views
0

Я имею в виду код CSS от here. Я создал образец html и CSS-файла, как показано здесь, и он работает нормально. Тем не менее, я хочу использовать этот код в другом месте, где ul, li уже определены стили, используя другой файл CSS. Итак, я немного искал и прочитал, что в этом случае решение должно использовать определенные идентификаторы для элементов, чтобы они отличались. Может кто-нибудь, пожалуйста, как добавить идентификаторы для следующих CSS, как я смущен, потому что их родитель-ребенок гнездятся в коде CSS ..Добавление идентификатора в CSS

nav ul ul { 
    display: none; 
} 

nav ul li:hover > ul { 
    display: block; 
} 

nav ul { 
    background: #efefef; 
    background: linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15); 
    padding: 0 20px; 
    border-radius: 10px; 
    list-style: none; 
    position: relative; 
    display: inline-table; 
} 

nav ul:after { 
    content: ""; clear: both; display: block; 
} 

nav ul li { 
    float: left; 
} 

nav ul li:hover { 
    background: #4b545f; 
    background: linear-gradient(top, #4f5964 0%, #5f6975 40%); 
    background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%); 
    background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%); 
} 

nav ul li:hover a { 
    color: #fff; 
} 

nav ul li a { 
    display: block; padding: 25px 40px; 
    color: #757575; text-decoration: none; 
} 

nav ul ul { 
    background: #5f6975; border-radius: 0px; padding: 0; 
    position: absolute; top: 100%; 
} 

nav ul ul li { 
    float: none; 
    border-top: 1px solid #6b727c; 
    border-bottom: 1px solid #575f6a; 
    position: relative; 
} 

nav ul ul li a { 
    padding: 15px 40px; 
    color: #fff; 
} 

nav ul ul li a:hover { 
background: #4b545f; 
} 
+0

Трудно понять, что вы здесь задаете. Но вы можете иметь несколько селекторов для блока стилей. Просто отделите их запятой. –

+0

Я пытаюсь спросить, когда я хочу различать стили элементов ul, li и т. Д., Которые используются в этом CSS из стилей тех же элементов в другом css, могу ли я написать '#header ul' вместо 'ul'? Тогда как писать идентификаторы для CSS? – tigerden

ответ

0

В HTML, вы найдете конкретные уль и литиево элементы и добавить идентификатор = "unique_name" (т.е.:). Затем в CSS вы добавите #unique_id для стилирования этого элемента. Например:

HTML

<ul id="myUL"> 

CSS

#myUL { 
    background: red; 
} 
+0

да, но как точно написать идентификаторы элементов, упомянутых выше в CSS? Я попытался добавить '# header' в начало каждого блока, но он не работает. – tigerden

3

Выполните эту семантическую структуру ...

Ваш HTML:

<nav id="mainmenu"> ... </nav> 
<nav id="sidemenu"> ... </nav> 

Ваш CSS:

nav#mainmenu ul { 
    ... 
} 

nav#sidemenu ul { 
    ... 
} 

Это должно позволить отличиться оттуда.

+0

Хорошо, попробуйте это. – tigerden

0

Если вы желаете, чтобы применить CSS к конкретному объекту нав, можно просто заменить нав в CSS с вашим идентификатором, как этот

.newId ul ul { 
    display: none; 
} 

.newId ul li:hover > ul { 
    display: block; 
} 

.newId ul { 
    background: #efefef; 
    background: linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%); 
    background: -webkit-linear-gradient(top, #efefef 0%,#bbbbbb 100%); 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15); 
    padding: 0 20px; 
    border-radius: 10px; 
    list-style: none; 
    position: relative; 
    display: inline-table; 
} 

.newId ul:after { 
    content: ""; clear: both; display: block; 
} 

.newId ul li { 
    float: left; 
} 

.newId ul li:hover { 
    background: #4b545f; 
    background: linear-gradient(top, #4f5964 0%, #5f6975 40%); 
    background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%); 
    background: -webkit-linear-gradient(top, #4f5964 0%,#5f6975 40%); 
} 

.newId ul li:hover a { 
    color: #fff; 
} 

.newId ul li a { 
    display: block; padding: 25px 40px; 
    color: #757575; text-decoration: none; 
} 

.newId ul ul { 
    background: #5f6975; border-radius: 0px; padding: 0; 
    position: absolute; top: 100%; 
} 

.newId ul ul li { 
    float: none; 
    border-top: 1px solid #6b727c; 
    border-bottom: 1px solid #575f6a; 
    position: relative; 
} 

.newId ul ul li a { 
    padding: 15px 40px; 
    color: #fff; 
} 

.newId ul ul li a:hover { 
background: #4b545f; 
} 

Это будет применять данный CSS к объекту нав с id "newId".

0

В CSS вы доступа к элементу с помощью его идентификатора с помощью #

так что если вы должны были установить ul li внутри nav, который имеет идентификатор myNav вы бы написать

nav#myNav ul li {...}

иметь в виду, этот идентификатор, конечно, должен существовать в вашем html (и может быть стандартным только один раз на один идентификатор)

<nav id="myNav"><ul><li>.....</li></ul></nav>

0

добавить идентификаторы правил CSS, просто добавить # и идентификатор ID после элемента, как (без пробелов!):

nav ul#fisrtUlId ul#secondUlId { 
    display: none; 
} 

Вы можете получить тот же результат без использования идентификаторов просто включая CSS вы предоставили после того, как вы упомянули. Пока правила в первом css не являются более описательными, правила для тех же элементов, определенных во втором файле css, будут иметь приоритет, и я полагаю, что вы хотите выполнить здесь.

+0

Поскольку идентификаторы уникальны, нет причин помещать два идентификатора на одну строку, если вы не разделяете их запятой (что, как я думаю, вы имели в виду). 'ul # fisrtUlId, ul # secondUlId {...}' –

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