Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 目标是组中的最后一个div_Html_Css_Siblings - Fatal编程技术网

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插件。