Центр выравнивания диапазона HTML не работает?


109

У меня есть HTML:

<div align="center" style="border:1px solid red">
This is some text in a div element!
</div>

Div меняет интервал в моем документе, поэтому вместо этого я хочу использовать диапазон.

Но span не централизует содержимое:

<span style="border:1px solid red;align=center">
This is some text in a div element!
</span>

Как это исправить?

РЕДАКТИРОВАТЬ:

Мой полный код:

<html>
<body>

<p>This is a paragraph. This text has no alignment specified.</p>

<span style="border:1px solid red;text-align=center">
  This is some text in a div element!
</span>

</body>
</html>

1
Ваш div "меняет интервал"? Что вы под этим подразумеваете? И ваш диапазон не будет, потому что по умолчанию это встроенный элемент, тогда как div - это элемент уровня блока .
Bojangles

Здравствуйте, JamWaffles! Под "интервалом" я подразумеваю, что div добавляет пространство над и под содержимым. Span этого не делает.
David19801

Используйте Firebug или инспектор Chrome, чтобы увидеть, какие правила CSS применяются к вашему элементу, и найдите тот, который добавляет отступы или поля. Также возможно, что окружающие элементы имеют отступы / поля.
Bojangles

5
text-align=centerдолжно бытьtext-align:center
n611x007

Ответы:


198

Div - это блочный элемент, который будет охватывать всю ширину контейнера, если ширина не установлена. Диапазон - это встроенный элемент, и он будет иметь ширину текста внутри него. В настоящее время вы пытаетесь установить align как свойство CSS. Выравнивание - это атрибут.

<span align="center" style="border:1px solid red;">
    This is some text in a div element!
</span>

Однако атрибут align устарел. Вы должны использовать text-alignсвойство CSS в контейнере.

<div style="text-align: center;">
    <span style="border:1px solid red;">
        This is some text in a div element!
    </span>
</div>

47

Пожалуйста, используйте следующий стиль. margin:autoобычно используется для выравнивания содержимого по центру. display:tableнеобходимо для spanэлемента

<span style="margin:auto; display:table; border:1px solid red;">
    This is some text in a div element!
</span>

37

alignАтрибут является устаревшим. text-alignВместо этого используйте CSS . Кроме того, диапазон не будет центрировать текст, если вы не используете display:blockили display:inline-blockи не установите значение ширины, но тогда он будет вести себя так же, как div (элемент блока).

Можете выложить пример своего макета? Используйте www.jsfiddle.net


Сработало отлично! Спасибо.
dallinchase

Разве я не могу по-разному выровнять два встроенных элемента, сохранив их встроенные элементы?
Дэниел Спрингер,

12
span.login-text {
    font-size: 22px;
    display:table;
    margin-left: auto;
    margin-right: auto;
}

<span class="login-text">Welcome To .....CMP</span>

Для меня это сработало очень хорошо. попробуйте это также


2

Вдобавок ко всем другим объяснениям, я считаю, что вы используете "="знак равенства вместо двоеточия ":":

<span style="border:1px solid red;text-align=center">

Так должно быть:

<span style="border:1px solid red;text-align:center">

1

Span является встроенным блоком и подстраивается под размер встроенного текста с упорством, которое блокирует большинство попыток стилизовать вне встроенного контекста. Чтобы упростить стиль макета (ограничить конфликты), добавьте div к тегу 'p' с разрывом строки.

<p> some default stuff
<br>
<div style="text-align: center;"> your entered stuff </div>

-7

Просто используйте word-wrap:break-word;в css. Оно работает.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.