- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
我有以下结构:
<div class="elementWrapper">
<div>1. Element</div>
<div>2. Element</div>
<div>3. Element</div>
<div class="alternate">1. Element with spec. Class</div>
<div class="alternate">2. Element with spec. Class</div>
<div class="alternate">3. Element with spec. Class</div>
<div class="alternate">4. Element with spec. Class</div>
<div class="alternate">5. Element with spec. Class</div>
<div>9. Element</div>
<div>10. Element</div>
<div>11. Element</div>
</div>
前后可以有未知数量的多个元素,我不可能在 class="alternate"的元素周围添加一个“包装”div。 (在那里一切都会好起来的)。
我想给第一个 .alternate 元素一个顶部边框,最后一个 .alternate 元素一个底部边框。所有 .alternate 元素的每一行(偶数/奇数)都应该有不同的背景颜色。
我尝试过不同的方法,我知道 nth-of-type 和 nth-child 不会工作,因为我的 .alternate 元素周围没有包装 div,所以它不能工作,因为所有元素都计算为偶数/奇数等等。
所以我把问题和可能的解决方案写成了笔:
http://codepen.io/emjay/pen/RpyyOo
我想问你,在不改变结构的情况下,最好的方法是什么。是否有仅适用于 CSS 的解决方案?
感谢您的帮助!
最佳答案
对于第一个问题(将 border-top
添加到第一个 .alternate
元素并将 border-bottom
添加到最后一个 。 alternate
元素),您可以通过将 border-top
单独添加到:
.alternate
元素紧跟在执行 :not()
的元素之后有 .alternate
类,并且,.alternate
类的元素紧跟在一个有的元素之后。如果第一个 .alternate
元素之前没有元素,您还需要将 border-top
添加到 .alternate
元素也是 :first-child
并且,如果在最后一个 .alternate
之后没有元素,则需要添加 border -bottom
到 .alternate
元素,它也是 :last-child
。
对于关于“斑马条纹”的第二个问题,.alternate
元素,假设奇数或偶数元素是否具有交替的 background
无关紧要,您可以使用一个简单的 :nth-of-type()
(或 :nth-child()
)伪类。但是,如果您需要第一个 .alternate
元素始终具有相同的 background
而不管其前面的元素数量如何,您将需要求助于 JavaScript - 它是可能单独使用 CSS,但需要荒谬数量的选择器(参见 this answer 作为示例)。
(function(){
var wrappers=document.querySelectorAll(".elementWrapper"),
x=wrappers.length,
divs,y,alt;
while(x--){
divs=wrappers[x].querySelectorAll(".alternate");
y=divs.length;
alt=!(y%2);
while(y--)
divs[y].classList.add((alt=!alt)?"odd":"even");
}
})();
/** JQuery **/
//$('.alternate:odd').addClass('odd')
//$('.alternate:even').addClass('even');
.elementWrapper>div:not(.alternate)+div.alternate,
.elementWrapper>div.alternate+div:not(.alternate),
.elementWrapper>div.alternate:first-child{
border-top:1px solid #000;
}
.elementWrapper>div.alternate:last-child{
border-bottom:1px solid #000;
}
.elementWrapper>div.alternate.odd{
background:#ccc;
}
.elementWrapper>div.alternate.even{
background:#eee;
}
/** Uncomment below for CSS-only zebra-striping **/
/*.elementWrapper>div.alternate:nth-of-type(odd){
background:#ccc;
}
.elementWrapper>div.alternate:nth-of-type(even){
background:#eee;
}*/
/** "housekeeping" **/.elementWrapper{background:#fff;color:#000;margin:0 0 20px;}.elementWrapper>div{font-family:sans-serif;font-size:14px;overflow:hidden;padding:5px;text-overflow:ellipsis;white-space:nowrap;}
<div class="elementWrapper">
<div>1. Element</div>
<div class="alternate">1. Element with spec. Class</div>
<div class="alternate">2. Element with spec. Class</div>
<div class="alternate">3. Element with spec. Class</div>
<div class="alternate">4. Element with spec. Class</div>
<div class="alternate">5. Element with spec. Class</div>
<div>9. Element</div>
</div>
<div class="elementWrapper">
<div>1. Element</div>
<div>2. Element</div>
<div class="alternate">1. Element with spec. Class</div>
<div class="alternate">2. Element with spec. Class</div>
<div class="alternate">3. Element with spec. Class</div>
<div class="alternate">4. Element with spec. Class</div>
</div>
关于css - 以第一个、偶数/奇数和最后一个元素为目标,带有类,没有包装器,以及其他元素(nth-of-class 行为):),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42972528/
我有一个包含多个数字的数组: int[] tab = {1,2,3,4}; 我必须创建两个方法,第一个是 sum() 方法,第二个是 numberOdd()。 这一步就OK了! int length
我一直在研究这个简单的待办事项列表,现在正处于调试阶段。当我实现不同的更改时,我观察到以下情况 保留列表中的所有项目:我添加 1 项,没问题。我添加了 2 个项目,但没有任何效果 - 无法标记完整/不
我想仅在未引用的术语中将 | 替换为 OR,例如: "this | that" | "the | other" -> "this | that" OR "the | other" 是的,我可以分割空格
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 7 年前。 Improve this ques
我在一些练习中得到了这个示例代码,它展示了如何查找整数是奇数还是偶数。 int x = 4; if ( (x & 1) == 0 ) { System.out.prin
我无法制作简单的 JavaScript 来获取文本框中的数字,并在单击按钮时返回结果。 function check() { var v=document.getElem
我是一名初学者,我正在尝试创建一个程序,该程序将生成仅由偶数组成的数字,并四舍五入到最接近的偶数。 例子: 135 --> 200 2700 --> 2800 我有一个代码,但每当我尝试打印它时,数字
我正在尝试编写一个程序,它将接受两个数字并根据它们的值返回两个都是奇数,两个都是偶数,或者 A 是奇数而 B 是偶数,等等。 我设法让程序检查一个变量,但如果我添加第二个变量,我会得到一个我不期望的输
这是一个带有数据和下一个属性的标准链表。 这就是我正在尝试的: class Node { constructor(data, next) { this.data = data;
我有一个正则表达式问题,我不知道该怎么做。它必须匹配开头包含任意数量的 a 的所有字符串,然后如果 a 的数量是偶数则匹配单个 0,如果 a 的数量是奇数则匹配单个 1。 如何跟踪偶数/奇数? 示例
我试图在数组中执行一个循环,对内容进行排序并创建每个具有 2 个值的 div。 尝试了很多东西,但我不知道我需要做什么。 这就是我需要做的:在数组中循环并创建 div。每个 div 应该有 2 个数组
您好,想知道是否有更简单的方法来显示奇数/偶数。我知道我可以做一个 for 循环并加载一个列表。然后我可以写另一个for循环遍历列表并检查值是否为奇数/偶数: for(i=0; i i % 2 ==
我正在尝试改变边距以使图像上下呈之字形。我发现this article很接近,但将一项更改应用于所有 .brochureImg 类。我做错了什么? HTML GP &
我编写这个方法来重新排列两个堆栈的元素,使堆栈 s1 只包含偶数整数,堆栈 s2 只包含奇数整数。并且 s1 或 s2 中不应存储任何零。 public static void rerange(sta
我需要帮助才能将未知整数分成给定数量的偶数部分——或者至少尽可能地均匀。各部分之和应为原值,但各部分应为整数,且应尽可能接近。 参数 num: Integer - 应该被分成相等部分的数字 parts
我在这里想做的是由偶数消费者打印偶数,由奇数消费者打印奇数。 有一个 evenodd 方法,它基本上消耗任何数字并打印(无论是偶数还是奇数)。我有 2 个偶数消费者线程、2 个奇数消费者线程、2 个偶
已关闭。此问题需要 debugging details 。目前不接受答案。 编辑问题以包含 desired behavior, a specific problem or error, and the
谁能帮忙。我必须编写一个程序,让用户输入 10 个数字。并将这些数字按奇数(升序)和偶数(降序)排序。 例如:输入:2、8、7、13、23、9、34、11、1、16输出:1、7、9、11、13、23、
给定两个列表,我想合并它们,以便第一个列表中的所有元素都是偶数索引(保留它们的顺序),第二个列表中的所有元素都是奇数索引(也保留它们的顺序)。示例如下: x = [0,1,2] y = [3,4] r
我有一个表,对列和行进行求和,并显示求和的结果。我必须改变每个总数的颜色。如果是偶数,则将其设置为“绿色”。如果是奇数,则将其设置为“红色” 这是我的 table :
我是一名优秀的程序员,十分优秀!