2014-01-20 59 views
0

我指的是here的CSS代码。我创建了一个示例HTML和CSS文件,如图所示,它工作正常。但是,我想在其他地方使用此代码,其中ul,li已经使用另一个CSS文件定义了样式。所以,我搜索了一下,并在这种情况下阅读,解决方案是使用特定的ID元素,因此他们将被区分。谁能告诉如何ID添加到下面的CSS,因为我很困惑,因为他们的父母与子女的CSS代码嵌套..将ID添加到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等元素样式时,我可以使用'#header ul'代替这个元素在其他CSS中使用的样式,而不是'ul'?那么如何编写上面的CSS的ID? – tigerden

回答

0

在HTML中,你会发现在特定的上行和li元素,并添加标识=“unique_name”(即:)。然后,在CSS中,您可以添加#unique_id来设置该元素的样式。例如:

HTML

<ul id="myUL"> 

CSS

#myUL { 
    background: red; 
} 
+0

是的,但是如何编写以上CSS中提到的元素的id?我尝试在每个块的开头添加'#header',但是它的功能正常。 – tigerden

3

关注这个语义结构...

你的HTML:

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

你的CSS:

nav#mainmenu ul { 
    ... 
} 

nav#sidemenu ul { 
    ... 
} 

这应该允许从那里区别。

+0

好吧,试试这个.. – tigerden

0

如果你想你的CSS适用于特定的导航对象,你可以只更换导航在CSS中使用您的ID这样

.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中您通过使用#

所以其ID访问的成员,如果你设置ul li一个nav具有ID myNav里面你会写

nav#myNav ul li {...}

牢记当然,该ID在HTML存在(并可以通过标准仅每个ID存在一次)

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

0

元素后ID添加到CSS规则,只要加入#和ID识别码,如(无空格!):

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

你可以不使用IDS只包括您所提供的css相同的结果在你提到的现有的之后。只要第一个CSS中的规则不是更具描述性,第二个CSS文件中定义的相同元素的规则将优先,我相信您希望在这里完成这些规则。

+0

由于ID是唯一的,所以没有理由在一行放置两个ID,除非用逗号分隔它们(这是我认为你的意思)。 'ul#fisrtUlId,ul#secondUlId {...}' –