Xử lý text-overflow với CSS

Xử lý text-overflow với CSS

{tocify} $title={Table of Content}

Khái niệm và Syntax

text-overflow là một thuộc tính của CSS giúp chỉ định cách nội dung mà bị tràn sẽ được ẩn để báo hiệu cho người dùng biết rằng nó chưa hiển thị hết. Nó có thể bị ẩn - mặc định (clip), hiển thị dấu chấm lửng (...) - ellipsis, hoặc hiển thị một chuỗi tùy chỉnh (với chuỗi tùy chỉnh hiện tại chỉ sử dụng được trên Firefox).

text-overflow: clip|ellipsis|string|initial|inherit;

Để text-overflow hoạt động, bắt buộc phải sử dụng kèm thêm 2 thuộc tính:

  white-space: nowrap;
  overflow: hidden;

Cách sử dụng

Chúng ta sẽ dùng đoạn HTML sau đây cho toàn bộ hướng dẫn:
HTML<div style="width: 370px;margin:auto;border: 1px solid #ccc;border-radius:5px;padding:15px;">
    <p class="text-overflow">
        <a href="#" class="text-overflow-inline-block">The text-overflow property</a> specifies how overflowed content AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA that is not displayed should be signaled to the
        user. It can be clipped, display an ellipsis (...), or display a custom string.
    </p>
</div>
Khi chưa xử lý text-overflow, nó sẽ trông như thế này:
original

Sử dụng cho block element

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

Sử dụng cho inline-block

CSS.text-overflow-inline-block {
  display: inline-block;
  max-width: 150px;
  vertical-align: bottom;

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

Kết hợp -webkit-line-clamp với overflow (Multiple Line Text Truncation)

Text Truncation khi nghe từ này thì chúng ta hiểu là những thuộc tính CSS nó sẽ cắt chữ sau đó và thêm dấu 3 chấm vào phía sau nha.

Với line-clamp chúng ta có thể chỉ định được số dòng tối đa muốn hiển thị, phần nội dung vượt quá sẽ bị ẩn đi và thay thế bởi dấu 3 chấm. Tuy nhiên, line-clamp chỉ hỗ trợ trong trình duyệt nhân webkit, bạn hãy cân nhắc trước khi sử dụng.

CSS.text-overflow {
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

Sử dụng word-break

Ngoài ra, chúng ta cũng có thể sử dụng word-break để xuống dòng văn bản. Thuộc tính word-break này sẽ giúp cho chúng ta xử lý khi nội dung chữ bị tràn ra ngoài khi nó quá dài (ví dụ: Khi tester họ test, họ có thể nhập như thế này: okokokokokokokokokokokokokookokokok).

  • word-break: break-all; - Để tránh bị tràn, nó sẽ ngắt dòng tại bất kỳ ký tự nào. Điều này có thể dẫn đến việc, 1 từ mà 1 nữa ở hàng trên, 1 nửa ở hàng dưới:

  • word-break: break-word; - Để tránh bị tràn, nó sẽ ngắt dòng tại bất kỳ từ nào, cho nên nó sẽ đảm bảo việc một từ đầy đủ sẽ được hiển thị trên một hàng mà không bị như trường hợp break-all.

Hyphens

Thuộc tính hyphens sẽ thêm vào dấu – khi chữ dài không vừa với Container bao ngoài, việc thêm dấu – vào tuỳ thuộc vào trình duyệt quyết định là thêm vào khúc nào nên chúng ta sẽ không kiểm soát được nhé.
.element-class {
    hyphens: auto;
}

Live Demo

Reference

Đăng nhận xét

Mới hơn Cũ hơn