`
EricJS
  • 浏览: 6585 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

CSS 设置table中td宽度失效

    博客分类:
  • css
阅读更多

问题描述:当我们使用css对table中的td设置宽度的时候,td的宽度还是对于table的宽度自适应,没有达到设置宽度的效果。

<style type="text/css">
	table { 
		border: 1px solid #ddd; 
		font: 13px/25px "微软雅黑";
		table-layout: fixed;
		background-color: #fff;
	}
	table td { 
		border-right: 1px solid #ddd; 
		border-bottom: 1px solid #ddd; 
		overflow: hidden;
	}
	.td0, .td1 { width: 20px; text-align: center;}
	.td2, .td4 { width: 80px; text-align: center;}
	.td3, .td5 { width: 130px;}
</style>

<table cellspacing="0">
<tbody>
	<tr>
		<td rowspan="8" colspan="1" class="td0">交易双方信息</td>
		<tr>
			<td rowspan="4" colspan="1" class="td1">融出方</td>
			<tr>
				<td rowspan="1" colspan="1" class="td2">名称</td>
				<td rowspan="1" colspan="3">XXXX股份有限公司</td>
			</tr>
			<tr>
				<td rowspan="1" colspan="1" class="td2">场外结算<br>账号信息</td>
				<td rowspan="1" colspan="3">
					户名: XXXX股份有限公司<br>
					账号: XXXXXXXXXXXXXX225541<br>
					开户行: 中国工商银行广州市第一支行
				</td>
			</tr>
			<tr>
				<td rowspan="1" colspan="1" class="td2">证券账户</td>
				<td rowspan="1" colspan="3">深圳:XXXXXXXXX 上海:XXXXXXXXXX</td>
			</tr>
		</tr>
		<tr>
			<td rowspan="3" colspan="1" class="td1">融入方</td>
			<tr>
				<td rowspan="1" colspan="1" class="td2">客户名称</td>
				<td rowspan="1" colspan="1" class="td3"></td>
				<td rowspan="1" colspan="1" class="td4">证件号码</td>
				<td rowspan="1" colspan="1" class="td5">&nbsp;</td>
			</tr>
			<tr>
				<td rowspan="1" colspan="1">资金账号</td>
				<td rowspan="1" colspan="1"></td>
				<td rowspan="1" colspan="1">证券账户</td>
				<td rowspan="1" colspan="1">
					深圳:<br>
					上海:<br>
				</td>
			</tr>
		</tr>
	</tr>
</tbody>
</table>

 运行结果:

 IE6下结果

 IE8下结果

 

 chrome下结果

 Firefox下结果

 可以看到,宽度的设置在Firefox和chrome下是正常的,但是在表格结构比较复杂的情形下,chrome的宽度也有可能显示失效,在IE下宽度是一定会失效的。但是有一个元素的宽度在所有的浏览器中都是没有问题的,就是第一个td的宽度是正常的,为什么?

看看页面的DOM结构,如下图



 当设置宽度时,只有第一行即第一个tr中的宽度的是生效的,其他的宽度设置都是在后面的tr中的td都有问题,那么,如果将所有的td都放到第一个tr中设置,宽度会变得正常吗?

在原来的页面中加上thead部分,在这个tr中设置所有的td的宽度

<table cellspacing="0">
<thead>
	<tr>
		<th class="td0"></th>
		<th class="td1"></th>
		<th class="td2"></th>
		<th class="td3"></th>
		<th class="td4"></th>
		<th class="td5"></th>
	</tr>
</thead>
<tbody>

 在IE下的运行结果如下:



 

 在IE6和IE8下均显示正常了。

 

但是还是有问题存在:就是在chrome下这样做不正常,不知道为什么?

  • 大小: 7.1 KB
  • 大小: 13.1 KB
  • 大小: 5.7 KB
  • 大小: 6.3 KB
  • 大小: 5.4 KB
  • 大小: 7.4 KB
  • 大小: 12.8 KB
分享到:
评论

相关推荐

    表格单元格td设置宽度无效始终有内部的内容撑开

    然而,在实际操作中,有时我们会遇到一个棘手的问题:给`&lt;td&gt;`设置宽度(`width`)后,发现宽度设置似乎无效,单元格的宽度仍然被其内部的内容撑开。这个问题在标题和描述中被提及,让我们详细探讨一下这个问题的...

    固定 table宽度 table-layout: fixed

    1. **设置列宽**:需要明确指定每一列的宽度,可以使用`&lt;colgroup&gt;`标签或在`&lt;th&gt;`或`&lt;td&gt;`中设定宽度。 2. **响应式设计**:虽然固定布局限制了列宽,但在响应式设计中可能需要根据屏幕大小动态调整列宽。此时,...

    兼容多浏览器,兼容 div、p、td 的强制不换行及强制换行.

    2. **IE** 中对于指定了宽度的`td`,如果文本中没有标点或空格,则上述代码失效。可以通过添加`word-break: keep-all`来解决,该属性属于CSS3标准的一部分,但在IE中较早支持: ```css td { white-space: nowrap;...

    layui表格 列自动适应大小失效的解决方法

    确保`table`、`th`和`td`元素的样式允许自动调整宽度。 2. **修复JavaScript代码**:确保layui的表格初始化和事件绑定代码正确无误。如果使用了自定义的JS逻辑来处理列宽,检查并修复可能存在的错误。 3. **调整...

    JavaScript Table行定位效果

    table的border属性用来指定边框宽度,table特有的frame属性是用来设置或获取表格周围的边框显示的方式。 w3c的tabel的frame部分说明frame可以是以下值: void: No sides. This is the default value. above: The ...

    给table的tr添加border-top时没有效果的解决方法

    当我们在HTML中创建一个表格,浏览器会默认应用`border-collapse: separate`的样式,这意味着表格单元格(td)之间的边框是分开的,可以独立设置宽度、样式和颜色。但是,如果你尝试给`&lt;tr&gt;`元素添加`border-top`,...

    html中的div、td 、p 等容器内强制换行和不换行的实现

    在HTML中,`div`、`td` 和 `p` 等元素作为常见的容器,经常用于组织和展示页面内容。对于这些容器内的文本换行处理,可以通过CSS样式来实现。这里我们将详细讨论如何实现强制不换行以及自动换行,并分析不同换行方式...

    css界面制作文档

    - `table#a`: 选择器指定了ID为`a`的表格,并设置了相对定位、宽度、高度、左对齐、显示空单元格以及边框合并等属性。 - `border-collapse:collapse;`属性使表格边框合并为单一的线条,避免了多重边框的出现。 4....

    浏览器兼容问题

    **问题描述**:当父级元素使用相对定位,且宽度设置为奇数时,子元素使用绝对定位,在 IE6 中会出现右侧多出 1 像素的情况。 **解决方案**:将宽度的奇数值改为偶数。 **解释**:更改宽度值为偶数可以解决此问题。...

    CSS样式表教程:浏览器默认样式

    首先,我们需要了解为何要在CSS中设置`* {padding:0;margin:0}`。这是因为浏览器默认会给元素添加内边距(padding)和外边距(margin),这可能导致元素之间的间距不一致。然而,这只是一个基础的重置,仅能解决部分...

    table设置背景图片,不能100%显示解决方法

    当设置背景图片时,通常会在`&lt;td&gt;`元素中应用CSS样式。 1. **表格宽度100%问题**: - 表格默认会有边距和内边距,导致实际宽度小于容器。设置`cellpadding="0"`和`cellspacing="0"`可以消除这些间隔,使表格更接近...

    TD在IE7不能浏览的问题解决办法

    5. **表格属性**:`&lt;table&gt;`,`&lt;tr&gt;`或`&lt;td&gt;`的某些属性在IE7中可能存在解析或渲染问题。 **解决策略:** 1. **验证DOCTYPE**:确保文档以正确的DOCTYPE开头,如`&lt;!DOCTYPE html&gt;`,这会促使IE7进入标准模式,减少...

    解决layui表格的表头不滚动的问题

    在这个示例中,我们为表头和表体的单元格(th 和 td)设置了相同的宽度,以保持列宽一致。同时,通过 CSS 样式调整了表体所在的 div 的位置和大小,使其具有滚动功能。 通过这样的方式,我们就成功解决了 layui ...

    IE又一个让人吐血的BUG: 关于 table的position 和 select

    然而,在IE中,当`table`元素的`position`被设置为非`static`时,可能会破坏其默认的布局行为,特别是在与`select`元素结合使用时,可能会导致`select`下拉菜单无法正常显示或操作。 `select`元素是用来创建下拉...

    bootstrap-table实现表头固定以及列固定的方法示例

    2. 引入Bootstrap的CSS文件以及bootstrap-table的CSS文件,这两者都是Bootstrap风格的表单、按钮、导航等组件的基础。 3. 加载bootstrap-table的JS文件和bootstrap-table-fixed-columns的JS文件。前者是表格的基础...

    项目中碰到的css兼容问题小结

    当在表格的thead部分定义了宽度和高度,并且在td中使用`colspan`时,可能会遇到宽度失效的问题。这是因为某些浏览器可能没有正确处理表格的自动布局。为解决这个问题,可以在table元素上添加`table-layout: fixed`...

    &lt;td&gt;&lt;/td&gt;标签的border 样式在浏览器中显示不出来的解决方法

    这是因为在某些浏览器的特定模式下,如360浏览器的兼容模式,或者浏览器对CSS属性有特定的解释时,&lt;td&gt;标签中的边框样式可能会失效。这种情况下,用户可能会看到无边框的表格单元格,影响网页的整体布局和用户界面。...

    css overflow溢出隐藏(文字溢出时的自动隐藏处理)

    并且clip属性设置将失效。 auto:此为body对象和textrea的默认值。在需要时剪切内容并添加滚动条 hidden:不显示超过对象尺寸的内容。scroll:总是显示滚动条。 使用说明及要点: ◎ 检索或设置当对象的内容超过其...

    CSS实现HTML元素透明的方法小结

    - body、img、table、tr、th、td等元素默认就有`hasLayout`。 - type为text、button、file或select的input元素。 - 设置`position:absolute`的元素。 - 设置`float:left|right`的元素。 - 设置`display:inline-block...

Global site tag (gtag.js) - Google Analytics