CSS交替基于行的 float

标签 css css-float css-selectors

我不确定如何准确地称呼我的问题,因此标题晦涩难懂。

我的情况是这样的:

<div class="widget full">foobar</div>
<div class="widget half">left</div>
<div class="widget half">right</div>
<div class="widget half">left</div>
<div class="widget full">foobar</div>
<div class="widget full">foobar</div>
<div class="widget half">left</div>
<div class="widget half">right</div>

我让这些小部件根据奇数或偶数 css 左右浮动:

#main > div.widget.full { display: block; width: 100%; }
#main > div.widget.half { display: block; width: 49%; }
#main > div.widget.half:nth-child(2n+1) { float: right; }

前 2 个“半”的效果很好,但之后的 2 个被第 3 个“半”搞砸了。最后两个是“相反的顺序”。我需要的是某种重置或其他解决方案,将 div 放在正确的位置,而不管它们之间是什么。

如果没有 CSS 答案,我可以修复它在 PHP 中生成它们,但我更喜欢 CSS,因为它是一个样式问题。

提前致谢

最佳答案

不幸的是,您将无法仅通过 css 实现此目的。

这个选择器:

#main > div.widget.half:nth-child(2n+1)

不会查找 2n+1.widget.half 子元素,而是仅针对 .widget.half 元素是 1、3、5 等 child 。

关于CSS交替基于行的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17546481/

相关文章:

javascript - jQuery - 每次点击时将图像向左移动

css - 我怎么能写一个 css 选择器来选择 3 个元素,类名只有一个不同

css - 子元素 float 时的外部元素高度

html - CSS显示网格图像问题

jquery-selectors - 在用户脚本中,使用 querySelector() 与 jQuery 的 $() 有什么优势吗?

jquery - Jquery 中基于标签之间文本的选择器

php - 在wordpress中 float

html - 引用的字体 'sans-serif' 在 CSS 中无法正常工作

css - 不同高度的 float div,填充空白

css3 最后一个 child 没有按预期工作