如何使<legend>元素居中 - 使用什么而不是align:center属性?</legend>

时间:2010-10-24 01:30:33

标签: html css

我在这里缺少什么?

修改,因为这在评论中不起作用:

以下解决方案导致:

----------------------------------------------------
|                                                  |
|                     Legend text                  |

但我想要的是:

----------------------Legend text-------------------
|                                                  |
|                                                  |

编辑#2:

根据到目前为止的反馈,听起来这整个<legend>标签是一个失败的主张。有没有人有他们用什么代替这个的例子 - 具有类似外观的东西更可靠?

11 个答案:

答案 0 :(得分:16)

假设您的标记与此类似:

<form>
<fieldset>
<legend>Person:</legend>
Name: <input type="text" size="30" /><br />
Email: <input type="text" size="30" /><br />
Date of birth: <input type="text" size="10" />
</fieldset>
</form>

你的CSS应该是这样的:

legend {
    margin:0 auto;
}

这是最简单的

哦亲爱的...在跨浏览器兼容性方面,你选择了CSS中最困难的事情。卡梅伦亚当斯说最好的

  

可能是唯一的困难   样式语义形式是传说   标签。它是不可变的   跨浏览器。在Mozilla,   图例标记不是左缩进的   IE中的字段集的主体   歌剧是。在Mozilla,传说   标签位于之间   fieldset的边框及其内容,in   IE和Opera它位于里面   内容。这使得它非常困难   在区域集内移动图例   边界,或将它与它齐平   你得到的字段集的左边   不同浏览器的影响

您可以详细了解他在Fancy Form Design Using CSS所说的关于如何设置表单样式的内容。

我对此问题的解决方案是完全删除fieldset边框并绝对定位图例元素。您想要做的问题是每个浏览器都有所不同。

答案 1 :(得分:15)

图例可以很容易地通过html属性设置样式。我通过搜索找到了..

<legend align="center">Legend</legend>

答案 2 :(得分:4)

众所周知,传说对造型有抵抗力。

您可以做的一件事是使用标题元素而不是图例,因为它更容易设置样式。这至少可以满足您在FF3和Safari中的需求。

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<style type="text/css">
h3{
background-color:#FFF;
margin: -1em auto 0;
text-align:center;
width:10%;}
</style>
</head>
<body>

 <form>
<fieldset>
<h3>Person:</h3>
Name: <input type="text" size="30" /><br />
Email: <input type="text" size="30" /><br />
Date of birth: <input type="text" size="10" />
</fieldset>
</form>

</body>
</html>

答案 3 :(得分:3)

终于在没有align="center"黑客的情况下得到了它。仅使用合法的css边距

legend{
    width: 70px;
    padding: 2px;
    margin-left: calc(50% - 35px - 2px);
}

答案 4 :(得分:2)

legend
{
    margin-left: calc(50%);
    transform: translateX(-50%);
}

(然后,回答者将键盘放在地板上,就像麦克风一样)

答案 5 :(得分:1)

以下是我几分钟前的情况。这适用于Firefox和Chromium / Opera。 Haven没有在Edge和早期IE-crap中测试过,但根据我的经验,也应该在那里工作。

假设里面的表单元素显示为块。

fieldset {
    border: 1px solid Olive;
    padding: 0.1%;
    margin: 1px auto;
    width: auto;
}

legend {
    font-size: 10px;
    text-align: center;
    padding: 0.2% 0.4%;
    width: 30%;
    margin: 0 34.6%;
    border: 1px solid DarkOrange;
    border-radius: 5px;
}  

诡计是传奇边距百分比margin: 0 34.6%; 现在,如果您增加或减少左/右或宽度的填充,您显然需要重新计算图例的左/右边距的百分比。不要为 0 auto 而烦恼。它根本不会起作用。

答案 6 :(得分:0)

您还可以使用非常基本的rails form helper将任何semantic_form_for输出复制为HTML。既然您知道自己的期望,就可以在不使用semantic_form_for的情况下将其写出来。我们正在其中一个项目中这样做。

答案 7 :(得分:0)

为此抛出替代品的时间已经很晚了?无论如何,我想使用一个字段集,发现浏览器缺乏定位和浏览器烦人的变量显示所以我复制了几个div:

<div style="border:solid 1px #AAAAAA; position:relative; padding:10px;">
  <div style="position:absolute; top:-10px; left:50%; margin-left:-35px; width:70px; text-align:center; background-color:#FFFFFF;" >Legend</div>
  Stuff in your fieldset
</div>

关于此的重要说明:必须设置内部div宽度,并且左边距必须设置为一半。您可能需要根据文本的长度调整宽度。左边:50%在父母的中间点开始,剩下的负边距将其置于自己宽度的一半。

答案 8 :(得分:0)

试试这段代码: -

<legend style="text-align:center;"> LEGEND TITLE </legend>

上面的代码只包含字段集的图例组件,它通过内联CSS将图例居中。同样可以通过外部CSS或使用“样式”标签来完成。

答案 9 :(得分:0)

您可以像

一样使用它
<legend align="center"> your text here </legend>

答案 10 :(得分:0)

使用“ 左边距”作为图例将文本向右移动。

  <fieldset>
  <legend style="margin-left:3%;">Summary</legend>
  <div>
  The novella The Metamorphosis was written by Franz Kafka in 1912. It tells the story of the tragedy of a salesman, Gregor Samsa, who turned into a gigantic insect, but still possessed a human mind.</div>
  </fieldset>