IE8的第一个孩子和最后一个孩子

Bro*_*ato 60 css css-selectors internet-explorer-8

我有一些css用于调整表格中的内容.

这里是:

.editor td:first-child
{
    width: 150px; 
}

.editor td:last-child input,
.editor td:last-child textarea
{
    width: 500px;
    padding: 3px 5px 5px 5px;
    border: 1px solid #CCC; 
}
Run Code Online (Sandbox Code Playgroud)

它适用于Firefox,Safari和Chrome,但不适用于(此时)IE8.

我知道问题来自第一个孩子和最后一个孩子,但我不是专家.

知道如何解决这个问题吗?

PS:我添加<!doctype html>了我的HTML文档,但没有任何改变.

Bol*_*ock 68

如果您的表格只有2列,您可以轻松地td使用相邻的兄弟选择器到达第二列,IE8支持以下内容:first-child:

.editor td:first-child
{
    width: 150px; 
}

.editor td:first-child + td input,
.editor td:first-child + td textarea
{
    width: 500px;
    padding: 3px 5px 5px 5px;
    border: 1px solid #CCC; 
}
Run Code Online (Sandbox Code Playgroud)

否则,你将不得不使用一个JS选择库如jQuery,或手动添加一个类的最后td,由詹姆斯·阿勒代斯的建议.

  • +1很棒的解决方案 谢谢.(`除了myne是.rowClose> td + td + td + td + td + td + td`)http://i.stack.imgur.com/08jym.jpg (2认同)

Jam*_*ice 34

由于:last-child是CSS3伪类,IE8不支持它.我相信它:first-child是受支持的,因为它在CSS2.1规范中定义.

一种可能的解决方案是简单地给最后一个孩子一个类名和样式.

另一种方法是使用JavaScript.jQuery使这个特别容易,因为它提供了一个:last-child应该在IE8中工作的伪类.不幸的是,当DOM加载时,这可能会导致无格式内容的闪现.

  • jQ确实很好用,只需添加到我的全局.js <link>`$(".bordTL th:last-child").css("border-right","1px solid black");`它是一个小清理所以被推迟一秒钟并不是很恶劣. (4认同)