Javascript 在表格中设置按钮,使其与行或列中最宽或最高按钮的宽度和高度相匹配

Javascript 在表格中设置按钮,使其与行或列中最宽或最高按钮的宽度和高度相匹配,javascript,jquery,css,html,Javascript,Jquery,Css,Html,我想创建一个按钮表,当使用x行和y列以及用户生成的按钮标题生成时,一行中的每个按钮都与该行中最高的按钮一样高,列中的每个按钮都与该列中最宽的按钮一样宽 flexbox是否有解决方案,或者我需要使用JS .button1{宽度:97px;高度:37px;} .button3{高度:37px;} .button5{宽度:61px;} 弗斯特 第二个按钮 第三 四是长 第五 第六 在开始之前,请注意,请确保在表中包含tbody标记;无论如何,浏览器都会为您添加它 现在,你不能单靠CSS来实现这一点

我想创建一个按钮表,当使用x行和y列以及用户生成的按钮标题生成时,一行中的每个按钮都与该行中最高的按钮一样高,列中的每个按钮都与该列中最宽的按钮一样宽

flexbox是否有解决方案,或者我需要使用JS

.button1{宽度:97px;高度:37px;}
.button3{高度:37px;}
.button5{宽度:61px;}

弗斯特
第二个
按钮 第三 四是长 第五 第六
在开始之前,请注意,请确保在
表中包含
tbody
标记;无论如何,浏览器都会为您添加它

现在,你不能单靠CSS来实现这一点。原因是CSS是一种二维语言,而不是三维语言。因此,您可以将HTML结构化为列,并获得列中的所有按钮匹配,或者您可以按现有方式创建一个表,并获得行中的所有按钮匹配,但不能同时执行这两项操作

下面是一个使同一列中的按钮与flexbox具有相同宽度(但不是高度)的示例,方法是反转默认的flex行为以允许增长而不是收缩:

.button1{宽度:97px;高度:37px;}
.button3{高度:37px;}
.button5{宽度:61px;}
运输署分区{
显示器:flex;
}
td div按钮{
弹性:10自动;
}

弗斯特
第二个
按钮 第三 四是长 第五 第六
您的标题和正文是矛盾的:是列和行与按钮的宽度一致,还是按钮应与行/列中其他按钮的大小一致?您是要调整行/列本身的宽度还是调整其中的按钮?并非所有按钮的大小都应相同。每列中的按钮应具有最宽的同级按钮的宽度,而每行中的按钮应具有最高同级按钮的高度。@cjl750^^^^^^^是的,对不起,我看到了您的评论,但在使用CSS进行了一些测试后,我重申了我最初的猜测,即这并非小事。我认为您需要一个JavaScript解决方案来遍历表,在每行/每列中找到最大的按钮,然后相应地调整所有其他按钮的大小。今晚晚些时候或明天,如果其他人不先来,我可能会为您准备一些东西。@cjl750啊,这就是为什么我希望我可以使用flex box的原因-我对JS不是很熟悉。你能给我指出正确的方向吗?在那里我可以足够熟悉自己,希望能解决这个问题。非常感谢@cjl750。我精通编程,我可以告诉你JS在做什么,但是你能告诉我为什么需要html部分的第一行吗?为什么JS只在包含那一行的情况下工作?另外,当你给一个按钮加上较长的标题时,最后一个单词会出现在第二行。这几乎就好像该列的最宽按钮的大小比之前的要小,迫使它的部分标题换行?@vooka HTML开头的脚本是jQuery框架。因为我在代码中使用jQuery,所以我们必须包含它。在堆栈代码段中,当您包含外部资源时,它只是将其添加到HTML中。在页面上,您可以在文档的
中的某个位置包含jQuery的链接,但必须在实际脚本调整按钮大小之前包含该链接,否则会出现未定义
$
的错误。因为你用jQuery标记了你的问题,我认为可以使用,但如果不行,就必须用vanilla JS重写。至于你提到的长标题问题,我无法在这个答案中包含的片段中重现,除非我遗漏了什么。你能提供更多的信息吗?如果您编辑并运行我的代码段中的标题,您是否看到了这个问题,或者您是否在实际网页上看到了这个问题?@cjl705如果您将所有代码移动到JSFIDLE,并将按钮标题从“8”更改为“这是此表中最长的按钮”,您应该能够复制我所说的内容。作为修复,我在WidtButton.width()前面放置了一个1+