CSS在内部表上使用:not()选择器

CSS在内部表上使用:not()选择器,css,css-selectors,ajaxcontroltoolkit,Css,Css Selectors,Ajaxcontroltoolkit,我正在使用AjaxControlToolkit,主页CSS也会影响内部的“日历”弹出窗口 我已经将所有内容简化为一个简单的1页示例,展示了我想要什么、我尝试了什么以及“丑陋的解决方法”。我正在寻找一个合适的CSS解决方案 所有信息如下例所示: table.my_table_padding{边框折叠:折叠;} /*起点(看起来一团糟)*/ /*table.my_table_padding tr td{padding:20px;背景色:绿黄色;}*/ /*我的尝试(都没有成功)*/ /*:not(

我正在使用AjaxControlToolkit,主页CSS也会影响内部的“日历”弹出窗口

我已经将所有内容简化为一个简单的1页示例,展示了我想要什么、我尝试了什么以及“丑陋的解决方法”。我正在寻找一个合适的CSS解决方案

所有信息如下例所示:

table.my_table_padding{边框折叠:折叠;}
/*起点(看起来一团糟)*/
/*table.my_table_padding tr td{padding:20px;背景色:绿黄色;}*/
/*我的尝试(都没有成功)*/
/*:not(.ajax_calendar)table.my_table_padding tr td{padding:20px;背景色:橙色;}*/
/*:not(div.ajax_calendar)table.my_table_padding tr td{padding:20px;背景色:橙色;}*/
/*解决方法是一团糟和可怕的问题-在单个类中使用:not()有更好的方法吗*/
table.my_table_padding tr td{padding:20px;背景色:绿黄色;}
div.ajax_uucalendar table.my_table_padding tr td{padding:0;背景色:白色;}

标题文本
示例文本。。。示例文本…
文本在这里 标题文本 见: 弹出日历控件 森蒙特韦德苏弗里萨 1234567 891011121314
要使CSS仅应用于父表,除了
:not
,还需要使用(
)。如果没有子组合符,内部
仍然与规则匹配,因为内部
(被
:not
排除)的后代也是外部
(不被
:not
排除)的后代

将子组合器与
表格
tr
tbody
一起使用。选择器的最终结果如下:

:not(.ajax__calendar) table.my_table_padding > tbody > tr > td
这将使你在大部分的道路上到达那里。但是,您的内部
表将与外部表具有相同的背景,除非中间有什么设置。我选择直接在
.ajax\uuu calendar
上设置它,但您可以选择将它放在外部
td
的任何后代上(背景色正在设置)

table.my_table_padding{边框折叠:折叠;}
:not(.ajax\u calendar)>table.my\u table\u padding>tbody>tr>td{padding:20px;背景色:绿黄色;}
/*这是必要的,因为内部表格的透明背景将与外部表格的绿黄色背景不同。这可以根据需要设置为不同的级别*/
div.ajax_uu日历{背景色:白色;}

标题文本
示例文本。。。示例文本…
文本在这里 标题文本 见: 弹出日历控件 森蒙特韦德苏弗里萨 1234567 891011121314
你的问题很不清楚。您希望所有CSS都不影响
?您的尝试失败主要是因为您正在自下而上运行选择器。CSS不是这样工作的。CSS以“级联”方式工作:自上而下。我认为您的问题不在于
:not()
选择器。实际上,您需要CSS中不存在的父选择器。@ThomasBennett的可能副本-我在一个遗留项目中已经有了“起点”css-我想找到一个修改它的方法,这样日历弹出窗口就不会受到现有填充的影响-我希望我可以使用某种“table.my padding”(表不是ajax_calendar类中任何元素的子元素)谢谢-这很好,很清楚。(背景色只是为了演示)我现在可以看出我原来的:not()不够精确,因此仍然适用于所有表,而不仅仅是外部表。