IE10忽略了css中的第一个孩子并适用于所有人?

时间:2014-02-18 15:42:58

标签: css css-selectors internet-explorer-10

我要做的是使用此CSS删除select的下拉箭头:

.Gender:first-child::-ms-expand {
    display: none;
}

禁用select元素,并以编程方式设置其内容。它仍然是一个选择,因为我们的“独特”滚动你自己的绑定方法将是一个巨大的更新/更新。

基本上我有一节为动态人数输入基本信息。第一个实例始终是主实例,它的数据来自页面的另一部分,因此它在此处被禁用并绑定到其他形式的值。其后的每个其他条目都是可编辑的。我们的想法是从第一个选择中删除下拉箭头,因为它们是只读的。我知道即使丢失了下拉箭头,选择继续工作,但我仍然希望它可以用于其他每个未禁用的选择。

我知道它适用于简化的JSFiddle,但在我的网站中,ALL选择让这些类隐藏其下拉箭头。我可以在我的网站中查找哪些内容绕过:first-child伪类?为什么它可能在小提琴中起作用而在实际的场地中不起作用?

我正在阅读的所有内容都是为了检查您的文档类型。我的是<!DOCTYPE html public "-//W3C//DTD HTML 4.0 Transitional//en">。我发现没有人明确说明要使用的确切文件类型,因此这可能不是100%正确。

此外,这只需要在IE10中运行,它是一个永远不会在其他地方运行的内部Web应用程序。

1 个答案:

答案 0 :(得分:1)

匹配:first-child的特定元素的每个实例的唯一最常见原因(当只有第一个匹配时)是每个元素实际存在于其自己的容器元素中。这是一个例子:

<div class='parent'>
  <select class='Gender'>
    <option>Male</option>
    <option>Female</option>
  </select>
</div>
<div class='parent'>
  <select class='Gender'>
    <option>Male</option>
    <option>Female</option>
  </select>
</div>
<div class='parent'>
  <select class='Gender'>
    <option>Male</option>
    <option>Female</option>
  </select>
</div>

此处,每个.Gender都是其父元素.parent的第一个也是唯一的子元素。另一方面,.parent元素本身是彼此的兄弟姐妹,共享相同的父元素(未示出)。根据源的外观,可能很难确定源中这些父元素的位置,但只要您的标记有效,它们就应该在某处。

如果它确实成为问题,修复它是微不足道的 - 只需将:first-child伪类移动到适当的元素:

.parent:first-child .Gender::-ms-expand {
    display: none;
}

Updated fiddle