2011-08-30 29 views
13

Tôi muốn giới hạn văn bản đến một số cố định của dòng cho một bảng của 150px chiều rộng trong email html, ví dụ:hạn chế văn bản để chỉ hai dòng

Long text continues down the road into a lane and doesn't stop there 

Tôi muốn nó trông như thế này :

Long text continues down 
the road into a lane and... 

tôi cắt bỏ chuỗi cho một tối đa 45 ký tự bao gồm lược, nhưng đôi khi một từ lâu hiện diện nó đi tới ba dòng:

Long text continues at 
accelerating speed into the 
road... 

Lý tưởng nhất là tôi muốn ngắt từ tăng tốc hoặc thay vì điền vào nhiều ký tự trong dòng đầu tiên và tiếp tục dòng thứ hai, có cách nào để làm điều này trong html không? (Tôi đã xem từ bọc nhưng dường như nó không được hỗ trợ trong tất cả các ứng dụng email)

Vì đây là ứng dụng email, tôi cũng không thể thực hiện bất kỳ javascript nào.

Trả lời

12

CSS Giải pháp

Bạn có thể thiết lập một chiều cao và làm tràn ẩn.

span { 
    display: inline-block; 
    border: black 1px solid; 
    width: 300px; 
    height: 40px; 
    overflow: hidden; 
} 

Ví dụ: http://jsfiddle.net/imoda/REs2Q/


PHP Giải pháp

Các máy chủ thay thế mặt là sử dụng substr

<?php 

    $string = "Oh squiggly line in my eye fluid. I see you lurking there on the peripheral of my vision. But when I try to look at you, you scurry away. Are you shy, squiggly line? Why only when I ignore you, do you return to the center of my eye? Oh, squiggly line, it's alright, you are forgiven."; 

    echo charlimit($string, 100); 

    function charlimit($string, $limit) { 

     return substr($string, 0, $limit) . (strlen($string) > $limit ? "..." : ''); 
    } 

?> 

Ví dụ: http://codepad.org/OetkaMh6

Điều này sẽ xuất ra 100 ký tự của chuỗi sau đó nối thêm ... Thủ thuật với điều này là bạn sẽ phải thay đổi số ký tự thành những gì phù hợp nhất với tình huống của bạn. Bởi vì nó là mặt máy chủ, nó sẽ không biết có bao nhiêu ký tự cần thiết trong mỗi kịch bản để kích hoạt chỉ có một trở về vận chuyển.

Ngoài ra, bạn có thể giới hạn số lượng từ:

<?php 

    $string = "Oh squiggly line in my eye fluid. I see you lurking there on the peripheral of my vision. But when I try to look at you, you scurry away. Are you shy, squiggly line? Why only when I ignore you, do you return to the center of my eye? Oh, squiggly line, it's alright, you are forgiven."; 

    echo wordlimit($string, 20); 

    function wordlimit($string, $limit) { 

     $overflow = true; 

     $array = explode(" ", $string); 

     $output = ''; 

     for ($i = 0; $i < $limit; $i++) { 

      if (isset($array[$i])) $output .= $array[$i] . " "; 
      else $overflow = false; 
     } 

     return trim($output) . ($overflow ? "..." : ''); 
    } 

?> 

Ví dụ: http://codepad.org/WYJFPaD5

Nhưng đó là điều tương tự, bạn phải chỉnh nó để "phù hợp nhất"

Hy vọng rằng sẽ giúp.

+0

cảm ơn, nhưng tôi sẽ không thể hiển thị dấu chấm lửng bằng cách sử dụng phương pháp này tôi đoán .. là có cách nào cho tôi để tiền xử lý các chuỗi trên phía máy chủ để đạt được hành vi mong muốn? –

+0

Có, bạn có thể sử dụng bất kỳ công nghệ phía máy chủ nào để cắt xâu chuỗi theo chiều dài mong muốn ở phía máy chủ bằng cách sử dụng các chức năng thao tác chuỗi, câu hỏi là môi trường bạn làm việc ở phía máy chủ hoặc công nghệ phía máy chủ nào bạn quen thuộc nhất? Một điều bạn có thể làm là sử dụng javascript phía khách hàng để cắt ngắn văn bản. –

+0

@Sainath Tôi đã thêm máy chủ thay thế mặt khác. –

0

Bạn đã thử gói mỗi dòng trong một <span style="white-space: nobreak;">...</span> để buộc nó không bị gói?

Một số tài liệu có thể được tìm thấy here

+0

tôi đã cố gắng 'white-space: nowrap' nhưng justs mà đặt toàn bộ văn bản trong một dòng, tôi thực sự muốn nó quấn nhưng chắc chắn rằng nó hoàn toàn sử dụng rộng ở cả hai dòng bằng cách phá vỡ lời –

0

Đó là hành vi tiêu chuẩn của các ô bảng để kéo dài để vừa với nội dung của chúng. Các từ bị vỡ phụ thuộc vào độ rộng của ô sẽ yêu cầu tập lệnh.

tràn: ẩn chỉ cắt phần còn lại của các từ và không được hỗ trợ trong Outlook 2007/2010.

1

Nếu thông điệp của bạn là một chuỗi, bạn có thể làm như sau với PHP:

$stringChunkArray = str_split($string, 45); // 45 = desired char count 
foreach ($stringChunkArray as $line) { 
    echo $line.PHP_EOL; 
} 

Điều đó sẽ đảm bảo 45 ký tự trên mỗi dòng ...

0

này đã làm việc cho tôi, chỉ cần điều chỉnh chiều cao như Bạn ước.

blog_content { 
    display: inline-block; 
    border: 0px; 
    height: 600px; 
    overflow: hidden; 
} 
Các vấn đề liên quan