【发布时间】:2011-09-11 11:15:05
【问题描述】:
所以我有一个包含许多列和固定布局的表格。表格的第一列是 100px 宽,其他都是 6px 宽。它在 Mozilla Firefox、Internet Explorer 8 和 9 中正确显示。但在 IE7 中,第一列中的文本几乎在每个单词之后都换行(即使该列的宽度足以让整个文本在一行上)并且该列大约是比预期宽 2-3 倍。
jsfiddle:http://jsfiddle.net/YvNy5/
将此代码复制并粘贴到 index.html 并在 Internet Explorer 7 和 8/9 中进行测试并进行比较以查看差异:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html lang="sk">
<head profile="http://www.w3.org/2005/10/profile">
<meta http-equiv="Content-Style-Type" content="text/css" >
<meta http-equiv="Content-Language" content="sk" >
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
<title>Test 2</title>
<style type="text/css">
#CalendarReservationsBody table.CalendarReservationsBodyTable, #CalendarHolidaysBody table.CalendarHolidaysBodyTable{
width: 100%;
border-spacing: 0px;
border-collapse: collapse;
background: #F9F5D7;
border: 1px solid #000;
table-layout: fixed;
}
#CalendarHolidaysBody table.CalendarHolidaysBodyTable{
margin-top: 1em;
width: 100%;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable th, #CalendarHolidaysBody table.CalendarHolidaysBodyTable th{
text-align: left;
font-weight: normal;
padding: 0.1em 0.5em;
border: 1px solid #000;
width: 6px;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable td.borderLeft, #CalendarHolidaysBody table.CalendarHolidaysBodyTable td.borderLeft{
border-left: 1px solid #000;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable td, #CalendarHolidaysBody table.CalendarHolidaysBodyTable td{
border: 0px;
border-bottom: 1px solid #000;
padding: 0.1em 0.5em;
width: 6px;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable td.wideRow, #CalendarReservationsBody table.CalendarReservationsBodyTable th.wideRow
,#CalendarHolidaysBody table.CalendarHolidaysBodyTable td.wideRow, #CalendarHolidaysBody table.CalendarHolidaysBodyTable th.wideRow{
width: 100px;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable thead th, #CalendarHolidaysBody table.CalendarHolidaysBodyTable thead th{
text-align: center;
font-weight: bold;
background-color: #6FA7D1;
color: #FFF;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable th.corner, #CalendarHolidaysBody table.CalendarHolidaysBodyTable th.corner{
text-align: left;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable td.highlighted, #CalendarHolidaysBody table.CalendarHolidaysBodyTable td.highlighted{
background: #FFB856;
text-align: center;
}
#CalendarReservationsBody table.CalendarReservationsBodyTable td.highlighted:hover, #CalendarHolidaysBody table.CalendarHolidaysBodyTable td.highlighted:hover{
background: #FF9000;
}
/* specialne pre tabulku - dovolenky */
#CalendarHolidaysBody table.CalendarHolidaysBodyTable th{
width: 24px;
padding: 0.1em 0;
}
#CalendarHolidaysBody table.CalendarHolidaysBodyTable td{
width: 1px;
padding: 0.1em 0;
}
</style>
</head>
<body>
<div id="CalendarReservationsBody">
<table class="CalendarReservationsBodyTable">
<thead> <tr>
<th class="corner wideRow">Auto</th> <th class="odd" colspan="4">0</th> <th class="" colspan="4">1</th> <th class="odd" colspan="4">2</th> <th class="" colspan="4">3</th> <th class="odd" colspan="4">4</th> <th class="" colspan="4">5</th> <th class="odd" colspan="4">6</th> <th class="" colspan="4">7</th> <th class="odd" colspan="4">8</th> <th class="" colspan="4">9</th> <th class="odd" colspan="4">10</th> <th class="" colspan="4">11</th> <th class="odd" colspan="4">12</th> <th class="" colspan="4">13</th> <th class="odd" colspan="4">14</th> <th class="" colspan="4">15</th> <th class="odd" colspan="4">16</th> <th class="" colspan="4">17</th> <th class="odd" colspan="4">18</th> <th class="" colspan="4">19</th> <th class="odd" colspan="4">20</th> <th class="" colspan="4">21</th> <th class="odd" colspan="4">22</th> <th class="" colspan="4">23</th> </tr>
</thead> <tbody> <tr>
<td class="alignRight wideRow">KE-260 FC - Octavia combi</td><td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td colspan="16" class="highlighted borderLeft" title="Richard Knop">
Richard Knop
</td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td colspan="14" class="highlighted" title="Richard Knop">
Richard Knop
</td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
<td class=" borderLeft"></td>
<td class="odd"></td>
<td class=""></td>
<td class="odd"></td>
</tr> </tbody>
</table>
</div>
</body>
</html>
我想这种风格需要一些调整:
#CalendarReservationsBody table.CalendarReservationsBodyTable td.wideRow, #CalendarReservationsBody table.CalendarReservationsBodyTable th.wideRow
,#CalendarHolidaysBody table.CalendarHolidaysBodyTable td.wideRow, #CalendarHolidaysBody table.CalendarHolidaysBodyTable th.wideRow{
width: 100px;
}
【问题讨论】:
-
这必须在表格中吗?我似乎也想不通
-
@Liam 是的,它必须在表格中。它适用于除 Internet Explorer 7 以外的所有浏览器,我讨厌那个浏览器。
-
我不知道一个选项有多可行,但如果你使用百分位数而不是宽行上的 px 宽度,它似乎可以工作...jsfiddle.net/YvNy5/11
-
好吧,我宁愿有一个固定的宽度。如果这个错误没有解决方案,我将不得不使用相对宽度。我再等一会儿,也许有人会有解决这个问题的想法。
标签: html css internet-explorer xhtml