2013-08-05 40 views
6

Làm cách nào để bạn đặt trường nhập để hiển thị dấu ba chấm nếu văn bản quá dài? Trường nhập chỉ đọc và độ rộng của nó được đặt thành 100%.Làm cách nào để hiển thị dấu ba chấm trên trường nhập chỉ đọc trong trình duyệt chứng khoán Android?

Điều này có khả thi không? Nếu không, làm thế nào để bạn làm điều đó trong JavaScript?

Lưu ý: Mặc dù điều này dường như hoạt động trên Chrome, nhưng nó không hoạt động trên trình duyệt chứng khoán Android.

css hiện tại của tôi đối với lĩnh vực đầu vào:

white-space: nowrap; 
overflow: hidden; 
text-overflow: ellipsis; 

Cảm ơn!

+3

có thể trùng lặp của [Chèn dấu ba chấm (...) vào thẻ HTML nếu nội dung quá rộng] (http://stackoverflow.com/questions/536814/insert-ellipsis-into-html-tag-if-content-too toàn bộ) –

+1

@ JukkaK.Korpela: Liên kết trên liên quan đến thẻ html chung. Câu hỏi của tôi là cụ thể cho trường nhập. Tôi đã có thể hiển thị dấu ba chấm trên các thẻ html nhưng không hiển thị trên trường nhập. Cảm ơn! – Arci

+1

Nếu bạn có một câu hỏi cụ thể về một trường hợp đặc biệt, nó sẽ được trình bày theo cách đó (tốt nhất là với một tham chiếu đến trường hợp chung). Từ nhận xét, có vẻ như bạn đang gặp sự cố với một trình duyệt cụ thể. Do làm rõ nên được thực hiện vào văn bản và có thể tiêu đề của * câu hỏi *, không chỉ trong ý kiến. –

Trả lời

1

Tôi nghĩ answer này sẽ giúp bạn

Bạn có thể tạo một lớp và áp dụng nó vào HTML textbox
bạn

<input type="text" readonly value="Lorem ispum dolor sit amit Lorem ispum dolor sit amit Lorem ispum dolor sit amit Lorem ispum dolor sit amit " class="ellipsis"> 

CSS

.ellipsis { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
} 

Để Khắc phục sự cố CSS Android text-overflow theo Ben

*{ 
    text-rendering: optimizeLegibility; 
} 

Kiểm tra nó sống ở đây http://jsfiddle.net/b4YjX/

+0

Cảm ơn câu trả lời của bạn nhưng điều này không hoạt động trên trình duyệt Android. Mã hiện tại của tôi giống với mã của bạn trừ đi '-o-text-overflow'. Trong khi nó hoạt động trên Chrome, nó không hoạt động trên trình duyệt chứng khoán Android. – Arci

+0

@Arci: bạn có thể xem cái này không? http://www.chilisapps.com/blog/2013/04/18/css-text-overflow-issues-on-android/ – zzlalani

+0

Cảm ơn bạn đã liên kết! Tuy nhiên, nó không giải quyết được vấn đề của tôi. Tôi cũng đã thử thuộc tính 'optimizationLegibility' nhưng trường nhập vẫn không hiển thị dấu ba chấm. – Arci

5

Tùy thuộc vào yêu cầu của bạn, bạn có thể sử dụng CSS của text-overflow để đạt được điều này:

HTML:

<input disabled="disabled" value="really really long text that will be trunked" /> 

CSS

input{ 
    text-overflow: ellipsis; 
    -o-text-overflow: ellipsis; 
    width: 100px; 
} 

demo: http://jsfiddle.net/yrPc8/

+0

Xin chào! Cám ơn bạn đã góp ý! Tôi cũng có văn bản tràn với chiều rộng nhưng nó vẫn không hiển thị dấu ba chấm trên trình duyệt chứng khoán Android. – Arci

0

Các mã sau đây đã được thử nghiệm và nó hoạt động, tôi hy vọng rằng sẽ giúp!

.input{ 
overflow:hidden; 
text-overflow:ellipsis; 
width:100%; 
} 
+0

Cảm ơn, Daniel! Nhưng câu trả lời của bạn cũng giống như những người bình luận khác. Tuy nhiên, điều này không hoạt động trên trình duyệt chứng khoán Android. – Arci

0

này dường như là một giới hạn/lỗi trong trình duyệt Android: nó có vẻ thất bại trong việc thực hiện text-overflow: ellipsis trên bất kỳ yếu tố input.

Ví dụ, thay vì <input name=foo value="some long string here" width=100%>, bạn có thể sử dụng

<style> 
.hidden { 
    white-space: nowrap; 
    overflow: hidden; 
    text-overflow: ellipsis; 
    width: 100%; 
} 
</style> 
<div class=hidden>some long string here</div> 
<input type=hidden name=foo value="some long string here"> 

Đối với một lĩnh vực readonly, có một cách giải quyết đơn giản: lặp lại trong các dữ liệu, đầu tiên trong (nói) div yếu tố, mà bạn thiết lập text-overflow: ellipsis, và sau đó trong một lĩnh vực ẩn. Bạn có thể muốn tạo kiểu cho phần tử đầu tiên trông giống như một trường chỉ đọc, nhưng giữ nó như văn bản bình thường sẽ làm cho nó rõ ràng hơn với người dùng rằng dữ liệu này không thể được chỉnh sửa bằng các phương tiện bình thường.

Như thường lệ với các thiết bị nhỏ, bạn thường cần một cái gì đó như <meta name="viewport" content="width=device-width,initial-scale=1"> để tạo 100% tương ứng với chiều rộng thiết bị thực tế.

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