我一直在玩Javascript来修改我的页面的背景和主题,http://www.gfcf14greendream.com/,这样它在每个季节都会显示不同的背景,这很有效。现在,由于以前所有的东西都是绿色的(我是一个怪胎),我一直在尝试根据背景将div标签的字体颜色更改为可读的颜色(目前我在夏季背景上使用紫色,rgb(128, 0, 128)
,但如果有人认为有更好的颜色,请告诉我),它已经奏效了,使用以下行:
var divs = window.parent.document.getElementsByTagName('div');
for (var i = 0; i < divs.length; i++) {
divs[i].style.color = "rgb(128, 0, 128)";
}
它确实有效,对于我更改的这些页面(由于我仍在测试,所以我没有全部更改)http://www.gfcf14greendream.com/smssender.html,http://www.gfcf14greendream.com/employmentassistant.html。但是,虽然它似乎适用于这个页面,http://www.gfcf14greendream.com/programs.html,表中的div不受影响(如下面的div:)
<td align="center">
<div style="text-align: center; color:#00FF00; font-size: 15px">
<font color="#00FF00">December 16th, 2012</font>
</div>
</td>
那么,为什么<table>
标签中的div没有被识别呢?我是否应该认为表已经过时(有人告诉我它们很邪恶),并尝试使用CSS用div格式化表?
由于<font>
标记的原因,目前这不起作用。div样式受到了影响,但是其中的字体标记不允许您看到更改。删除字体标记,您应该会看到一些内容。
话虽如此,您根本不应该使用<font>
标签。W3告诉我们,HTML5将其归类为不符合要求的功能,并且"……真的,不要使用它。"
div, div font {
color: rgb(128, 0, 128) !important;
}
我还会在正文中添加一个季节类(如<body class="summer">
),这样我就可以根据季节创建多种样式:
.summer div, .summer div font { color: rgb(128, 0, 128) !important; }
.winter div, .winter div font { color: rgb(0, 0, 255) !important; }
这是因为这些div具有"style"属性,它们覆盖了您用JS分配的属性。然而,最好使用CSS,而不是像@bfavaretto所说的那样神奇:)
更新。我一点也不正确,问题是font标记有"style"属性,这些重写属性是您分配给它们的父级div的。
div的颜色被修改了,但文本没有,这是因为你的文本实际上在"font"标签中
我看到你的页面引用了jquery,试着使用这个:
$('div,div>font').css('color','rgb(128,0,128)')