pre
แท็กมีประโยชน์อย่างยิ่งสำหรับบล็อคโค้ดใน HTML และสำหรับการดีบั๊กขณะเขียนสคริปต์ แต่ฉันจะทำให้การตัดคำข้อความแทนที่จะพิมพ์ออกมาหนึ่งบรรทัดยาวได้อย่างไร
pre
แท็กมีประโยชน์อย่างยิ่งสำหรับบล็อคโค้ดใน HTML และสำหรับการดีบั๊กขณะเขียนสคริปต์ แต่ฉันจะทำให้การตัดคำข้อความแทนที่จะพิมพ์ออกมาหนึ่งบรรทัดยาวได้อย่างไร
คำตอบ:
คำตอบจากหน้านี้ใน CSS:
pre {
white-space: pre-wrap; /* Since CSS 2.1 */
white-space: -moz-pre-wrap; /* Mozilla, since 1999 */
white-space: -pre-wrap; /* Opera 4-6 */
white-space: -o-pre-wrap; /* Opera 7 */
word-wrap: break-word; /* Internet Explorer 5.5+ */
}
pre-line
ยุบช่องว่างทั้งหมด (ไม่ใช่ที่จุดเริ่มต้นของบรรทัด) developer.mozilla.org/en-US/docs/Web/CSS/white-spaceมีตารางสรุปพฤติกรรมของwhite-space
ค่า
word-wrap: break-word
ไม่ได้ทำสิ่งที่คำถามกำลังถามอยู่มันทำให้เกิดการตัดบรรทัดเพื่อให้เกิดขึ้นแม้ในระหว่างคำ คุณสามารถลบบรรทัดนั้น ในเบราว์เซอร์สมัยใหม่คุณไม่จำเป็นต้องมีส่วน-moz
นำหน้าใด ๆหรืออื่น ๆ
วิธีนี้ใช้งานได้ดีในการตัดข้อความและบำรุงรักษาพื้นที่สีขาวภายในpre
-tag:
pre {
white-space: pre-wrap;
}
ฉันพบว่าการข้ามแท็กล่วงหน้าและใช้ white-space: การพอกล่วงหน้าบน div เป็นวิธีแก้ปัญหาที่ดีกว่า
<div style="white-space: pre-wrap;">content</div>
style="white-space: pre-wrap; font-family:monospace;"
<pre>
โค้ดบล็อก
รวบรัดที่สุดนี้บังคับให้เนื้อหาห่อภายในของแท็ก "ก่อน" โดยไม่ทำลายคำ ไชโย!
pre {
white-space: pre-wrap;
word-break: keep-all
}
นี่คือสิ่งที่ฉันต้องการ มันเก็บคำจากการแตกหัก แต่ได้รับอนุญาตสำหรับความกว้างแบบไดนามิกในพื้นที่ก่อน
word-break: keep-all;
ฉันแนะนำให้ลืม pre และใส่ไว้ใน textarea
การเยื้องของคุณจะยังคงอยู่และรหัสของคุณจะไม่ถูกห่อคำกลางเส้นทางหรืออะไรสักอย่าง
เลือกช่วงข้อความในพื้นที่ข้อความได้ง่ายขึ้นหากคุณต้องการคัดลอกไปยังคลิปบอร์ด
ต่อไปนี้เป็นข้อความที่ตัดตอนมา php ดังนั้นหากคุณไม่ได้อยู่ใน php วิธีที่คุณแพ็คตัวอักษรพิเศษ html จะแตกต่างกันไป
<textarea style="font-family:monospace;" onfocus="copyClipboard(this);"><?=htmlspecialchars($codeBlock);?></textarea>
สำหรับข้อมูลเกี่ยวกับวิธีคัดลอกข้อความไปยังคลิปบอร์ดใน js ดูที่: ฉันจะคัดลอกไปยังคลิปบอร์ดใน JavaScript ได้อย่างไร .
อย่างไรก็ตาม ...
ฉันเพิ่งตรวจสอบบล็อคโค้ดสแต็คโอเวอร์โฟลว์และพวกมันห่อในแท็ก <code> ที่ห่อด้วยแท็ก <pre> ด้วย css ...
code {
background-color: #EEEEEE;
font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
}
pre {
background-color: #EEEEEE;
font-family: Consolas,Menlo,Monaco,Lucida Console,Liberation Mono,DejaVu Sans Mono,Bitstream Vera Sans Mono,Courier New,monospace,serif;
margin-bottom: 10px;
max-height: 600px;
overflow: auto;
padding: 5px;
width: auto;
}
นอกจากนี้เนื้อหาของบล็อกรหัส StackOverflow ที่เป็นไฮไลต์ไวยากรณ์ใช้ (ฉันคิด) http://code.google.com/p/google-code-prettify/
มันเป็นการตั้งค่าที่ดี แต่ฉันเพิ่งจะไปกับ textareas ในตอนนี้
<pre>
มีความหมายเชิงความหมายใด ๆ (ไม่เหมือน<code>
) มันก็หมายความว่าควรขึ้นบรรทัดใหม่และช่องว่างหลายช่อง
ฉันรวม @richelectron และ @ user1433454 คำตอบ
มันทำงานได้ดีมากและรักษารูปแบบข้อความ
<pre style="white-space: pre-wrap; word-break: keep-all;">
</pre>
คุณสามารถ:
pre { white-space: normal; }
เพื่อรักษาแบบอักษร monospace แต่เพิ่ม word-wrap หรือ:
pre { overflow: auto; }
ซึ่งจะทำให้ขนาดคงที่พร้อมการเลื่อนในแนวนอนสำหรับสายยาว
ลองใช้ดู
<pre style="white-space:normal;">.
หรือดีกว่าโยน CSS
ใช้white-space: pre-wrap
และนำหน้าบางส่วนสำหรับการแบ่งบรรทัดอัตโนมัติภายในpre
s
อย่าใช้word-wrap: break-word
เพราะเพียงแค่นี้แบ่งคำครึ่งหนึ่งซึ่งอาจเป็นสิ่งที่คุณไม่ต้องการ
วิธีที่ดีที่สุดในการข้ามเบราว์เซอร์ทำงานให้ฉันได้รับการแบ่งบรรทัดและแสดงรหัสหรือข้อความที่ถูกต้อง: (chrome, Internet explorer, Firefox)
CSS:
xmp{ white-space:pre-wrap; word-wrap:break-word; }
HTML:
<xmp> your text or code </xmp>
ต่อไปนี้ช่วยฉัน:
pre {
white-space: normal;
word-wrap: break-word;
}
ขอบคุณ
white-space: pre-wrap;
เพราะเคารพพื้นที่สีขาว
<pre>
องค์ประกอบย่อมาจาก "ก่อนจัดรูปแบบข้อความ" และมีวัตถุประสงค์เพื่อให้การจัดรูปแบบของข้อความ (หรืออะไรก็ตาม) ระหว่างแท็กของมัน ดังนั้นจึงไม่จำเป็นต้องมีการตัดคำอัตโนมัติหรือแบ่งบรรทัดภายใน<pre>
-Tag
ข้อความในองค์ประกอบที่จะปรากฏในตัวอักษรความกว้างคงที่ (มักจะ Courier) และมันจะเก็บรักษาทั้งพื้นที่และแบ่งสาย
ที่มา: w3schools.comเน้นทำด้วยตัวเอง
white-space:pre-line;
(และทุกรสชาติที่เข้ากันได้กับเบราว์เซอร์) ดูเหมือนจะเพียงพอในบางกรณี (โดยไม่มีแท็บ) เนื่องจากใช้พื้นที่ห่างจากจุดเริ่มต้นของบรรทัด (ถ้ามี)