2009-08-08 27 views
64

Nếu tôi biết chiều cao và chiều rộng của hình ảnh mà tôi sẽ hiển thị với thẻ hình ảnh, tôi có nên bao gồm thuộc tính chiều cao và chiều rộng hay chỉ cần đặt thông tin trong CSS? Hoặc cả hai?Tôi có nên chỉ định thuộc tính chiều cao và chiều rộng cho IMGs trong HTML không?

Ví dụ:

<img src="profilepic.jpg" height="64" width="64" /> 

hoặc

<img src="profilepic.jpg" height="64" width="64" style="height: 64px; width: 64px;" /> 

hoặc

<img src="profilepic.jpg" style="height: 64px; width: 64px;" /> 
+0

có thể trùng lặp với [Chiều rộng/chiều cao hình ảnh làm thuộc tính hoặc trong CSS?] (Http://stackoverflow.com/questions/640190/image-width-height-as-an-attribute-or-in -css) –

Trả lời

75

Theo Google Page Speed, bạn luôn cần xác định chiều rộng và chiều cao trong thẻ hình ảnh. Tuy nhiên, để xác thực bạn không thể sử dụng thẻ kiểu.

Ngoài ra, bạn nên luôn luôn chỉ định cùng chiều cao và chiều rộng làm hình ảnh thực tế để trình duyệt không phải thực hiện bất kỳ sửa đổi nào đối với nó như thay đổi kích thước.

tôi muốn đề nghị làm việc đó

<img src="..." height="20" width="50"> 

Edit: Có người đề nghị trong các ý kiến ​​rằng nó sẽ được nhanh hơn để chỉ không thêm bất kỳ các thuộc tính. Theo Google (không phải chúng là kết thúc tất cả kiến ​​thức về trình duyệt):

Nếu không có tham số nào được chỉ định trong tài liệu chứa hoặc nếu kích thước được chỉ định không khớp với kích thước của hình ảnh thực tế, trình duyệt sẽ yêu cầu chỉnh lại và sơn lại khi hình ảnh được tải xuống. Để ngăn các bản sao lưu, hãy chỉ định chiều rộng và chiều cao của tất cả các hình ảnh, trong thẻ HTML hoặc trong CSS. - Read More

Cho rằng, bạn có thể làm kích thước img trong CSS, nhưng để xác thực bạn sẽ phải thực hiện nó trong tệp CSS chứ không phải nội tuyến.

BTW, Tốc độ trang của Google là một loạt các mẹo tập trung vào hiển thị trang nhanh hơn.

+0

trang sẽ hiển thị nhanh hơn mà không cần bất kỳ thuộc tính nào. –

+0

@Elzo Valugi - Tôi đặt cược rằng google đề xuất rằng để có trải nghiệm người dùng tốt hơn là hiệu suất. – karim79

+1

@Elzo Theo Google nó nói nó sẽ. Đọc: http://code.google.com/speed/page-speed/docs/rendering.html#SpecifyImageDimensions –

4

Có bạn nên chỉ định kích thước, vì vậy tác nhân người dùng biết trước kích thước trước khi hình ảnh tải đầy đủ để bố cục không thể bị hỏng nếu nó dựa trên kích thước của hình ảnh được tải. Ngoài ra, nếu bạn đang dựa vào thuộc tính bộ lọc của IE6 để chèn png của bạn sẽ cần những thứ nguyên đó.

+2

Anh ấy đang hỏi phương pháp thêm kích thước hình ảnh nào nếu anh ta nên hoặc không phải. – MitMaro

+0

Tôi phải quên để thêm rằng - nó ưa thích để đi với các thuộc tính bản địa .. có gần như * không bao giờ * một lý do để dựa vào css nội tuyến. –

22

Bạn phải luôn chỉ định heightwidth của hình ảnh nếu chỉ để giúp trình duyệt đưa trang ra ngay cả trước khi hình ảnh được tải xuống.

Xem 13.7 Visual presentation of images, objects, and applets trong HTML 4,01 spec:

Chiều cao và các thuộc tính chiều rộng cho đại lý người dùng một ý tưởng về kích thước của một hình ảnh hoặc đối tượng để họ có thể không gian dự trữ cho nó và tiếp tục hiển thị tài liệu trong khi đợi cho dữ liệu hình ảnh.

Họ là khuyếnkhông cần nhưng bạn thực sự, thực sự nên xác định họ ;-)

