30/09/2018, 23:14
Thu gọn nội dung bài viết
Trong một tờ báo, một bài viết thường có 2 trường là Title và Content.
Khi hiển thị 1 list các bài viết, em muốn show Title và một vài câu đầu của Content nhưng phải hết câu đó chứ không phải fix height thì câu cuối có thể không hết.
M.n có thể mách ý tưởng hoặc keyword cho em để em search không ?
Em cám ơn.
Bài liên quan
Bạn có thể nói rõ hơn về dự án của bạn ko? Bạn làm web tin tức, hay gì vì có những trình soanj thảo bài viết bạn sẽ được bôi đen đoạn giới thiệu và chương trình tự động lấy đó làm đoạn giới thiệu cho một bài viêts hoặc bài báo bạn nhé
Cuối câu thường kết thúc bằng dấu chấm. Bạn tìm dấu chấm dể tin rằng câu cuối đó đã hoàn thành. Nếu bạn không chắc lấy bao nhiêu câu vì độ dài câu khác nhau thì tốt hơn hết là bạn định nghĩa tối đa số từ cần lấy.
Ví dụ: nếu hai câu mà đã đạt được 20 từ rồi thì chỉ lấy hai câu. Nhưng nếu hai câu mà chỉ có 15 từ, mà câu thứ 3 cũng chỉ có 7 từ, tức cũng 22 từ, so với 20 từ thì tạm chấp nhận, lấy luôn câu thứ 3.
Nếu dùng PHP thì explore các string ra mảng để đếm, sau đó implode lại để xuất ra. Còn xuất ra dùng jQuery thì mình chịu, chỉ biết chút ít JavaScript thuần thôi.
Túm lại bạn cần xử lý chuỗi.
gỉa sử ta có content sau:
cách 1: áp dụng style sau sẽ hiển thị 2 dòng đầu của content.
code: https://jsfiddle.net/vay0zzed/
cách 2: dùng js để lấy ra n từ đầu tiên (mình dùng jquery cho dễ nha )
code: https://jsfiddle.net/2Ltfk3LL/
cách 3: cắt ra n câu đầu (đúng với yêu cầu của thớt)
code: https://jsfiddle.net/5h9ncjLg/
(tiện thể cho mình hỏi có ai biết nhúng html vào post ko nhỉ)
Đây là cách mình thường dùng, chỉ dùng css thôi và nó không cần chỉ định chiều cao, chỉ cần thiết lập số dòng cần hiển thị. Ví dụ:
Lưu ý: -webkit-line-clamp: 3 tức là sẽ hiển thị 3 dòng nội dung thôi, nếu nội dung dài hơn 3 dòng sẽ tự động thêm dấu …
Demo: https://jsfiddle.net/s29a6w2t/
Cám ơn vì đã góp ý nhưng mà để thế hơi thô vì có khi từ cuối lại có khi dở dang.
Ah với lại để mỗi -webkit định cho mỗi chromium dùng thôi ah
hay quá, em rất cám ơn bác
Cám ơn bác :)) em sẽ cải tiến thêm thuật toán
Em dùng django, a có thể nói cho em tên trình soạn thảo để e tìm hiểu không, em mới biết đến ckeditor.
Mình update lại câu trả lời nhé:
Cách này sẽ giúp nội dung hiển thị tốt trên các trình duyệt khác luôn (đã test trên firefox + chrome)
Nếu làm bằng CSS thì chỉ có thể căn bằng số dòng. Nếu bạn muốn nó phải hết câu nhưng câu đó lại quá dài không fit hết thì sao? Cái này có thể cắt bằng JS hoặc cắt trước bằng backend code, sau đó mới đẩy lên template.
Vụ này cũng là lí do tại sao một số trang blog bắt tự nhập 1 đoạn description ngắn cho bài viết, để chủ động chứ ko cần phụ thuộc vào content.