Thursday, February 23, 2017

Auto resize thumbnail bằng css

Khi dùng kỹ thuật css cover art, ảnh dù ở tỉ lệ và kích thước nào cũng sẽ được fix vừa vào khung nhìn thiết kế trước, đảm bảo luôn hiển thị nội dung chính xác và không làm hỏng giao diện.
Kỹ thuật cover ảnh thumbnail này cần thực hiện trên cả HTML và CSS. Trong đó:
  • HTML cần dùng 1 thẻ div trống để làm khung hiển thị.  Lưu ý ta không dùng trực tiếp thẻ img, vì nếu dùng img, khi scale ảnh theo tỉ lệ khác với ảnh gốc, ảnh sẽ bị méo/lệch trông rất xấu!
  • CSS tự động resize ảnh, làm cho phần ảnh nền tự động fix vừa theo kích thước khung nhìn (thẻ div làm thumbnail) và căn vào chính giữa nội dung của ảnh. Việc căn giữa để thể hiện nội dung ảnh là mang tính dự đoán và gần như chính xác; do khi chụp ảnh, nội dung chính bức ảnh “thường” được căn vào giữa ảnh, ít thợ ảnh nào lại chụp chân dung với hình cô gái ở góc bức ảnh!

Thực hiện

Code HTML

Ở đây tôi tạo thẻ div .news  rộngđể chứa tin, mỗi tin tức .article  được format với thumb ở trên và tiêu đề bản tin ở dưới.

Code CSS

Hãy chú ý vào phần style cho .thumb . Trọng yếu của kỹ thuật này chính là sử dụng hai thuộc tính background-size  và background-position . Để làm cho ảnh nền tự resize vừa theo kích thước của thẻ div, ta dùng thuộc tính background-size  với giá trị là cover . Sau đó dùngbackground-position  với giá trị center  để căn giữa ảnh vào khung nhìn của thumbnail.
Chú ý ở là trong đoạn css của .thumb , tôi đặt giá trị background-image  là none ? Do class.thumb  được dùng lại cho nhiều bản tin khác nhau, ta không thể set cứng cùng một hình ảnh được. Ta cần để lại phần set hình ảnh bằng cách nhúng trực tiếp trong code HTML. Sửa lại HTML như sau:

Hoàn thiện khi thao tác với PHP

Khi thao tác bằng PHP, ta có thể code như sau, giả sử đã có dữ liệu trong biến $article :
Chúc các bạn thành công!
Previous Post
Next Post

post written by: