使用:last-child定位课程

时间:2015-08-20 17:50:16

标签: css

我有一个班级.side-box { margin: 0 10px 10px 0; },我要做的是定位DOM中的最后一个.side-box并使用 no jquery margin-right: 0;应用于它>和没有额外的课程来覆盖margin-right。通过这种方式,我只有padding: 10px;包裹三个方框。

我试过了:

.side-box:nth-child(2) {
     margin-right: 0;
}

.sidebars:last-child {
     margin-right: 0;
}

但没有奏效。我究竟做错了什么?感谢。

FIDDLE HERE http://jsfiddle.net/qL7wx5pp/

2 个答案:

答案 0 :(得分:1)

你几乎得到了它。您想要选择最后一个markdown.replace ( /(\#+) *( +)/ig, "<h?>$2</hr?>"); ,然后在里面找到sidebars。像这样:

side-box

http://jsfiddle.net/qL7wx5pp/2/

答案 1 :(得分:1)

如果您阅读about last-child here,则说:

  

:last-child选择器匹配最后一个子元素的每个元素   其父母

我已突出显示其父级的最后一个孩子,因为这是导致您出现问题的原因。

您尚未将保证金应用于sidebars,而是应用于side-box 所以这不会做你想要的。

.sidebars:last-child {
     margin-right: 0;
}

现在要定位正确的side-box,您需要了解DOM的结构。

您的父母wrapper有3个孩子sidebars 要定位最后一个side-box,您需要定位最后一个sidebars

因此选择sidebars:last-child是正确的目标div。但是需要在side-box div上重置边距,该div再次成为上一个sidebars div的子项

所以正确的选择器是:

sidebars:last-child > side-box

side-box这是最后一个孩子sidebars的孩子。请参阅演示here