Centrum wyrównania zakresu HTML nie działa?


107

Mam trochę HTML:

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

Div zmienia odstępy w moim dokumencie, więc zamiast tego chcę użyć do tego zakresu.

Ale span nie centralizuje treści:

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

Jak to naprawić?

EDYTOWAĆ:

Mój pełny kod:

<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
Twój element div „zmienia odstępy”? Co przez to rozumiesz? A twój zakres nie będzie, ponieważ domyślnie jest to element inline , podczas gdy div jest elementem blokowym .
— Bojangles

Cześć JamWaffles, Przez „odstępy” rozumiem, że div dodaje spację nad i pod zawartością. Rozpiętość tego nie robi.
— David19801,

Użyj Firebuga lub inspektora Chrome, aby zobaczyć, jakie reguły CSS są zastosowane do Twojego elementu, i poszukaj tego, który dodaje dopełnienie lub margines. Możliwe jest również, że otaczające elementy mają dopełnienie / margines.
— Bojangles

5
text-align=centerpowinno byćtext-align:center
— n611x007

Odpowiedzi:


197

Element div jest elementem blokowym i będzie obejmował szerokość kontenera, chyba że ustawiono szerokość. Rozpiętość jest elementem wbudowanym i będzie miała szerokość tekstu w środku. Obecnie próbujesz ustawić wyrównanie jako właściwość CSS. Wyrównaj to atrybut.

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

Jednak atrybut align jest przestarzały. Powinieneś użyć text-alignwłaściwości CSS w kontenerze.

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

47

Użyj następującego stylu. margin:autozwykle używane do wyśrodkowania wyrównania zawartości. display:tablejest potrzebny dla spanelementu

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

37

alignAtrybut jest przestarzała. text-alignZamiast tego użyj CSS . Ponadto rozpiętość nie wyśrodkuje tekstu, chyba że użyjesz display:blocklub display:inline-blocki ustawisz wartość szerokości, ale wtedy będzie zachowywać się tak samo jak div (element blokowy).

Czy możesz opublikować przykład swojego układu? Użyj www.jsfiddle.net


Działało świetnie! Dzięki.
— dallinchase

Czy nie mogę wyrównać dwóch elementów wbudowanych w inny sposób, zachowując je jako elementy wbudowane?
— Daniel Springer

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

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

U mnie to działało bardzo dobrze. spróbuj tego również


2

Oprócz wszystkich innych wyjaśnień uważam, że "="zamiast dwukropka używasz znaku równości ":":

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

Powinno być:

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

1

Span jest blokiem liniowym i dostosowuje się do rozmiaru tekstu w wierszu, z wytrzymałością, która blokuje większość wysiłków związanych z stylizacją poza kontekstem wbudowanym. Aby uprościć styl układu (ogranicz konflikty), dodaj element div do tagu „p” z podziałem wiersza.

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

-7

Po prostu użyj word-wrap:break-word;w css. To działa.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.