Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CSS子选择器不';我不在ie9上工作_Css_Css Selectors - Fatal编程技术网

CSS子选择器不';我不在ie9上工作

CSS子选择器不';我不在ie9上工作,css,css-selectors,Css,Css Selectors,我有这样一个页面: <body> <table width="100%">...</table> <table width="100%">...</table> <table width="100%">...</table> <table width="100%">...</table> </body> 这在firefox和google chrome上运行得很好,但在ie9上

我有这样一个页面:

<body>
<table width="100%">...</table>
<table width="100%">...</table>
<table width="100%">...</table>
<table width="100%">...</table>
</body>
这在firefox和google chrome上运行得很好,但在ie9上似乎不起作用(没有测试过,但我确信它在早期的ie版本中不会起作用)

我试过很多他们写的关于类似问题的方法,但都不能解决这个问题

编辑:

页面的doctype为:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

我把它改成:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

现在它也可以在ie9上使用了


更新后的问题是:是否可以不更改doctype?

我把这个JSFIDLE放在一起,看起来它可以在IE9上工作:


正如易江所说,您的doctype声明不正确。IE9可能不知道该怎么做,所以返回并隐藏在它的怪癖模式外壳中,在那里它对子选择器(或者变成)视而不见

最简单也是最值得推荐的方法是更改doctype声明,以便将其恢复到标准模式并应用规则:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

但是正如您所看到的,那里的
*
选择器看起来不太友好,因此更改doctype肯定是更好的选择。

我确信子选择器本身工作正常。另一方面,CSS
width
规则可能会被忽略,因为
元素上有
width
属性。您是否尝试过从标记中删除
width=“100%”
无论如何,它真的不属于那里。选择器“不工作”与未应用CSS规则是一个完全不同的问题。啊,我将doctype从“4.01 Transitional”设置为“1.0 Transitional”,现在它似乎工作了。但我现在想知道,有没有一种解决方案可以在不改变doctype的情况下应用(我只是尝试使用css)(我没有设计这个网站,我不想编辑数百个文件)@conrad您的HTML 4过渡doctype看起来无效-请看@conrad:只使用HTML5 doctype:
。不是说它会解决您的问题,而是会将格式错误的doctype作为问题删除/不使用CSS重置的情况下,相同的fiddle是否工作?取消选中“规范化CSS”框。(很抱歉,我无法亲自测试,因为我现在离Windows计算机很近。)啊,我将doctype从“4.01 Transitional”设置为“1.0 Transitional”,现在似乎可以工作了。但我现在想知道,有没有一种解决方案可以在不改变doctype的情况下应用(我只是尝试使用css)(我没有设计这个网站,我不想编辑数百个文件)@Matt Ball很好的建议我在没有css重置的情况下尝试了它。我还尝试了HTML4.01过渡版和XHTL1.0过渡版标题。他们都在IE9工作。康拉德,我想这可能有助于你缩小问题的范围。我不认为这是一个问题与您的CSS选择器鉴于这个测试。您是否尝试验证该页面?也许它不是有效的HTML,这就是问题的根源。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
body { text-align:center; }
body table { text-align: left; margin: 0 auto; width: 85%; }
body * table { /* Styles for other tables */ }