2010-07-10 25 views
11

Khi sử dụng CSS overflow: hidden, tôi thường thấy rằng dòng cuối cùng của văn bản bị cắt một phần. Có cách nào để ngăn chặn điều này để bất kỳ một phần dòng không hiển thị. Hầu như giống như một từ bọc dọc.CSS: Bạn có thể ngăn chặn tràn: ẩn khỏi cắt dòng cuối cùng của văn bản không?

+1

cung cấp một ví dụ? có thể lộn xộn với chiều cao dòng trên phần tử cuối cùng. –

+0

Anh ấy có nghĩa là nội dung bị cắt giữa đường, do đó nửa trên của các ký tự hiển thị nhưng không phải ở dưới cùng.AFAIK không có sửa chữa cho điều này, khác hơn so với vặn với chiều cao dòng (mà không phải là một giải pháp trình duyệt chéo anyway) – Rob

+0

tại sao bạn đang sử dụng tràn? chứa nổi? hoặc bạn có thực sự cần che giấu mọi thứ không? –

Trả lời

0

Rob là chính xác. Tôi đã làm một div có chiều cao tối đa là 11em và dòng cuối cùng của văn bản tràn chỉ là một nửa ở đó. trắng-không gian: nowrap chỉ loại bỏ dòng cuối cùng tất cả cùng nhau.

tôi đã cố gắng

white-space: nowrap; 

Gaby cũng là đúng rằng điều này gây ra vấn đề quá.

Điều tốt nhất tôi đã đưa ra là để fiddle với line-height và div chiều cao cho đến khi các dòng ít nhất đã bị cắt-off

+3

điều này chỉ hoạt động bởi vì dòng cuối cùng của bạn đã được sản xuất bởi một gói dài dòng. Nếu có một
trong đó, nó vẫn sẽ hiển thị một phần .. Bạn cần đảm bảo rằng 'chiều cao' của div có thể được chia chính xác theo' chiều cao dòng 'của nó .. –

+0

Làm cho tinh thần. Tôi đã làm cho chiều cao của div một cái gì đó giống như 11em. Điều đó có tạo nên sự khác biệt nào không? –

2

Giải pháp này làm việc cho tôi: https://stackoverflow.com/a/17413577/2540428 Về cơ bản tạo ra một div wrapper với đệm thích hợp và đặt nội dung trong div chính nơi bạn chỉnh sửa chiều cao của nó và ẩn tràn. Xem liên kết để biết thêm chi tiết.

10

Bạn có thể sử dụng wrapper div và nhiều cột css:

.wrapper { 
    -webkit-column-width: 150px; //You can't use 100% 
    column-width: 150px; 
    height: 100%; 
} 

Solution dụ:http://jsfiddle.net/4Fpq2/9/

Cập nhật 2017-09-21

Trong Firefox giải pháp này vẫn hoạt động nhưng bị hỏng trong Chrome. Gần đây, Chrome bắt đầu phá vỡ các cột bằng các phần nhỏ, cũng dừng phá vỡ nội dung nếu bạn đặt chiều cao. Trong ví dụ này http://jsfiddle.net/4Fpq2/446/, tôi thay đổi chiều cao thành chiều cao tối đa và hiển thị hành vi Chrome lạ. Nếu bạn có ý tưởng xin vui lòng viết bình luận.

+0

Làm việc cho tôi. :) Tôi không thể làm cho nó hoạt động với 'text-overflow: ellipsis'. Điều đó có thể không? –

+1

Trong phương pháp này, không có tràn. Do đó, tràn văn bản: dấu ba chấm sẽ không hoạt động. Khu vực CSS có thể có thể giúp ích: http://caniuse.com/#feat=css-regions :( – stalkerg

+0

Quá xấu điều này không hoạt động với 100%: ( – Swen

-1

Có hai thuộc tính css3 tồn tại. 1) word-break & 2) word-arap

Đừng quên đây là thuộc tính mới là css3. Vì vậy, các trình duyệt cũ hơn không hỗ trợ thuộc tính đó.

.class-name {word-break: break-all;} 
.class-name {word-wrap: break-word;} 
+0

[Không hoạt động] (http://jsfiddle.net/8takLekq/) trong IE, Chrome hoặc Firefox. –

3

Khi bạn hiểu cách hoạt động của column-width, câu trả lời của @ stalkerg có ý nghĩa rất lớn.

column-width chia nội dung thành các cột, vì vậy dòng cuối cùng của văn bản sẽ không vừa, nó sẽ được chuyển sang cột tiếp theo. Bây giờ, mẹo là làm cho chiều rộng cột rộng như vùng chứa. Vùng chứa đã tràn: bị ẩn, vì vậy cột thứ 2 sẽ không hiển thị.

.box { 
    width: 200px; 
} 
.container { 
    -webkit-column-width: 200vw; 
    -moz-column-width: 200vw; 
    column-width:   200vw; 
    height:    100%; 
} 
0

chỉ thêm thuộc tính chiều rộng cột và đặt chiều rộng của vùng chứa, nó sẽ hoạt động.

0

mà làm việc cho tôi:

.wrapper_container{ 
    width: 300px; 
    height: 200px; 
    overflow: hidden; 
} 

.wrapper{ 
    -webkit-column-width: 300px; 
    column-width: 300px; 
    height: 100%; 
} 
Các vấn đề liên quan