Ngoài ra, hãy chắc chắn rằng kích thước bạn chỉ định thực sự phù hợp với kích thước của hình ảnh.

Không có gì tệ hơn việc chờ trang tải xuống chỉ vì những hình ảnh 400x300 (!) Này thực tế giống như 4000x3000 ở chất lượng 95%.

+0

Sau khi thử nghiệm, Chrome và Safari dự trữ dung lượng trước khi tải. Firefox tuy nhiên không. – lulalala

1

Câu trả lời này hiện đã được đề ngày và tôi sẽ không đưa ra đề xuất tương tự như tôi đã làm trong năm 2009 với các trình duyệt hiện đại.


Nó thực sự không quan trọng bạn sử dụng cái nào, nhưng tôi khuyên bạn chỉ nên sử dụng cái nào.

Tôi muốn giới thiệu thuộc tính qua giải pháp css vì nó tương thích hơn với các trình duyệt cũ hơn và những người bị tắt kiểu.

+3

? Điều này đã được downvoted (không có bình luận về lý do tại sao). Tôi upvoted nó trở lại không, ít nhất. Đây là lý do tại sao, và câu hỏi này không đi vào nó, nhưng CÓ - có giá trị chỉ định một trong các thuộc tính thứ nguyên.Nó phải làm với việc chia tỷ lệ hình ảnh để vừa với một thùng chứa cụ thể và cần phải mở rộng tỷ lệ (giữ lại tỷ lệ) chiều cao và chiều rộng cả hai. Trình duyệt có thể được dựa vào để làm điều đó. Điều đó nói rằng, tôi thấy "chính xác" của việc cung cấp cả hai, nhưng trong một số trường hợp chỉ có một chiều (cho phép trình duyệt tính toán tỷ lệ khác). –

+1

Tôi nghĩ rằng @MitMaro đã nói về chỉ sử dụng kiểu * hoặc * chiều rộng, thuộc tính chiều cao. Không chỉ định một chiều rộng hoặc chiều cao. Downvote là vì tất cả các trình duyệt sử dụng phổ biến hiện nay đều hỗ trợ định cỡ một ảnh với CSS và những kiểu có kiểu tắt không thể mong đợi để có được trải nghiệm người dùng tốt (ngay cả trình đọc màn hình cho người mù sử dụng CSS). –

+0

Đó là năm 2016 và tôi vẫn nhận được bố cục nhảy xung quanh khắp nơi vì tải hình ảnh. Nếu các hình ảnh có thuộc tính 'width' và' height', thì hình ảnh này sẽ không bị chói tai. – Flimm

0

Thực ra bạn không phải chỉ định chúng. Theo đó, w3c specificatio n bạn chỉ sử dụng chúng để ghi đè các giá trị mặc định được nhúng trong tệp hình ảnh và được trình duyệt đọc. Khi được sử dụng sẽ mở rộng kích thước hình ảnh gốc thành các kích cỡ nhất định để đặt chúng làm một phép tính bổ sung cho trình duyệt.

Thuộc tính chiều cao và chiều rộng cung cấp cho tác nhân người dùng ý tưởng về kích thước của hình ảnh hoặc đối tượng để họ có thể đặt trước không gian và tiếp tục hiển thị tài liệu trong khi chờ dữ liệu hình ảnh.

<img src="profilepic.jpg" alt="image" /> 
+0

tôi đã đọc rằng điều này giúp cải thiện thời gian tải (bất kể số lượng có thể là bao nhiêu), nếu bạn đặt chúng ngay cả khi chúng không bắt buộc. – PositiveGuy

Các vấn đề liên quan