ป้องกัน linebreak หลังจาก </div>


95

มีวิธีป้องกันการแตกบรรทัดหลัง div ด้วย css หรือไม่?

ตัวอย่างเช่นฉันมี

<div class="label">My Label:</div>
<div class="text">My text</div>

และต้องการให้แสดงเช่น:

ป้ายกำกับของฉัน: ข้อความของฉัน

คำตอบ:


152

display:inline;

หรือ

float:left;

หรือ

display:inline-block; - อาจใช้ไม่ได้กับทุกเบราว์เซอร์

จุดประสงค์ของการใช้divที่นี่คืออะไร? ฉันขอแนะนำspanเนื่องจากเป็นองค์ประกอบแบบอินไลน์ในขณะที่ a divเป็นองค์ประกอบระดับบล็อก


โปรดทราบว่าแต่ละตัวเลือกด้านบนจะทำงานแตกต่างกัน

display:inline;จะเปลี่ยนdivให้เทียบเท่ากับไฟล์span. มันจะเป็นผลกระทบจากmargin-top, margin-bottom, padding-top, padding-bottom, heightฯลฯ

float:left;เก็บdivเป็นองค์ประกอบระดับบล็อก จะยังคงใช้พื้นที่เหมือนกับว่าเป็นบล็อกอย่างไรก็ตามความกว้างจะพอดีกับเนื้อหา (สมมติว่าwidth:auto;) อาจต้องใช้เอclear:left;ฟเฟกต์บางอย่าง

display:inline-block;เป็นตัวเลือก "ที่ดีที่สุดของทั้งสองโลก" divจะถือว่าเป็นองค์ประกอบบล็อก มันตอบสนองต่อการทั้งหมดของmargin, paddingและheightกฎระเบียบที่เป็นไปตามคาดสำหรับองค์ประกอบบล็อก อย่างไรก็ตามถือว่าเป็นองค์ประกอบแบบอินไลน์เพื่อจุดประสงค์ในการจัดวางภายในองค์ประกอบอื่น ๆ

อ่านข้อมูลเพิ่มเติม


3
ฉันใช้แท็ก div เนื่องจากเทมเพลตสร้างขึ้นโดยอัตโนมัติ
Fabiano

div พร้อมจอแสดงผล: อินไลน์บนนั้นโดยพื้นฐานแล้วจะเหมือนกับสแปน มันเป็นภาชนะที่ไม่มีความหมาย ความแตกต่างเพียงอย่างเดียวคือโหมดการแสดงผลเริ่มต้น (block vs inline)
Joeri Hendrickx

div พร้อมจอแสดงผล: อินไลน์ใช้ไม่ได้บน Safari แต่ก็หยุดทำงาน ฉันใช้สแปน
Gustavo

อินไลน์บล็อกช่วยเท่านั้น ขอบคุณ!
Drey

12
.label, .text {display: inline}

แม้ว่าคุณจะใช้สิ่งนั้นคุณอาจเปลี่ยน div เป็น span ได้เช่นกัน


10

โดยค่าเริ่มต้น DIV เป็นองค์ประกอบการแสดง BLOCK ซึ่งหมายความว่ามันอยู่ในบรรทัดของตัวเอง หากคุณเพิ่มการแสดงคุณสมบัติ CSS: อินไลน์มันจะทำงานตามที่คุณต้องการ แต่บางทีคุณควรพิจารณา SPAN แทน?



5

divองค์ประกอบองค์ประกอบของบล็อกได้โดยเริ่มต้นที่พวกเขาใช้ upp ความกว้างใช้ได้เต็มรูปแบบ

วิธีหนึ่งคือเปลี่ยนให้เป็นองค์ประกอบแบบอินไลน์:

.label, .text { display: inline; }

สิ่งนี้จะมีผลเช่นเดียวกับการใช้spanองค์ประกอบแทนdivองค์ประกอบ

อีกวิธีหนึ่งคือการลอยองค์ประกอบ:

.label, .text { float: left; }

สิ่งนี้จะเปลี่ยนวิธีการกำหนดความกว้างขององค์ประกอบดังนั้น thwy จะกว้างเท่ากับเนื้อหาเท่านั้น นอกจากนี้ยังจะทำให้องค์ประกอบลอยอยู่ข้างๆกันคล้ายกับภาพที่ไหลอยู่ข้างๆกัน

คุณยังสามารถพิจารณาเปลี่ยนองค์ประกอบต่างๆ divองค์ประกอบที่มีไว้สำหรับหน่วยงานเอกสารผมมักจะใช้labelและspanองค์ประกอบสำหรับการสร้างเช่นนี้:

<label>My Label:</label>
<span>My text</span>

4

div ใช้เพื่อสร้างโครงสร้างให้กับเว็บไซต์หรือมีข้อความหรือองค์ประกอบจำนวนมาก แต่ดูเหมือนว่าคุณจะใช้เป็นป้ายกำกับคุณควรใช้ span ซึ่งจะทำให้ข้อความทั้งสองติดกันโดยอัตโนมัติและคุณไม่จำเป็นต้องเขียน รหัส css สำหรับมัน

และแม้ว่าคนอื่นจะบอกให้คุณลอยองค์ประกอบก็ควรที่จะเปลี่ยนแท็ก


3

ฉันไม่คิดว่าฉันเคยเห็นเวอร์ชันนี้:

<div class="label">My Label:<span class="text">My text</span></div>

2
<div id="hassaan">
     <div class="label">My Label:</div>
     <div class="text">My text</div>
</div>

CSS:

#hassaan{ margin:auto; width:960px;}
#hassaan:nth-child(n){ clear:both;}
.label, .text{ width:480px; float:left;}

5
คุณอาจต้องการอธิบายคำตอบของคุณเพื่อประโยชน์ของ OP
Luca

1

ลองใช้clear:noneแอตทริบิวต์ css กับป้ายกำกับ

.label {
     clear:none;
}

1
ไม่มีผลใด ๆ เนื่องจากdivยังคงมีค่าเริ่มต้นwidth:autoที่ทำให้ใช้ความกว้างทั้งหมดที่มีอยู่
Guffa

0

ลองลอย div ของคุณใน css

.label {
float:left;
width:200px;
}
.text {
float:left;
}

1
อย่าลืมสร้างองค์ประกอบถัดไปclear: left;เพื่อให้เอกสารกลับสู่โฟลว์ปกติ
พีท

0

ฉันประสบความสำเร็จหลายครั้งในการรับ div โดยไม่มีการแบ่งบรรทัดหลังจากนั้นโดยการเล่นกับแอตทริบิวต์ float css และแอตทริบิวต์ width css
แน่นอนว่าหลังจากแก้ปัญหาแล้วคุณต้องทดสอบในทุกเบราว์เซอร์และในแต่ละเบราว์เซอร์คุณต้องปรับขนาดหน้าต่างใหม่เพื่อให้แน่ใจว่าใช้งานได้ในทุกสถานการณ์


0

ใช้รหัสนี้สำหรับ div ปกติ display: inline;

ใช้รหัสนี้ถ้าคุณใช้ในตาราง display: inline-table; ดีกว่าตาราง


0

ลองใช้วิธีนี้ (ในCSS) เพื่อป้องกันการแตกบรรทัดในdivข้อความ:

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