Hidden dots and the end of a multiline text


Chào ae! Mình lại lên đây cùng anh em trao đổi "võ công", haha....Thực ra là mình đang làm front-end, thấy cái này hay hay, nên chia sẻ cùng anh em, mà thể nào anh em front-end cũng có thể phải gặp qua.

Như: 


- Một dòng quá dài, không muốn nó hiện đầy đủ.
- Làm một đoạn text giới thiệu rồi ... ( read more ).
  Vân vân và mây mây.

Vậy làm sao để nó hiển thị được three dot ( dấu ba chấm ở chỗ mình cần? ). Hay đếm từ rồi cộng ... vào sau, haha cũng là một ý tưởng. Nhưng nay mình sẽ giới thiệu mọi người một cách mà chỉ cần dùng html, css mà thôi.
Bắt đầu luôn cho "nóng". Đầu tiên là trên 1 dòng. 
Mình sẽ dùng các thuộc tính sau: 
{
    white-space: nowrap;
    text-overflow: ellipsis;
    overflow: hidden;
}
- Văn bản sẽ hiển thị trên cùng một hàng, chỉ xuống hàng khi gặp thẻ <br /> khi anh em dùng white-space: nowrap
- Vậy giờ làm sao để có dấu ... có ngay thằng text-overflow: ellipsis; thằng này cắt một đoạn text và thay thế bằng dấu 3 chấm.
- Khi chiều cao của thành phần chứa text không đủ chứa text, thì text bị tràn sẽ được dấu đi nhờ thuộc tính overflow: hidden;
Cùng test luôn anh em nhé. Học là phải đi đôi với hành, haha...




Kết quả:



Vậy giờ làm sao đến 3 dòng thì nó mới hiện 3 chấm..  Không có gì khó cả, haha...
Tư tưởng là mình sẽ dùng thằng height, line-height, overflow
{
    width: 300px; 
    display: block; 
    display: -webkit-box;
    height: 43px;
    line-height: 1; 
    -webkit-line-clamp: 3; 
    -webkit-box-orient: vertical; 
    overflow: hidden; 
    text-overflow: ellipsis;
}
display: block, thành phần thành khối hiện thị trên một hàng độc lập so với các thành phần sau nó.
box-orient: vertical, thành phần box đặt nội dung của nó theo chiều dọc.
line-clamp: số lượng dòng chỉ định, cho phép giới hạn nội dung của một khối.
Còn 2 thành phần dưới thì mình đã giải thích rồi nhé.
Có bạn sẽ thắc mắc tại sao box-orient và line-clamp lại có -webkit-. Vì nó hỗ trợ các trình duyệt nhân webkit như chrome hay safari.


Và đây là thành quả:
    

Kết luận:
Ok. Vậy là mình đã cùng anh em tìm hiểu về "three dot". Nếu anh em thấy hay, tiếp tục ủng hộ mình nhé. Thanks

Previous Post
Next Post

post written by:

2 nhận xét: