0

美好的一天......是的,我是一个noob。因此,我为我的无名之辈道歉。我已经搜索了这个网站,很多人都喜欢它一个星期,但没有任何解决方案。我相信我的问题是独一无二的。

我有一个包含大约 10 个页面的网站,我正在创建其中有很多很多表格。大多数表格的格式都相同,所以我立即使用 CSS 来满足我的需要。

所以现在我正在尝试理解 CSS 和选择器以及如何组合它们等。

这是我的困境。我为标签创建了一个标签样式,<td>它在我所做的大约 95% 的事情上都非常有效。当我想左对齐并缩进时,我还为这些实例创建了一个“覆盖”类<td>

TD {                
            text-align: center;
            vertical-align: middle;
            all other rules;}

td.overide_l {
            text-align: left;
            vertical-align: middle;
            padding-left: 1em;
            all other rules;}

我的问题来自一个公司控制的 javascript,它创建了一个左侧导航菜单。显然,该代码中有受我的规则影响的 td。问题是 javascript 不是我可以更改的东西。这是保存在公司网站上的公司脚本,但需要在我的每个页面上。

如果我将<td>样式更改为左对齐,则脚本将左对齐。如果我一起删除<td>标签,它将向左对齐。如果我让<td>样式中心像我想要的那样对齐,脚本中心对齐左导航,我不能覆盖它。

我已经尝试了一千件事。我试图将脚本放在一个单独的表中,其中包含类覆盖,我尝试将它放在一个单独的包围它的 td 中,我将 class="overide_l" 类放在<span>.

最后,我尝试创建<div>与 id 相关联的 's ,但随后我的 Class="overide_l" (以及我创建的大量其他类样式)在新 div 中不再工作......

div#content-section td {
            text-align: center;
            vertical-align: middle;}

最终,我想做的是将标签样式保留在本文顶部,并简单地创建一个<div>或其他东西来关闭<td>那段代码的标签样式。这甚至可能吗?

你能帮我么!

4

2 回答 2

1

你不能td用你的覆盖类做你对选择器所做的同样的事情吗?

#content-section td.overide_l {
  text-align: left;
  vertical-align: middle;
  padding-left: 1em;
}

问题是特异性:

  • ID 选择器 100 分

  • 类选择器 10 分

  • 1 用于标签选择器

如果将选择器相加,您将获得优先的选择器。

在你的情况下:

td.overide_l=11

div#content-section td=102

所以第二个赢了。改成td.overide_l#content-section td.overide_l成功111的。

于 2012-08-22T17:59:23.827 回答
0

您需要在这里做的是在您的 css 规则中更加具体。出于您在此处说明的原因,对所有元素 (td) 设置规则是一个坏主意。让代码中的表格具有不同的类,以便您的 CSS 规则知道它们与导航 tds 之间的区别。另外,如果你们经常使用桌子,你们会度过一段糟糕的时光。

于 2012-08-22T17:58:58.480 回答