html - 我如何拥有图例的 fieldset::before 规则帐户?

标签 html css

我将内容放在表单中每个字段集的::before 规则中,但它们似乎放在字段的图例下,而不是像我期望的那样是第一个子项。我想让::before 内容与图例的顶部对齐,而不是输入元素的顶部。将::before 内容垂直移动到整个板上是不够的,因为我的图例是不同的高度。有谁知道为什么会这样以及如何获得我想要的行为?

预期行为:

before    legend
          legend
          legend

          input

HTML:

<form>
    <fieldset>
        <legend>This is the legend.</legend>
        <input type="text" />
    </fieldset>
    <fieldset>
       <legend>This is a very very very very very very very very very very very very very very very very very very very very very long legend.</legend>
       <input type="text" />
    </fieldset>
</form>​

CSS:

fieldset
{
    margin-left: 40px;
    width: 120px;
}

fieldset::before
{
    margin-left: -40px;
    float: left;

    content: "before";
}​

http://jsfiddle.net/GYzTA/2/

编辑:

我找到了一个仅更改 CSS 选择器的“doh”解决方案,但我仍然很好奇为什么 fieldset::before 规则似乎在图例之后插入内容。

fieldset legend::before
{
    margin-left: -40px;
    content: "before";
}​

最佳答案

引用 Default CSS values for a fieldset <legend>

Simply put, it is not possible across browsers to position the LEGEND element in a Fieldset.

解决方案:使用<span>代替<legend>

关于html - 我如何拥有图例的 fieldset::before 规则帐户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9242763/

相关文章:

html - 使 iframe 响应媒体查询

javascript - 方向 rtl 到所有页面

javascript - 带有百分比的图像大小会减慢网站速度

javascript - 在 web2py 中包含静态 javascript

javascript - 我的 JavaScript 用户名和密码无效

html - 通过 Bootstrap 在具有不同文本长度的面板框中创建相同的高度

javascript - 粘性页脚不能水平滚动的问题,以及窗口大小折叠时主要内容聚集在一起的问题

子元素的 CSS 选择器

html - 如何让一个overlay div完全覆盖下面的div?

javascript - 获取body中特定Tag元素