理解 nth-child(an + b):CSS3 中带有公式的选择器?

2023-11-21

The <i>用于第一个图标和子元素<div>应该有一个大图标。任何其他<i>任何的孩子<div>(但不是第一个)应该有一个中等大小的图标:

<div class="row list-item">
       <div class="span1">
           <i class="icon-user"></i>
       </div>

       <div class="span3">
           <div>
               <a href="#">Main Link</a> <i class="icon-male"></i>
           </div>
           <i class="icon-mail"></i> <a href="#">Link 2</a>
           <i class="icon-mobile"></i> <a href="#">Link 3</a>
       </div>
</div>

相关CSS:

.list-item > div:first-child {
    text-align: center;
}

.list-item i[class^="icon-"], .list-item[class*=" icon-"] {
    text-shadow: 3px 1px 2px rgba(0, 0, 0, 0.2);
}

/* Only i with icon-* class, where div is first child */
.list-item > div:first-child > i[class^="icon-"],
    .list-item > div:first-child > i[class*=" icon-"] {
    font-size: 60px;
    line-height: 80px;
}

/* Any i with icon-* class, where div is not first child */
.list-item > div:nth-child(1n+1) > i[class^="icon-"], 
    .list-item > div:nth-child(1n+1) > i[class*=" icon-"] {
    vertical-align: middle;
    font-size: 24px;
    line-height: 24px;
}

所以我在公式中使用了偏移量nth-child(an + b), with b = 1。也就是说偏移量是 1 所以首先<div>应该被跳过。但第一个大图标与最后一条规则匹配。我缺少什么?


The n in :nth-child()实际上是从零开始计数,而不是从一开始。来自spec:

价值a可以是负值,但只能是正值an+b, for n≥0,可以代表文档树中的一个元素。

虽然它说的是 1 的第一个孩子的索引,确实如此,但它指的是公式的结果,而不是值n。换句话说,第一个孩子由以下函数表示n计算结果为 1,而不是通过函数n where n = 0 or n = 1(以从哪个开始计数为准)。

所以公式:nth-child(1n+1)(或代数上等价的:nth-child(n+1)) 评估为n = 0 as:

  1n + 1
= 1(0) + 1
= 0 + 1
= 1

这会导致你的第一个div正在匹配。

你需要从2为了使伪类表示法按预期工作:

.list-item > div:nth-child(1n+2) > i[class^="icon-"], 
.list-item > div:nth-child(1n+2) > i[class*=" icon-"]

或者为了让事情变得更简单,您可以选择通用兄弟组合器~和这个结合:first-child反而:

.list-item > div:first-child ~ div > i[class^="icon-"], 
.list-item > div:first-child ~ div > i[class*=" icon-"]

如果重要的话,这还有 IE7/IE8 支持的额外好处。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

