Thứ Năm, 29 tháng 8, 2019

Cách css tự động resize ảnh nền theo thẻ div

Có khi nào bạn làm giao diện cho trang tin tức. Bạn chăm chút cẩn thận cho mỗi tin có một thumbnail đẹp đẽ vuông vức. Đến khi bàn gian cho khách hàng thì ôi thôi! Cái thì khách hàng up ảnh 16:9, có cái thì xoay dọc lại kiểu ảnh chân dung 3:4 … Bạn phát điên lên vì giao diện hoặc vỡ be bét hoặc ảnh thumbnail bị kéo lệch xấu xí do không đúng tỉ lệ.
Với một kỹ thuật CSS đơn giản, bạn có thể giải quyết vấn đề này bằng cách tự động scale ảnh cho fix đúng theo kích thước quy định, và tập trung hiển thị vào chính giữa ảnh nền, giúp đảm bảo người đọc vẫn xem được nội dung ảnh, người viết bài có thể upload bất kì ảnh với tỉ lệ nào vẫn không làm vỡ giao diện.
Mục lục [Ẩn]
  • 1 Demo kỹ thuật CSS Cover Art
  • 2 Giải thích
  • 3 Thực hiện
    • 3.1 Code HTML
    • 3.2 Code CSS
  • 4 Hoàn thiện khi thao tác với PHP

Demo kỹ thuật CSS Cover Art

Bấm vào hai nút trong demo để bật tắt hiệu ứng CSS tạo cover cho ảnh thumbnail tin tức.

Giải thích

Như bạn đã xem ở demo trên, khi kích thước và tỉ lệ ảnh không khớp với thiết kế của website, sẽ làm cho ảnh thumnail chỉ hiển thị được 1 góc của ảnh thật. Chưa kể, nếu bạn xuất thumbnail trực tiếp bằng thẻ img, ảnh với các tỉ lệ khác nhau sẽ phá vỡ giao diện của bạn, trồi sụt một cách thảm hại.
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!

Bài viết liên quan:

0 nhận xét:

Chào bạn nếu có bất cứ thắc mắc nào hãy để lại ý kiến. Nhận xét của bạn đều rất quan trọng, tôi rất vui nếu bạn để lại nhận xét của mình