Html 目标是组中的最后一个div
我需要在每个Html 目标是组中的最后一个div,html,css,siblings,Html,Css,Siblings,我需要在每个之前针对最后一个。有没有一种编程方式可以在css中实现这一点 出于其他原因,我不能/不想将目标定为 <div id="main"> <h3>Title</h3> <div class="post">…</div> <div class="post"><!-- Target this div--></div> <h3>Title</h3&
之前针对最后一个
。有没有一种编程方式可以在css中实现这一点
出于其他原因,我不能/不想将目标定为
<div id="main">
<h3>Title</h3>
<div class="post">…</div>
<div class="post"><!-- Target this div--></div>
<h3>Title</h3>
<div class="post">…</div>
<div class="post">…</div>
<div class="post">…</div>
<div class="post"><!-- Target this div--></div>
<h3>Title</h3>
<div class="post">…</div>
<div class="post">…</div>
<div class="post"><!-- Target this div--></div>
</div>
标题
…
标题
…
…
…
标题
…
…
实际上这是不可能的。
如果您能够将块包装到父标记中,则可以通过CSS选择器#main.post:last child
:
<div id="main">
<div> <!-- wrap with "h3" WORKS -->
<h3>Title</h3>
<div class="post">…</div>
<div class="post"><!-- Target this div--></div>
</div>
<h3>Title</h3>
<div> <!-- wrap without "h3" also WORKS -->
<div class="post">…</div>
<div class="post">…</div>
<div class="post"><!-- Target this div--></div>
</div>
</div>
标题
…
标题
…
…
注意:IE8和早期版本不支持:last-child选择器
你说“由于其他原因,我不能/不想成为目标”是什么意思
jQuery解决方案的工作方式与原始标记的工作方式完全相同:
var $Main = jQuery('#main');
$Main.find('h3').prev().add( $Main.find(':last') ) //.text('<!-- Target this div-->');
var$Main=jQuery('#Main');
$Main.find('h3').prev().add($Main.find(':last'))/.text('');
在将来的某个时候,当实施以下措施时:
#main div:not(:has(+ div))
选择后面没有h3的最后一个div的标准是什么?恐怕CSS3中没有事先选择的兄弟姐妹。你仍然可以用Js来做,如果不改变你的标记,你就不能用CSS来做。如果您将每个部分放在它自己的元素中,那么就很容易使用Lal提到的
最后一个子元素伪选择器。@j08691 each.post将有边框底部和边距底部。我不希望最后一个。在发布之前发布这些样式,因为这看起来很尴尬。我意识到我可以实现border top和margin top,但是我会重写规则,因为我所有的样式都遵循一种特定的、一致的模式,将边距和边框应用到元素的底部。感谢所有的反馈。我想这也不可能。我想避免将每个组包装在另一个div中,但这似乎更现实。另外,jQuery('h3').prev()
如果没有太多的选择器,那就太好了。如果你不能恰当地处理你的情况,那就发布你所有的情况。例如,如果您使用php生成代码,您甚至可以在生成标记时处理它。也许你需要一个propper解决方案的灵感……jQuery解决方案将错过最后一个元素。我刚刚找到一篇关于我刚才看到的文章,这让我相信父选择器可能是css3的一部分。另外,saw可能用作polyfill,但对于一个实例来说就太过了。不,CSS3中没有父选择器。当然,如果你想使用polyfill,我个人不会使用jQuery插件。