理解 nth-child(an + b):CSS3 中带有公式的选择器? 的相关文章

  • 排版(字母)的某些部分响应窗口的宽度/高度?

    我不确定这样的事情是否可以通过 CSS 实现 但是这个社区中的才华横溢的人们已经多次证明我错了 所以我们开始吧 我想知道字母的某些水平部分是否可能O U and E可以在保持其位置的同时响应窗口的宽度吗 在下图中 我绘制了响应式排版如何对窗
  • Animate.css - 等待动画完成后再继续

    我目前正在使用 Animate css 为我正在创建的应用程序制作动画 我正在寻找一种方法来等待动画完成后再继续 这是我认为可行的方法 但没有 任何帮助表示赞赏 myDiv addClass animated flipOutY functi
  • CSS 中水平 div 之间的自动间距

    我进行了很多搜索 但我并不幸运地找到了我所追求的解决方案 问题是 我创建了一个主 div 宽度 100 其中有几个内部 div 你可以在这里看到它 http jsfiddle net EAkLb 1 http jsfiddle net EA
  • 背景图像动画使用css3还是jquery? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 谁能帮我了解如何像这个网站上那样为背
  • 当有浮动块时,如何使用 CSS 缩进列表项?

    当我在文档中使用浮动图像时 我观察到一种相对奇怪的行为 列表项缩进是相对于 红线 而不是 绿线 进行的 为什么会发生这种情况 我可以解决这个问题吗 img p some text p ul li aaabbbul gt p some oth
  • React - 防止标签切换时焦点脱离模式

    我自己构建了一个反应模式 当我在模式打开时按 Tab 键时 焦点仍然转到背景页面 如何将焦点限制在模态框内的组件内 下面的逻辑应该是什么 onKeyPress e if e keyCode 9 e preventDefault logic
  • 如何在div内部垂直顶部对齐div?

    我试图在 div 内顶部对齐 div 但没有成功 http jsfiddle net jhbs31xv http jsfiddle net jhbs31xv table style border 1px solid red width 10
  • 表排序器,无法正确按日期排序

    如果存在空格 表排序器的行为是否会有所不同 我对 tablesorter 还很陌生 但有人要求我快速将其添加到客户网站 特别是允许他们按发布日期排序 据我所知 日期 例如 2012 年 5 月 14 日 被读取为文本 因此我需要添加一个解析
  • 将变量从 SASS 导出到普通 CSS?

    考虑一下我有一长串不同的 SASS 变量 scss像这样的文件 app color white ffffff app color black 000000 将这些变量导出为普通 CSS 变量的最有效方法是什么 root app color
  • 为什么html表格单元格的边框颜色不改变?

    如何使单元格的左边框变为红色 为什么这不起作用 谢谢
  • CSS 主体宽度未填充 100%

    我正在开发一个网页 我注意到这个问题 Please post anything you get in mind it will be very helpful 检查网站here http dev mariachi com br europe
  • 我无法在项目中使用节点波本威士忌

    我尝试对 scss 文件使用 npm 模块 波本威士忌 我收到以下错误 with function var paths Array prototype slice call arguments return concat apply bou
  • Jquery - Fancybox - 后台页面移位问题

    Fancybox 加载良好 所有内容都按照我想要的方式打开 但问题发生在后台 可以看到 并且令人不安 当盒子加载并返回到盒子上的正常位置时 我的整个页面向右移动了 8 个像素关闭 我无法链接到该网站 因为它位于我们公司防火墙后面的开发服务器
  • 当内容悬停时变为粗体时防止表格扩展

    我正在处理一张表格 其中一个要求是每一行在悬停时变为粗体 我可以正常工作 但是当发生这种情况时 列的宽度会发生变化 有什么办法可以防止这种情况发生吗 table width 100 border 1px solid ccc margin t
  • 使用 CSS 修复自定义字体行高

    在我正在开发的新网络应用程序上使用自定义字体时 我遇到了一个奇怪的问题 这种自定义字体 FF DIN 似乎具有自然垂直的偏离中心的行高 这迫使我放置一些顶部填充黑客来补偿按钮和输入等元素的顶部空间 示例 绿色字体 Helvetica Neu
  • 如何在响应式设计中禁用缩放功能?

    在使用 iPad iPhone 和 或其他智能手机时 如何禁用响应式设计页面中的放大和缩小功能 有什么办法可以控制吗 创建 META 视口标签 并设置用户可扩展属性为 否 如下所示 更新的答案
  • 溢出-x 不工作

    我正在尝试为我的画廊实现一个滑块 目前 CSS 存在溢出 x 无法正常工作的问题 我想要一个水平滑块而不是垂直滚动 这是fiddle http jsfiddle net nevinm 6H43f 请务必看一下 testimg height
  • 带有透明边框的响应式箭头进度条

    我正在尝试构建一个进度条 如结帐中常见的那样 问题是 箭头之间的边界是透明的 整个事情应该是反应灵敏 到目前为止我已经明白了 http codepen io MrBamblele pen rVBeoz http codepen io MrB
  • 使用 CSS 显示 div 内容后淡出

    我正在尝试在单击按钮时显示通知 单击按钮实际上会检查电子邮件验证 我知道要显示一个包含错误消息内容的 div 但是 我想淡出错误消息 比如说 5 秒后 我想用CSS来实现它 以下是我的尝试 它只是隐藏了一切 signup response
  • 三行无表 CSS 布局,中间行填充剩余空间

    我需要的是一个包含 3 行的基于像素高度的 div 最上面一行的高度根据内容而变化 底行具有固定高度 中间行填充任何剩余空间 一切都是宽度 100 我一直在努力构建一个 div 和基于 CSS 的布局几个小时 这让我从字面上看seconds

