Html text在表内时,区域宽度不受最大宽度约束
讨厌问,因为已经有一堆看似相关的答案了,但我找不到确切的组合 我有一个包含textarea的表,textarea有一个大cols属性,但是textarea即使应用了max width也会打破它的约束 以下是容器为div时的工作解决方案:Html text在表内时,区域宽度不受最大宽度约束,html,css,html-table,Html,Css,Html Table,讨厌问,因为已经有一堆看似相关的答案了,但我找不到确切的组合 我有一个包含textarea的表,textarea有一个大cols属性,但是textarea即使应用了max width也会打破它的约束 以下是容器为div时的工作解决方案: .container{ 边框:2倍纯色橙色; 宽度:200px; 填充:10px;//为清晰起见添加 } .分箱{ 填充:10px;//为清晰起见添加 边框:1px纯绿色; } 文本区{ 最大宽度:100%;//正确约束在容器宽度内 边框:1px红色虚线; }
.container{
边框:2倍纯色橙色;
宽度:200px;
填充:10px;//为清晰起见添加
}
.分箱{
填充:10px;//为清晰起见添加
边框:1px纯绿色;
}
文本区{
最大宽度:100%;//正确约束在容器宽度内
边框:1px红色虚线;
}
这里是相同的设置,但容器是一个表(>tr>td):
.集装箱{
边框:2倍纯色橙色;
宽度:200px;//显式设置为演示,但实际上我使用的是定义了flex基值的flexbox,显示的效果相同
填充:10px;//为清晰起见添加
}
.分箱{
边框:1px纯绿色;
}
文本区{
最大宽度:100%;//是否应限制cols提供的默认宽度?
边距:10px;//为清晰起见添加
边框:1px红色虚线;
}
通过在表约束文本区域上指定
width:100%
以及max width
,然后应用约束。我希望避免显式添加宽度规则
所以我的问题是,是否有一个优雅的解决方案,我不必提供一个明确的宽度规则,允许子textarea遵守容器宽度
请注意:我正在处理遗留代码,所以替换表不是一个我可以立即考虑的解决方案。
起初我想知道从textarea中删除
cols
属性是否合适,但这似乎不是最佳的解决方案,而且还需要我深入研究不应该(尚未)触及的遗留代码。您知道什么是表布局:修复的解决方案吗
<div class="container">
<table class="sub-container">
<tr>
<td class="padding-10">
<textarea cols="" rows="20" placeholder="Please don't outgrow the container!"></textarea>
</td>
</tr>
</table>
</div>
.container {
border:2px solid orange;
width: 200px; // explicitly set to demonstrate, however I am actually using flexbox with a flex-basis value defined, with the same effect exhibited
padding: 10px; // added for clarity
}
.sub-container {
border: 1px solid green;
table-layout: fixed;
width: 100%;
}
textarea {
max-width: 100%; // should limit the default width provided by cols?
margin: 0; // added for clarity
border:1px dashed red;
resize: vertical; // resize only vertical
width: 96%; // width hack for ur solution
}
.padding-10{
padding: 10px;
}
.集装箱{
边框:2倍纯色橙色;
宽度:200px;//显式设置为演示,但实际上我使用的是定义了flex基值的flexbox,显示的效果相同
填充:10px;//为清晰起见添加
}
.分箱{
边框:1px纯绿色;
表布局:固定;
宽度:100%;
}
文本区{
最大宽度:100%;//是否应限制cols提供的默认宽度?
边距:0;//为清晰起见添加了边距
边框:1px红色虚线;
调整大小:垂直;//仅调整垂直大小
宽度:96%;//解决方案的宽度破解
}
.1-10{
填充:10px;
}
我在css中做了一些更改,并从textarea重置了COL
更新的codepen也注意到了,但是我不想为了这个而去钻研CSS之外的代码-所以删除cols
并不理想。即使你保持你的cols是应该工作的,我已经在我的codepen中测试过了,试试吧。你也没有注意到我不想明确声明一个宽度,“你的解决方案的宽度黑客”-是的,不。
<div class="container">
<table class="sub-container">
<tr>
<td>
<textarea cols="80" rows="20" placeholder="Please don't outgrow the container!"></textarea>
</td>
</tr>
</table>
</div>
.container {
border:2px solid orange;
width: 200px; // explicitly set to demonstrate, however I am actually using flexbox with a flex-basis value defined, with the same effect exhibited
padding: 10px; // added for clarity
}
.sub-container {
border: 1px solid green;
}
textarea {
max-width: 100%; // should limit the default width provided by cols?
margin: 10px; // added for clarity
border:1px dashed red;
}
<div class="container">
<table class="sub-container">
<tr>
<td class="padding-10">
<textarea cols="" rows="20" placeholder="Please don't outgrow the container!"></textarea>
</td>
</tr>
</table>
</div>
.container {
border:2px solid orange;
width: 200px; // explicitly set to demonstrate, however I am actually using flexbox with a flex-basis value defined, with the same effect exhibited
padding: 10px; // added for clarity
}
.sub-container {
border: 1px solid green;
table-layout: fixed;
width: 100%;
}
textarea {
max-width: 100%; // should limit the default width provided by cols?
margin: 0; // added for clarity
border:1px dashed red;
resize: vertical; // resize only vertical
width: 96%; // width hack for ur solution
}
.padding-10{
padding: 10px;
}