2014-10-29 135 views
0

我需要更改元素a,而我在元素b中。我可以设法这样做只使用CSS/HTML是我的问题?我可以用css输入标签吗?

li:active{ 
    img{ 
     border:1px solid black; 
    } 
} 
+0

我不知道我是否理解你是正确的,你在找什么像'li:active + img {border:1px solid black;}'? – Nick 2014-10-29 09:03:38

+1

http://css-tricks.com/child-and-sibling-selectors/ – 2014-10-29 09:04:11

+0

嘿@Nick感谢您的downvote我刚刚删除,但我没有错。下一次阅读链接之前,你downvote。你甚至不明白这个问题。 – JGallardo 2014-10-29 09:24:07

回答

0

没有,但是有什么可以做的是更具体一点与您的选择 - 请尝试以下操作:

li:active img{ 
    border:1px solid black; 
} 

一路顺风!

2

你会想要...

li:active img { 
    border:1px solid black; 
} 

这将风格li:active所有img元素。如果你只想风格后者立即的后裔,你将需要:

li:active > img { 
    border:1px solid black; 
} 

,我建议你在克里斯Coyier的文章“Child and Sibling Selectors”念起来了解更复杂的CSS。此外,还有更复杂的基于位置关系的CSS选择器,如li:active + imgli:active ~ img,但这超出了本答案的范围。

但是,您建议的实际上可以使用SASS,这是一个CSS预处理器。

0

你可以这样来做:

li:active img{ 
    border:1px solid black; 
} 
0

可以使用后代选择:li:active img {boder:1px solid black;}或孩子选择li:active > img {boder:1px solid black;}如果imgli

0

CSS3的直接子允许嵌入式选择哪里有条件。有效的嵌套使用CSS CSS3规范的一个例子是:

@media screen and (max-width:800px) { 
    ul { 
     float: none; 
     max-width: auto; 
     width: auto; 
    } 
    div:first-of-type { 
     display: none; 
    } 
} 

这里设置的条件是设置嵌套这些样式当media类型是screen(又名台式机),并且不大于800像素(max-width: 800px)。

0

你可以做,而不是执行以下操作:

li:active img{ 
    border:1px solid black; 
} 

你指的语法在CSS类似nested rules预处理器,如LESS。浏览器本身不支持此语法,而必须将其编译为有效的CSS语法。

#header { 
    color: black; 
    .navigation { 
    font-size: 12px; 
    } 
    .logo { 
    width: 300px; 
    } 
} 

变为:

#header { 
    color: black; 
} 
#header .navigation { 
    font-size: 12px; 
} 
#header .logo { 
    width: 300px; 
} 

http://lesscss.org/features/#features-overview-feature-nested-rules

+0

'less'的问题是定义变量并因此限制重复并使其更容易更改,但它不是一种自然语言,它只是由浏览器直接解释,因为它必须“编译”为css运行。尽管你是相似的。 – 2014-10-29 09:13:03

+0

@SanuelJackson没错。我永远不会建议客户端处理,但是我认为对LESS/SASS等预处理器的服务器端预编译有巨大的好处。 '无点'例如是我们使用的http://www.dotlesscss.org/ – Curt 2014-10-29 09:15:11

+1

我还没有挖得太深/较差的兔子洞(时间问题),但我确实看到,语言是绝对有用的。它确实为那些使用标准CSS的人提供了一个曲线球,但如果OP有时间,这绝对值得学习 - 我自己也包括在内。 – 2014-10-29 09:19:13

0
li:active img{ 
border: 1px solid black; 
} 

这是正确的答案,如果你想使用2类或任何1条你把他们在开始。 注意:要连接2个元素,请使用空格。 希望这有助于。

相关问题