随机推荐

  • Hibernate多对多关联:左侧集合包含元素,但右侧集合为空

    我在持久层中遇到了多对多关联的问题 我的场景如下 一个用户可以拥有多个角色 一个角色可以附加多个用户 在测试过程中我遇到了一个奇怪的行为 我创建了角色对象和几个用户对象 该角色已设置给每个用户 此后 使用 DAO 保存用户 然后 在保存用户
  • 使用 SMTP 身份验证时通过 PEAR 发送 HTML 消息会返回错误

    我正在尝试在 PHP 中使用 SMTP 身份验证向 Gmail 发送 HTML 消息 这是我正在使用的脚本 require once Mail php require once Mail mime php from Some Name lt
  • 数据库未从资产文件夹复制到设备

    我的目录中有一个 db 文件assets文件夹 我已将其复制到data data
  • MPAndroidChart PieChart如何设置标签文本?

    得到以下代码 Legend legend mChart getLegend legend setLabels new String aaaaa bbbbb ccccc 此设置不生效 还有其他方法设置文本吗 我在 v3 0 0 中找不到方法
  • 委托/函数转换和误导性编译器错误消息

    我认为 F 函数和 System Func 之间的转换必须手动完成 但似乎存在编译器 有时 为您完成的情况 当出现错误时 错误消息不准确 module Foo let dict new System Collections Generic
  • 如何计算 MkMapview 中两点之间的距离?

    在 iPhone 应用程序中 如何计算两点之间的距离MKMapView如下图所示 第一个点将是地图视图中可见地图的中心点 第二个点将是地图视图的可见矩形的任何角 例如 这里我采用了左上角的点 我想以米为单位计算这个距离 我怎样才能做到这一点
  • 有权访问会话状态的 Global.asax 事件

    我正在尝试访问 global asax 中每个请求 页面 文档 PDF 等 的会话状态 我知道我不能在 Application BeginRequest 中执行此操作 并且我认为我可以在 Application AcquireRequest
  • SimpleForm 默认输入类

    我正在使用 SimpleForm Bootstrap 如何为所有属性添加属性type text 输入类 span12 输出类似这样的东西 div class controls div
  • 发送 HEAD 请求时 cURL 挂起 15 秒

    背景 我一直在使用 CLI 通过 CLI 对一些 HTTP 请求进行计时time和工具 例如wget and curl如下 usr bin time v wget spider http localhost index usr bin ti
  • Javascript 中带有负移位计数的左移

    我在 Javascript 中注意到的一件事 一个 Returns 0 when a even Returns 2147483648 when a odd 同样 当 1更改为其他一些 ve数字 有人可以解释一下幕后发生了什么位操作吗 或者行
  • Keras 中随时间变化的最大池化

    我正在使用 CNNKeras对于 NLP 任务 我尝试实现随时间推移的最大池化 而不是最大池化 关于如何实现这一目标有什么想法 技巧吗 我所说的最大随时间池化的意思是池化最高值 无论它们位于向量中的哪个位置 假设您的数据形状是 batch
  • 如何管理多个环境的 ASP.NET Core bundleconfig.json?

    使用 ASP NET Core 的最佳实践是什么bundleconfig json开发环境与生产环境 先前的捆绑器 捆绑集合 会注意 DEBUG 编译器指令 并且在调试时不会缩小脚本列表 看起来新的范式似乎是
  • Hg (Mercurial):有什么办法可以“留出”工作副本供以后使用吗?

    场景 在上次提交之后 您决定对代码库进行一些广泛的重构 一段时间后 您意识到花费的时间比预期的要长 您真的宁愿将重构推迟到另一时间 并致力于更紧迫的任务 但您不想丢失迄今为止所做的所有重构工作 那么 有没有办法 归档 或 分支 工作副本 本
  • 如何防止 PHP 中的 SQL 注入?

    这个问题的答案是社区努力 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 如果用户输入未经修改就插入到 SQL 查询中 则应用程序很容易受到攻击SQL注入 如以下示例所示 unsafe variable POST user input
  • Threejs:如何动态改变平面的宽度和高度?

    有没有办法轻松动态地改变平面的宽度和高度 下面的代码没有任何效果 plane geometry parameters width width plane geometry parameters height height 创建平面网格 va
  • 有人在同一个项目中使用过 Dojo 和 JQuery 吗?

    有人在同一个项目中使用过 Dojo 和 JQuery 吗 我需要一个 Dojo 面向对象的部分 仅此而已 和 JQuery 以便于演示 但我担心碰撞和名称冲突 是否可以在同一页面上使用两者 use jQuery noConflict 在编写
  • Unix 将月份名称转换为数字

    在 BASH shell 脚本或使用 gdate 中 给定像 2011 年 10 月 这样的日期 如何转换为年月数字格式 例如 输出应为 2011 10 mydate Oct 2011 date date printf 01 s mydat
  • ini 文件 - 从另一个 ini 文件引用变量

    如何从另一个 ini 文件解析变量 在下面的示例中 我想解析var a来自original configuration ini 并在 处使用它new configuration ini original configuration ini
  • 提取文件名 shell 脚本的一部分

    在 bash 中 我想提取许多文件名的一部分并将该输出保存到另一个文件中 这些文件的格式为 Coffee SOME NUMBERS I WANT freqdist bin sh for f in find name coffee freqd
  • 理解 nth-child(an + b):CSS3 中带有公式的选择器?

    The i 用于第一个图标和子元素 div 应该有一个大图标 任何其他 i 任何的孩子 div 但不是第一个 应该有一个中等大小的图标 div class row list item div class span1 i class icon