我很难让span标记在表格内正常工作。看起来似乎忽略了整个span标记,它被定义在Firefox中的表标记之间的任何位置,但是在IE中它显示正确。
也许我错过了一些东西,但我创建了一个小例子CSS和html文件,在Firefox和IE中显示不同。希望有人可以告诉我为什么它会以这种方式运行,或者我如何重新排列html来解决Firefox中的问题。
--- ---的main.css
.class1 A:link {color:#960033; text-decoration: none}
.class1 A:visited {color:#960033; text-decoration: none}
.class1 A:hover {color:#0000FF; font-weight: bold; text-decoration: none}
.class1 A:active {color:#0000FF; font-weight: bold; text-decoration: none}
.class2 A:link {color:#960033; text-decoration: none}
.class2 A:visited {color:#960033; text-decoration: none}
.class2 A:hover {color:#0000FF; text-decoration: none}
.class2 A:active {color:#0000FF; text-decoration: none}
--- --- TEST.HTM
<HTML>
<HEAD>
<title>Title Page</title>
<style type="text/css">@import url("/css/main.css");</style>
</HEAD>
<span class="class1">
<BODY>
<table><tr><td>
---Insert Hyperlink---<br>
</td></tr>
</span><span class="class2">
<tr><td>
---Insert Hyperlink---<br>
</td></tr></table>
</span>
</BODY>
</HTML>
答案 0 :(得分:7)
我很遗憾地说,但你的HTML很乱。 IE浏览器大战中显示跨度的原因可能是浏览器大战的残余,当时Netscape和微软不断相互争斗,谁能理解最糟糕的HTML。 <table>
- 标记内允许的唯一标记是<legend>
,<colgroup>
,<tbody>
,<tfoot>
,<thead>
和<tr>
。如果您希望<span>
可见,请将其放在<td>
内<tr>
类似的东西:
<HTML>
<HEAD>
<title>Title Page</title>
<style type="text/css">@import url("/css/main.css");</style>
</HEAD>
<BODY>
<table>
<tr>
<td>
---Insert Hyperlink---<br>
</td>
</tr>
<tr>
<td>
<span class="class2"></span>
---Insert Hyperlink---<br>
</td>
</tr>
</table>
</BODY>
</HTML>
此外,决定是否要在标签中使用小写或大写字符。这样可以更轻松地遵循您的代码。
答案 1 :(得分:3)
如果答案很简短,只有<tr>
<body>
应该包含您的元素,除了<html>
应该包含<body>
你可能会追求的是:
<html>
<head>
<title>Title Page</title>
<style type="text/css">@import url("/css/main.css");</style>
</head>
<body>
<span class="class1">
<table>
<tr>
<td>---Insert Hyperlink---<br></td>
</tr>
</table>
</span>
<span class="class2">
<table>
<tr>
<td>---Insert Hyperlink---<br></td>
</tr>
</table>
</span>
</body>
</html>
要记住的另一件事是,没有理由这些跨度(表可以有一个类)或那些表(如果你只使用一个单元格,使用<div>
或其他东西),一个简单的<div>
可能会做你想做的一切:
<div class="class2">
---Insert Hyperlink---
</div>
答案 2 :(得分:1)
span
不能直接包含table
。基本上,表中的文本必须包含在单元格(td
或th
)中,而这些单元格又必须包含在行(tr
)中,而这些行又是应由tbody
,thead
或tfoot
元素包含,然后table
可以包含这些元素。从HTML5开始,tbody
可以被正式暗示(而以前这只是浏览器所做的事情,尽管之前的规范需要table
和tr
之间的某些内容。)
HTML validation service对于处理这些事情非常有用。
答案 3 :(得分:0)
我不认为在表格中有一个SPAN应该有问题假设它在一个单元格内
确保使用正确的行和单元格正确格式化表本身。 IE可能正在渲染表,即使它已被破坏
答案 4 :(得分:0)
你不能把这个类直接放在tr-tag上:
<table><tr class="class1" ><td>
---Insert Hyperlink---<br>
</td></tr>
请注意您的代码是嵌套的,因此请尝试将类直接保留在标记上
答案 5 :(得分:0)
你的标签嵌套是一团糟..
你不能拥有
<tag1>
<tag2>
</tag1>
</tag2>
必须是
<tag1>
<tag2>
</tag2>
</tag1>
并且您还在span
之间使用了tr
,这是不允许的
答案 6 :(得分:0)
这只是无效的HTML。你不能只是打开和关闭随机标签......尝试更像这样的东西:
<HTML>
<HEAD>
<title>Title Page</title>
<style type="text/css">@import url("/css/main.css");</style>
</HEAD>
<BODY>
<table><tr><td>
<span class="class1">
---Insert Hyperlink---<br>
</span>
</td></tr>
<tr><td>
<span class="class2">
---Insert Hyperlink---<br>
</span>
</td></tr></table>
</BODY>
</HTML>
答案 7 :(得分:0)
这里有两个问题:你开始身体外的第一个跨度,而跨度只能在身体内。此外,您无法在table和tr标签之间结束/启动跨度。
您应该使用tbody标签来分隔表格的各个部分:
<HTML>
<HEAD>
<title>Title Page</title>
<style type="text/css">@import url("/css/main.css");</style>
</HEAD>
<BODY>
<table>
<tbody class="class1">
<tr><td>
---Insert Hyperlink---<br>
</td></tr>
</tbody>
<tbody class="class2">
<tr><td>
---Insert Hyperlink---<br>
</td></tr>
</tbody>
</table>
</BODY>
</HTML>