มีวิธีป้องกันการแตกบรรทัดหลัง div ด้วย css หรือไม่?
ตัวอย่างเช่นฉันมี
<div class="label">My Label:</div>
<div class="text">My text</div>
และต้องการให้แสดงเช่น:
ป้ายกำกับของฉัน: ข้อความของฉัน
มีวิธีป้องกันการแตกบรรทัดหลัง div ด้วย css หรือไม่?
ตัวอย่างเช่นฉันมี
<div class="label">My Label:</div>
<div class="text">My text</div>
และต้องการให้แสดงเช่น:
ป้ายกำกับของฉัน: ข้อความของฉัน
คำตอบ:
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
กฎระเบียบที่เป็นไปตามคาดสำหรับองค์ประกอบบล็อก อย่างไรก็ตามถือว่าเป็นองค์ประกอบแบบอินไลน์เพื่อจุดประสงค์ในการจัดวางภายในองค์ประกอบอื่น ๆ
อ่านข้อมูลเพิ่มเติม
.label, .text {display: inline}
แม้ว่าคุณจะใช้สิ่งนั้นคุณอาจเปลี่ยน div เป็น span ได้เช่นกัน
โดยค่าเริ่มต้น DIV เป็นองค์ประกอบการแสดง BLOCK ซึ่งหมายความว่ามันอยู่ในบรรทัดของตัวเอง หากคุณเพิ่มการแสดงคุณสมบัติ CSS: อินไลน์มันจะทำงานตามที่คุณต้องการ แต่บางทีคุณควรพิจารณา SPAN แทน?
<span class="label">My Label:</span>
<span class="text">My text</span>
div
องค์ประกอบองค์ประกอบของบล็อกได้โดยเริ่มต้นที่พวกเขาใช้ upp ความกว้างใช้ได้เต็มรูปแบบ
วิธีหนึ่งคือเปลี่ยนให้เป็นองค์ประกอบแบบอินไลน์:
.label, .text { display: inline; }
สิ่งนี้จะมีผลเช่นเดียวกับการใช้span
องค์ประกอบแทนdiv
องค์ประกอบ
อีกวิธีหนึ่งคือการลอยองค์ประกอบ:
.label, .text { float: left; }
สิ่งนี้จะเปลี่ยนวิธีการกำหนดความกว้างขององค์ประกอบดังนั้น thwy จะกว้างเท่ากับเนื้อหาเท่านั้น นอกจากนี้ยังจะทำให้องค์ประกอบลอยอยู่ข้างๆกันคล้ายกับภาพที่ไหลอยู่ข้างๆกัน
คุณยังสามารถพิจารณาเปลี่ยนองค์ประกอบต่างๆ div
องค์ประกอบที่มีไว้สำหรับหน่วยงานเอกสารผมมักจะใช้label
และspan
องค์ประกอบสำหรับการสร้างเช่นนี้:
<label>My Label:</label>
<span>My text</span>
div ใช้เพื่อสร้างโครงสร้างให้กับเว็บไซต์หรือมีข้อความหรือองค์ประกอบจำนวนมาก แต่ดูเหมือนว่าคุณจะใช้เป็นป้ายกำกับคุณควรใช้ span ซึ่งจะทำให้ข้อความทั้งสองติดกันโดยอัตโนมัติและคุณไม่จำเป็นต้องเขียน รหัส css สำหรับมัน
และแม้ว่าคนอื่นจะบอกให้คุณลอยองค์ประกอบก็ควรที่จะเปลี่ยนแท็ก
ฉันไม่คิดว่าฉันเคยเห็นเวอร์ชันนี้:
<div class="label">My Label:<span class="text">My text</span></div>
<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;}
ลองใช้clear:none
แอตทริบิวต์ css กับป้ายกำกับ
.label {
clear:none;
}
div
ยังคงมีค่าเริ่มต้นwidth:auto
ที่ทำให้ใช้ความกว้างทั้งหมดที่มีอยู่
ลองลอย div ของคุณใน css
.label {
float:left;
width:200px;
}
.text {
float:left;
}
clear: left;
เพื่อให้เอกสารกลับสู่โฟลว์ปกติ
ฉันประสบความสำเร็จหลายครั้งในการรับ div โดยไม่มีการแบ่งบรรทัดหลังจากนั้นโดยการเล่นกับแอตทริบิวต์ float css และแอตทริบิวต์ width css
แน่นอนว่าหลังจากแก้ปัญหาแล้วคุณต้องทดสอบในทุกเบราว์เซอร์และในแต่ละเบราว์เซอร์คุณต้องปรับขนาดหน้าต่างใหม่เพื่อให้แน่ใจว่าใช้งานได้ในทุกสถานการณ์
ใช้รหัสนี้สำหรับ div ปกติ
display: inline;
ใช้รหัสนี้ถ้าคุณใช้ในตาราง
display: inline-table;
ดีกว่าตาราง
ลองใช้วิธีนี้ (ในCSS
) เพื่อป้องกันการแตกบรรทัดในdiv
ข้อความ:
white-space: nowrap;