css表格宽度设置无效

table-layout: fixed

table-layout: fixed,table和td设置宽度有效,但在第一行有合并列的情况时,列宽会被均分,从而导致td设置宽度无效(table宽度仍然有效)。
table-layout: fixed的表格,各列宽度由第一行决定,后面指定的宽度会被忽略,当第一行合并后,所有列宽度会被均分。
解决方法:在

之后添加代码或者

table-layout: auto

table-layout: auto导致table和td设置宽度都无效,表格宽度是根据内容自动无限扩展的,从而导致table宽度超模(超出父组件)。
解决方法:td内的文字全部用一层元素(p、span、div都可以)包裹一下,然后设置包裹层的宽度或最大宽度(width或max-width)。
如果td本身设置了宽度那么可以使用js动态设置包裹元素的宽度:

var ps = document.querySelectorAll("table td p"); ;
for(let me of ps){
	let tdObj=me.parentNode;
	let tdWidth=tdObj.getAttribute("width");
	if(tdWidth!=null&&tdWidth>0){
		tdWidth=tdWidth+"px";
	}else{
		tdWidth=tdObj.style.width;
		if(tdWidth==null||tdWidth<=0){
			tdWidth="600px";
		}
	}
	me.style.maxWidth=tdWidth;
}

你可能感兴趣的:(Web前端,css,html,table)