HTML Span align center ไม่ทำงาน?


109

ฉันมี HTML:

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

Div กำลังเปลี่ยนระยะห่างบนเอกสารของฉันดังนั้นฉันจึงต้องการใช้ช่วงนี้แทน

แต่สแปนไม่ได้รวมศูนย์เนื้อหา:

<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 เพิ่มช่องว่างด้านบนและด้านล่างของเนื้อหา ช่วงไม่ทำเช่นนี้
David19801

ใช้ Firebug หรือตัวตรวจสอบ Chrome เพื่อดูว่ากฎ CSS ใดที่ใช้กับองค์ประกอบของคุณและมองหากฎที่เพิ่มช่องว่างภายในหรือระยะขอบ นอกจากนี้ยังเป็นไปได้ว่าองค์ประกอบรอบข้างมีช่องว่างภายใน / ระยะขอบ
Bojangles

5
text-align=centerควรจะเป็นtext-align:center
n611x007

คำตอบ:


199

div เป็นองค์ประกอบบล็อกและจะขยายความกว้างของคอนเทนเนอร์เว้นแต่จะกำหนดความกว้างไว้ สแปนเป็นองค์ประกอบแบบอินไลน์และจะมีความกว้างของข้อความอยู่ภายใน ขณะนี้คุณกำลังพยายามตั้งค่า align เป็นคุณสมบัติ CSS Align เป็นแอตทริบิวต์

<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แอตทริบิวต์จะเลิก ใช้ CSS text-alignแทน นอกจากนี้สแปนจะไม่จัดกึ่งกลางข้อความเว้นแต่คุณจะใช้display:blockหรือdisplay:inline-blockและตั้งค่าสำหรับความกว้าง แต่จะทำงานเหมือนกับ div (องค์ประกอบบล็อก)

คุณสามารถโพสต์ตัวอย่างเค้าโครงของคุณได้หรือไม่? ใช้ www.jsfiddle.net


ทำงานได้ดีมาก! ขอบคุณ.
dallinchase

ฉันไม่สามารถจัดองค์ประกอบแบบอินไลน์สองรายการให้แตกต่างกันในขณะที่ยังคงองค์ประกอบแบบอินไลน์ไว้ได้หรือไม่
Daniel Springer

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>

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.