Подтвердить что ты не робот

Как центрировать элемент <legend> - что использовать вместо align: center attribute?

Что мне здесь не хватает?

Изменить, потому что это не работает в комментарии:

Ниже приведенное решение приводит к следующему:

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

но для чего я хочу:

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

Изменить # 2:

На основе отзывов до сих пор звучит так, как будто этот тег <legend> является проигрывающим предложением. Есть ли у кого-нибудь пример того, что они используют вместо этого - что-то похожее на более надежное?

4b9b3361

Ответ 1

Предполагая, что ваша разметка выглядит примерно так:

<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 легенда тег расположен между границы поля и его содержимого, в IE и Opera расположены внутри Контент. Это очень тяжело для перемещения легенды внутри набора полей границы или поместите его на слева от поля, так как вы получаете различные эффекты в браузерах

Вы можете узнать больше о том, что он сказал в Fancy Form Design с помощью CSS о том, как стилизовать формы.

Мое решение проблемы состояло в том, чтобы полностью удалить границу поля и полностью поместить элемент легенды. Проблема с тем, что вы хотите сделать, это то, что в каждом браузере оно отличается.

Ответ 2

Легенда может быть легко описана атрибутом html. Я нашел поиск.

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

Ответ 3

Легенды, как известно, устойчивы к стилю.

Одна вещь, которую вы можете сделать, это использовать элемент заголовка вместо легенды, поскольку это будет намного проще в стиле. Это делает то, что вы хотите в 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>

Ответ 4

наконец, получил его без взлома align="center". используя только законные поля css

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

Ответ 5

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

(Ответчик затем бросает клавиатуру на пол, как микрофон)

Ответ 6

Вот с чего я пришел всего несколько минут назад. Это работает в Firefox и Chromium/Opera. Не тестировали в Edge и ранее IE-дерьмо, но, по моему опыту, тоже должны там работать.

Предполагая, что элемент формы внутри отображается как блок.

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 и процентами. margin: 0 34.6%; Теперь, если вы увеличиваете или уменьшаете прописку слева/справа или ширину, вам нужно будет пересчитать процент для левого/правого поля легенды, по-видимому. Не беспокойтесь, 0 автоматически. Это просто не сработает.

Ответ 7

Вы также можете реплицировать все выходные данные semantic_form_for как HTML, используя основной помощник рельсов. Поскольку вы знаете, что ожидаете, вы можете написать его без использования semantic_form_for. Мы делаем это в одном из наших проектов.

Ответ 8

Немного поздно выбрасывать альтернативу для этого? Во всяком случае, я хотел использовать набор полей и нашел отсутствие позиционирования легенды и отображения переменных браузером, раздражающим, поэтому я реплицировал пару divs:

<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% запускает его на полпути родителя, а отрицательное поле оставляет его половину ширины.

Ответ 9

Попробуйте этот код: -

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

Вышеприведенный код содержит только компонент легенды в наборе полей и центрирует легенду с помощью встроенного CSS. То же самое можно сделать с помощью внешнего CSS или с помощью тега style.

Ответ 10

Вы можете использовать его как

<legend align="center"> your text here </legend>

Ответ 11

Используйте "margin-left" для легенды, чтобы переместить текст вправо.

  <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>