2016-07-05 46 views
-1

我正在尝试做一些CSS艺术的东西,我只是给divs着色并且使它们脱离线条。起初我喜欢这个使用nth-child(n)与scss和&:nth-​​child给孩子不同的类

<a href='#'></a> 

和造型通过

[href*='#'] { 
    &:after { ..css} 
    &:after { ..css} 
    &:after { ..css} 
} 

这样做,但事实证明,你不能在CSS 3使用超过2个伪元素,我觉得呢?

所以我转向了一种新的解决方案,因为我期望在艺术中使用超过3个子元素。于是我发现了:第n个孩子(n)的选择,

所以我想我可以去:

[href*='#'] { 
&:nth-child(1) { ..css} 
&:nth-child(2) { ..css} 
&:nth-child(3) { ..css} 
} 

与HTML看起来像

<a href='#'> 
<div></div> 
<div></div> 
<div></div> 
</a> 

,但它仅创建第一儿童风格:o

+0

这是上海社会科学院或CSS? – Kld

+0

@Kld sass对不起! – lopu

+0

一个div:nth-​​child(1){..css} 一个div:nth-​​child(2){..css} 一个div:nth-​​child(3){..css} 看看这个工作。 –

回答

1

你不是针对divs。用途:

<a href='#'> 
    <div>1</div> 
    <div>2</div> 
    <div>3</div> 
</a> 

SCSS:

[href*='#']{ 
    >div{ 
    &:nth-child(1) { color: green } 
    &:nth-child(2) { color: blue } 
    &:nth-child(3) { color: red } 
    } 
} 

JSFiddle

+0

是啊,即使只是一个{div {bla bla}}的作品。那是奇怪的行为不是吗?从我一直在阅读的文档中,您打算使用:孩子父母中的第n个孩子选择那些孩子,而不是实际的孩子。谢谢,虽然它工作:) – lopu

+0

这取决于你需要选择。 'div {}'也行,但是这会选择DOM中的每个div,所以你必须小心你在做什么。这里有一篇关于'nth-child'的好文章 - [如何进行小孩工作](https://css-tricks.com/how-nth-child-works/) – Vucko

+0

哦,我明白你的意思了,非常感谢你:) – lopu

0

你不需要&,只有当你想创建一个更具体的选择

[href*='#'] { &:nth-child(1)} => [href*='#']:nth-child(1){} 
使用

这里你需要一个空间

[href*='#'] { :nth-child(1)} => [href*='#'] :nth-child(1){} 



[href*='#'] { 
    :nth-child(1) { background-color: red;} 
    :nth-child(2) { background-color: yellow;} 
    :nth-child(3) { background-color: green;} 
} 

[href*='#'] :nth-child(1) { background-color: red;} 
 

 
[href*='#'] :nth-child(2) { background-color: yellow;} 
 

 
[href*='#'] :nth-child(3) { background-color: green;}
with the html looking like 
 

 
<a href='#'> 
 
<div>One</div> 
 
<div>Two</div> 
 
<div>Three</div> 
 
</a>