AJAX加载后奇怪的CSS优先行为

时间:2016-08-03 14:41:31

标签: javascript css ajax

我试图弄清楚我是如何在AJAX加载的页面上丢失我的CSS优先级。我在主页面上加载我的自定义CSS,因此应该允许我的CSS覆盖任何bootstrap CSS。通过AJAX加载新内容后,bootstrap会覆盖我的自定义CSS。我可以通过浏览器调试看到bootstrap覆盖了属性。

自定义CSS样式:

.mytableclass td {
font-size: small;
text-align: center;
vertical-align: middle;}

由于bootstrap没有设置font-size或text-align,所以它适用得很好,但是我的vertical-align被覆盖了。我没有在AJAX加载页面中再次加载CSS文件。必须有某种原因,但几个小时后我无法理解。

2 个答案:

答案 0 :(得分:0)

由于你没有发布Bootstrap CSS类定义,我猜它是一个CSS选择器优先级问题。

Bootstrap CSS选择器比你的更具体吗? Then it gets priority over any CSS loaded later。将您的选择器设置为特定或更具体,或应用!important指令,但不建议这样做(另请参阅ITCSS)。

答案 1 :(得分:0)

在其他所有内容之后加载特定的CSS不会给它任何优先级。您要做的是确保它具有更具体的选择器。 (你也可以使用!important,但这是一个黑客,我不推荐它,除非你无法得到任何其他工作。

如果.mytableclass td是选择器引导程序使用的,请考虑在其前面添加一些内容。即body .mytableclass td。或者你可以进入HTML本身并添加一个你只用作AJAX CSS中的选择器的id。