【问题标题】:CSS Last-Child Selector - affecting all my DIVs?CSS Last-Child Selector - 影响我所有的 DIV?
【发布时间】:2010-09-28 21:45:39
【问题描述】:

我有以下

CSS

.streamBox {
 font-size:12px;
 background-color:#EDEFF4;
 border-bottom:1px solid #E5EAF1;
 margin-top:2px;
 padding:5px 5px 4px;
}
.streamBox:last-child {
   border: none;
}

HTML

<ul id="activityStream">

 <li class="story">
  <div class="streamBox nobkgcolor" id="">
  Stuff
  </div>
 </li>

 <li class="story">
  <div class="streamBox nobkgcolor" id="">
  Stuff
  </div>
 </li>

 <li class="story">
  <div class="streamBox nobkgcolor" id="">
  Stuff
  </div>
 </li>

</ul>

我认为最后一个子选择器会成功,所以最后一个 DIV 没有边框...但是现在所有 DIV 都没有边框?是吗?

关于如何使用 CSS 使最后一个 div 没有边框的建议?

谢谢,

【问题讨论】:

  • 不知道是不是拼写错误,但&lt;div class="box&gt;blah blah&lt;/div&gt; 你错过了"。另外,您在哪个浏览器中进行测试?

标签: css css-selectors


【解决方案1】:

更新问题:

您的选择器需要调整,应该是:

li:last-child .streamBox {
  border: none;
}

&lt;div class="streamBox"&gt; 是 其 父级的第一个和最后一个子级,因此您当前的选择器匹配所有这些子级,而不是您希望在最后一个 &lt;li&gt; 中使用 &lt;div&gt;,所以使用&lt;li&gt;、you can test it here 上的 :last-child(我将边框改为黑色以使其更明显)。

上一个问题: 这是因为您在 class="" 属性上缺少引号,请像这样修复它:

<div class="box">blah blah</div>
<div class="box">blah blah</div>
<div class="box">blah blah</div>
<div class="box">blah blah</div>​​​​

然后它将按预期工作,前 3 个有边框,you can test it here。

【讨论】:

  • @Fincha - 这是唯一的问题,我评论了你的回答为什么......你可以在演示中看到这是唯一的问题。
  • 奇怪,对我来说就是这样。也许我的示例代码没有展示问题...在我的问题中更新了上面编辑的代码...此外,此内容正在使用 jQuery 注入到 DIV 中...不确定这是否有影响。谢谢你的想法?
  • @WozPoz - 你的例子不同,因为你需要这个选择器:li:last-child .streamBox,&lt;li&gt; 是最后一个孩子,而不是&lt;div&gt;,&lt;div&gt; 都是第一个它的最后一个子元素是&lt;li&gt;,所以所有.streamBox 元素都匹配该选择器。
  • 哇。我永远也想不通。你真是个天才。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-02-18
  • 1970-01-01
  • 2012-03-02
  • 1970-01-01
  • 2017-01-31
  • 2021-08-08
  • 2010-12-13
  • 1970-01-01
相关资源
最近更新 更多