我正在和别人的代码一起工作,整个网站建立在一个非常恼人的桌面结构上,每个<td>元素的宽度都是100%...如果我有时间,我不会在这里问这个,只是重写整个darn的东西,但它是一个相当大的网站,需要几周时间才能重写,我需要jquery插件数据表才能工作.但是,由于#container td { width: 100%; padding: 0; }主要样式定义中的条目,整个表格完全搞砸了:-(
那么......有没有办法让CSS在所有表上使用这些默认定义除了<table id="exception">它应该忽略这些设置而不是使用数据表附带的那些?
问题是优先级 - table.dataTable td { padding: 3px 10px; }例如,datatables有代码,因为#container td优先级被忽略了
再说一次,就像我想的那样,我现在不能搞乱原有的网站结构.我可以编辑某些项目的width: 100%数据表CSS,但我还必须以一种STILL允许数据表实现自己的定义的方式删除这一个表的内容......
我在这个网站上使用jQuery作为一个页面,所以也许我可以使用它来清除这些定义,但那时也将清除由datatables设置的定义......
想法(除了"不要使用表格")?
当然你可以通过略微调整它来做到这一点(除非我误读):
table:not(#exception) {
/* Target all tables except the one with ID exception. */
}
Run Code Online (Sandbox Code Playgroud)
可能会有其他轻微的调整,但这取决于布局.
该:not选择器支持所有主流浏览器,而不是在旧版本的IE(8之前).解决此问题的一种方法是使用Selectivizr库.
"Selectivizr是一个JavaScript实用程序,可以在Internet Explorer 6-8中模拟CSS3伪类和属性选择器.只需在页面中包含脚本,选择器将完成剩下的工作."
正如你提到的那样你正在使用DataTables,你使用的是jQuery,因此使用Selectivizr只是意味着包含<script>,然后:not将在旧版本的IE(6-8)中运行.