2016-01-08 15 views
6

Tôi đang sử dụng kiểu white-space: pre-wrap trên phần tử HTML <pre> để cho phép các đường ngắt khi chúng dài hơn cửa sổ trình duyệt.cho biết ngắt dòng tự động trong không gian trắng: phần tử bao bọc trước

Thật không may những đường bị hỏng đó cũng xem như thể chúng có ngắt dòng ở cuối; người dùng không thể nhìn thấy nếu đó là ngắt dòng tự động.

Có cách nào để hiển thị hoặc ở cuối dòng đang gói (như biểu tượng emacs với ký tự \) hoặc ở đầu dòng được bao bọc là chúng tiếp tục dòng trước đó (ví dụ: với )?

Sao chép & dán không được sao chép các ký tự tiếp tục.


Example code:

<pre style="white-space: pre-wrap">for i in range(19): selwidth=5; selheight=1000; image = gimp.image_list()[0];posx=initx+i*90; pdb.gimp_image_select_polygon(image, 2, 8, [posx, 0, posx+selwidth, 0, posx+selwidth-selheight, selheight, posx-selheight, selheight]);</pre > 

Preferred vẽ, với một vào đầu dòng tiếp:

for i in range(19): selwidth=5; selheight=1000; image = gimp.image_list()[0];posx= 
→initx+i*90; pdb.gimp_image_select_polygon(image, 2, 8, [posx, 0, posx+selwidth, 0, 
→posx+selwidth-selheight, selheight, posx-selheight, selheight]); 
+1

Không thể thêm các biểu tượng trên dòng-chia được tạo ra bởi gói văn bản, nhưng bạn có thể thêm '→' https://jsfiddle.net/rv5d5omL/3/ hoặc '↳' https: // jsfiddle.net/rv5d5omL/4/trên mỗi ngắt dòng '\ n' –

+0

Điều này^^. Và liên quan đến * ".. sao chép và dán không nên sao chép các ký tự tiếp tục ..." * - bạn có thể sử dụng một biến thể của mã được đưa ra bởi @ Mi-Creativity - https://jsfiddle.net/abhitalks/e9v8audb/ - Điều này sẽ không bao gồm các ký tự khi sao chép và cũng có thể lập trình 'textContent' sẽ không bao gồm các ký tự đó, giữ cho nó sạch sẽ. – Abhitalks

+0

này giống như @Abhitalks fiddle nhưng với biểu tượng mũi tên "quay lại" và biểu tượng cuối cùng bị xóa https://jsfiddle.net/e9v8audb/4/ –

Trả lời

2

Pre được thiết kế để giữ cho văn bản như nó đã được gõ. Nó giúp giữ cho thơ và văn bản đặc biệt như chúng được dự định để được nhìn thấy và không được định dạng bởi trình duyệt. Tôi sẽ nghĩ hầu hết mọi người sẽ có thể nói một dòng văn bản đang được bọc trong Pre với khoảng trắng: được bọc trước bởi vì nó sẽ trông giống như thế này: Năm con khỉ nhỏ nhảy trên giường, {{line break}} Một người ngã xuống và va đầu. {{Ngắt dòng}} Mama gọi là Doctor và Bác sĩ nói, {{ngắt dòng}} "Không còn con khỉ nhảy trên giường!'. {{Ngắt dòng}}

Nếu bạn đi với thẳng HTML <p> nó sẽ trông giống như bạn đã gõ nó trong ví dụ của bạn và <pre> với khoảng trắng: trước khi bọc sẽ trông không gian như bạn đã gõ nó. CSS để tô màu và kích thước hoặc thực hiện <span> trên toàn bộ câu cho màu nền CSS.

+0

Xin lỗi, tôi không nói rõ là tôi đang nói về mã nguồn. Tôi đã cập nhật ví dụ. – cweiske

2

AFAIK không phải với CSS, thay vào đó bạn có thể thay thế mỗi dòng mới bằng 2 dòng mới để dòng mới được phân biệt khi văn bản kết thúc, để thực hiện việc này hoặc nhập thủ công hai - hoặc nhiều hơn - ngắt dòng <br> s cho mỗi dòng mới hoặc nếu bạn có thể sử dụng javascript sau đó bạn có thể thay thế mỗi dấu chấm phẩy ;-vì ví dụ được cung cấp trong câu hỏi là mã nơi mỗi dòng kết thúc với; - thay thế nó với ;\n\n-hoặc với ;<br><br> thay - do đó nó sẽ được công nhận.

JS Fiddle

var pre = document.getElementsByTagName('pre')[0], 
 
    preHTML = pre.innerHTML; 
 

 
pre.innerHTML = preHTML.replace(/;\s*/g, ";\n\n");
<pre style="white-space: pre-wrap">for i in range(19): selwidth=5; selheight=1000; image = gimp.image_list()[0];posx=initx+i*90; pdb.gimp_image_select_polygon(image, 2, 8, [posx, 0, posx+selwidth, 0, posx+selwidth-selheight, selheight, posx-selheight, selheight]);</pre >

+0

Sau đó, mã nguồn với ngắt dòng bình thường đã đột ngột chiều cao gấp đôi, mà không phải là những gì tôi muốn. – cweiske

Các vấn đề liên quan