有没有办法让字段集宽度仅与其中的控件一样宽?

发布于 2024-08-22 11:16:25 字数 62 浏览 6 评论 0原文

看来 fieldset 默认为其容器的 100% 宽度。有没有什么方法可以让字段集与字段集中最宽的控件一样大?

It seems that fieldset defaults to 100% width of its container. Is there any way that you can have the field set just be as big as the widest control inside the fieldset?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

最舍不得你 2024-08-29 11:16:26

这也有效。

fieldset {
  width:0px;
}

This also works. 

fieldset {
  width:0px;
}
乖乖哒 2024-08-29 11:16:26

不幸的是,display:inline-blockwidth:0px 在 Internet Explorer 8 及之前版本中均不起作用。我还没有尝试过 Internet Explorer 9。尽管我很想忽略 Internet Explorer,但我不能。

适用于 Firefox 和 Internet Explorer 8 的唯一选项是 float:left。唯一的小缺点是您必须记住在表单后面的元素上使用 clear:both。当然,如果你忘记了,那就很明显了;-)

Unfortunately neither display:inline-block nor width:0px works in Internet Explorer up to version 8. I have not tried Internet Explorer 9. Much as I would like to ignore Internet Explorer, I can't.

The only option that works on Firefox and Internet Explorer 8 is float:left. The only slight drawback is that you have to remember to use clear:both on the element that follows the form. Of course, it will be very obvious if you forget ;-)

时光暖心i 2024-08-29 11:16:26

试试这个

<fieldset style="max-width: max-content;" >
   <legend>Blah</legend>
</fieldset>

try this

<fieldset style="max-width: max-content;" >
   <legend>Blah</legend>
</fieldset>
陌伤浅笑 2024-08-29 11:16:26

您始终可以使用 CSS 来限制字段集的宽度,这也会限制内部的控件。

我发现我经常必须限制 select 控件的宽度,否则太长的选项文本将使其完全难以管理。

You can always use CSS to constrain the width of the fieldset, which would also constrain the controls inside.

I find that I often have to constrain the width of select controls, or else really long option text will make it totally unmanageable.

南汐寒笙箫 2024-08-29 11:16:26
 fieldset {

    min-width: 0;

    max-width: 100%;

    width: 100%;
 }
 fieldset {

    min-width: 0;

    max-width: 100%;

    width: 100%;
 }
薄情伤 2024-08-29 11:16:26

width: fit-content; 有效。

width: fit-content; works.

一个人练习一个人 2024-08-29 11:16:26

我通过覆盖图例样式解决了我的问题,如下所示

.ui-fieldset-legend
{
  font-size: 1.2em;
  font-weight: bold;
  display: inline-block;
  width: auto;`enter code here`
}

i fixed my issue by override legend style as Below

.ui-fieldset-legend
{
  font-size: 1.2em;
  font-weight: bold;
  display: inline-block;
  width: auto;`enter code here`
}
眼趣 2024-08-29 11:16:26

进一步Mihai解决方案,跨浏览器左对齐:

<TABLE>
  <TR>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>

跨浏览器右对齐:

<TABLE>
  <TR>
    <TD WIDTH=100%></TD>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>

Going further of Mihai solution, cross-browser left aligned:

<TABLE>
  <TR>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>

Cross-browser right aligned:

<TABLE>
  <TR>
    <TD WIDTH=100%></TD>
    <TD>
      <FORM>
        <FIELDSET>
          ...
        </FIELDSET>
      </FORM>
    </TD>
  </TR>
</TABLE>
感情废物 2024-08-29 11:16:26
            <table style="position: relative; top: -0px; left: 0px;">
                <tr>
                    <td>
                        <div>   
                            <fieldset style="width:0px">
                                <legend>A legend</legend>
                                <br/>
                                <table cellspacing="0" align="left">
                                    <tbody>
                                        <tr>
                                            <td align='left' style="white-space: nowrap;">
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </fieldset>
                        </div>
                    </td>
                </tr>
            </table>
            <table style="position: relative; top: -0px; left: 0px;">
                <tr>
                    <td>
                        <div>   
                            <fieldset style="width:0px">
                                <legend>A legend</legend>
                                <br/>
                                <table cellspacing="0" align="left">
                                    <tbody>
                                        <tr>
                                            <td align='left' style="white-space: nowrap;">
                                            </td>
                                        </tr>
                                    </tbody>
                                </table>
                            </fieldset>
                        </div>
                    </td>
                </tr>
            </table>
指尖微凉心微凉 2024-08-29 11:16:26

您还可以将字段集放入表中,如下所示:

<table>
    <tr>
       <td>
           <fieldset>
           .......
           </fieldset>
       </td>
    </tr>
</table>

You can also put the fieldset inside a table, like so:

<table>
    <tr>
       <td>
           <fieldset>
           .......
           </fieldset>
       </td>
    </tr>
</table>
苍景流年 2024-08-29 11:16:25

使用 display: inline-block,但您需要将其包装在 DIV 中以防止其实际显示内联。在 Safari 中测试。

<style type="text/css">
    .fieldset-auto-width {
         display: inline-block;
    }
</style>
<div>
  <fieldset class="fieldset-auto-width">
      <legend>Blah</legend>
      ...
  </fieldset>
</div>

Use display: inline-block, though you need to wrap it inside a DIV to keep it from actually displaying inline. Tested in Safari.

<style type="text/css">
    .fieldset-auto-width {
         display: inline-block;
    }
</style>
<div>
  <fieldset class="fieldset-auto-width">
      <legend>Blah</legend>
      ...
  </fieldset>
</div>
森末i 2024-08-29 11:16:25

fieldset {display:inline}fieldset {display:inline-block}

如果要垂直分隔两个字段集,请使用单个
他们之间。这在语义上是正确的,而且并不困难。

fieldset {display:inline} or fieldset {display:inline-block}

If you want to separate two fieldsets vertically, use a single <br/> between them. This is semantically correct and no harder than it has to be.

朮生 2024-08-29 11:16:25

您可以浮动它,然后它的宽度将仅与其内容一样宽,但您必须确保清除这些浮动。

You could float it, then it will only be as wide as its contents, but you'll have to make sure you clear those floats.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文