HTML + CSS: วิธีบังคับให้เนื้อหา div อยู่ในบรรทัดเดียวได้อย่างไร


258

ฉันมีข้อความยาวภายในที่divกำหนดไว้width :

HTML:

<div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    border: 1px solid black;
    width: 70px;
}

ฉันจะบังคับให้สตริงอยู่ในหนึ่งบรรทัดได้อย่างไร (เช่นถูกตัดกลาง "โอเวอร์โฟลว์")

ฉันพยายามใช้overflow: hiddenแต่ก็ไม่ได้ช่วยอะไร


12
white-space: nowrapใส่สิ่งนี้ในแท็กสไตล์ของคุณ
Moshii

คำตอบ:





14

รหัส HTML ของคุณ: <div>Stack Overflow is the BEST !!!</div>

CSS:

div {
    width: 100px;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

ตอนนี้ผลลัพธ์ควรเป็น:

สแต็คโอเวอร์ ...

12

ทุกคนกระโดดขึ้นไปบนนี้ !!! ฉันก็ทำซอ:

http://jsfiddle.net/audetwebdesign/kh4aR/

RobAgar ได้คะแนนจากการชี้white-space:nowrapก่อน

สองสามสิ่งที่คุณต้องการoverflow: hiddenถ้าคุณไม่ต้องการเห็นตัวละครพิเศษโผล่เข้ามาในเลย์เอาต์ของคุณ

นอกจากนี้ตามที่กล่าวไว้คุณสามารถใช้white-space: pre(ดู EnderMB) โปรดทราบว่าpreจะไม่ยุบพื้นที่สีขาวตามที่white-space: nowrapต้องการ


4

ลองดูสิ มันใช้งานpreมากกว่าnowrapที่ฉันคิดว่าคุณต้องการให้มันทำงานคล้าย ๆ กัน<pre>แต่จะใช้งานได้ดี:

div {
    border: 1px solid black;
    max-width: 70px;
    white-space:pre;
}

http://jsfiddle.net/NXchy/11/


4

ฉันกระโดดขึ้นมาที่นี่เพื่อค้นหาสิ่งเดียวกัน แต่ไม่มีใครทำงานให้ฉัน

มีอินสแตนซ์ที่ไม่ว่าคุณจะทำอะไรและขึ้นอยู่กับระบบ (Oracle Designer: Oracle 11g - PL / SQL) divs จะไปที่บรรทัดถัดไปเสมอซึ่งในกรณีนี้คุณควรใช้ span tag แทน

สิ่งนี้ได้ผลมหัศจรรย์สำหรับฉัน

<span float: left; white-space: nowrap; overflow: hidden; onmouseover="rollOverImageSectionFiveThreeOne(this)">
    <input type="radio" id="radio4" name="p_verify_type" value="SomeValue"  />
</span> 
Just Your Text || 
<span id="headerFiveThreeOneHelpText" float: left; white-space: nowrap; overflow: hidden;></span>

ความช่วยเหลืออย่างมากในเรื่องนี้นี่คือทั้งหมดที่ได้ผลสำหรับฉันอาจใช้เวลา 30 นาทีกับเรื่องนี้ฮ่า ๆ อย่างผิดปกติฉันไม่ได้ใช้สิ่งที่คุณพูดถึง css, javascript, bootstrap และ css ที่กำหนดเอง
edencorbin


1
div {
    display: flex;
    flex-direction: row; 
}

เป็นวิธีแก้ปัญหาที่เหมาะกับฉัน ในบางกรณีที่มี - divรายการนี้จำเป็น

ค่าทิศทางที่เป็นทางเลือกคือrow-reverse, column, column-reverse, unset, initial, inherit สิ่งที่คุณคาดหวังให้ทำ


0

ลองตั้งค่าความสูงเพื่อให้บล็อกไม่สามารถเติบโตเพื่อรองรับข้อความของคุณและรักษาoverflow: hiddenพารามิเตอร์ไว้

แก้ไข: นี่คือตัวอย่างของสิ่งที่คุณอาจชอบถ้าคุณต้องการแสดง 2 บรรทัดสูง:

div {
    border: 1px solid black;
    width: 70px;
    height: 2.2em;
    overflow: hidden;
}

ในกรณีของคุณตัวเลือก nowrap น่าจะดีกว่า แต่ฉันออกจากคำตอบของฉันเพราะบางครั้งฉันพบว่าตัวเองต้องการบล็อกที่อาจมีบางบรรทัดที่ห่อจนกว่าจะล้นเช่นนี้: jsfiddle.net/NXchy/7 (เปลี่ยนลิงค์จากเวอร์ชั่นของ Stephenmurdoch ขอบคุณ!)
Wouter Simons

ไม่จำเป็นต้องทำสิ่งนี้จะเกิดอะไรขึ้นหากผู้ใช้ต้องการเพิ่มขนาดตัวอักษรโดยใช้ ctrl- + การรักษาความยืดหยุ่นให้สูงนั้นดีกว่า
Marc Audet

หากผู้ใช้ปรับขนาดข้อความด้วย ctrl- + ควรใช้งานได้: jsfiddle.net/kpKW3
Wouter Simons

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