我正在尝试在JS中创建的表中使用以下css代码,但似乎它没有得到任何样式,我不知道为什么。
所以这是代码: CSS代码:
<style type="text/css">
div.team
{
margin-right: 30%;
}
.team table
{
border-collapse: collapse;
}
.team table td
{
background-color: #4F5FAC;
border: 2px groove grey;
}
.team table th
{
font-style: italic;
background-color: #0B1260;
padding: 0 15px;
color: white;
border: 2px groove black;
}
.team tr td:first-child
{
color: yellow;
font-weight: bold;
text-align: center;
}
</style>
JS代码:
myWindow=window.open('table.html');
myWindow.document.write("<table class = 'team'>");
myWindow.document.write("<tr><td> שם פרטי: </td><td>" + document.reg.name.value + "</td></tr> <tr><td> שם משפחה: " + document.reg.lname.value + "</td></tr> <tr><td> אימייל: " + document.reg.email.value + "</td></tr> <tr><td> סיסמא: " +document.reg.password.value +"</td></tr>");
myWindow.document.write("</table>");
知道为什么我没有得到表的样式吗?(没有js的情况下工作) 提前谢谢!
答案 0 :(得分:6)
我至少看到四个问题:
table.html
。document.write()
,则会清除当前文档(包括您之前包含的所有样式规则)并启动新文档。因此,这些样式规则无法在table.html
文件中生效,因为您已清除该文档的先前内容。如果要将内容添加到现有页面而不破坏其当前内容和样式,则需要使用DOM插入API调用,如.append()
或.insertBefore()
或在现有DOM上设置.innerHTML
对象。.team table
必须为table.team
,.team table th
必须为:table.team th
。如.team table
中的标识符之间有空格,则表示您希望将table
对象与祖先class="team"
匹配。如果您想要一个同时为table
和class="team"
的对象,那么您必须在两个标识符之间没有空格,如下所示:table.team
。table.html
内容的同时向此新窗口添加内容,则必须等待加载(使用onload()
事件或其中一个{{1}在其内容准备好修改之前,您无法使用DOMReady
。要解决这一切,我建议:
这将样式规则放在正确的文件中,并将数据传递到新页面,同时保留用于在其页面内修改页面的代码(大大简化了维护)。
好的,假设您不需要table.html中的任何内容,您可以使用以下代码从头开始创建一个新窗口:
document.write()
您可以在此处查看此工作:http://jsfiddle.net/jfriend00/VLt8h/。样式规则将不适用于那里,因为css文件没有正确的完整URL。
答案 1 :(得分:1)
CSS <style>
元素仅适用于他们所在的页面。您正在打开一个全新的页面。它需要自己的CSS副本。
您可以将<style>
元素设为“id”,然后复制它。
<style id='page-style'> ... </style>
然后:
var myWindow=window.open('table.html');
myWindow.document.write('<style>' + document.getElementById('page-style').innerHTML + '</style>');
// ... your code to build the table
在Internet Explorer上,我认为你需要“innerText”而不是“innerHTML”。
无论如何,将样式保存在单独的样式表中可能会更好。
答案 2 :(得分:0)
尝试为您的团队成员使用双引号(&#34;&#34;)。
答案 3 :(得分:0)
将CSS上传到文件,然后使用以下代码段将css加载到打开的页面上。
myWindow=window.open('table.html');
var cssLink = document.createElement("link")
cssLink.href = "iframestylefile.css";
cssLink .rel = "stylesheet";
cssLink .type = "text/css";
myWindow.document.body.appendChild(cssLink);
// Now carry on writing the elements