2010-05-18 15 views
11

Khi Webkit (Safari, Chrome) gặp một inline-block nơi ...Webkit bỏ qua vertical-align cho inline-block chứa dòng hộp

  1. chiều cao line-height được quy định
  2. nội dung được trả lại sử dụng nhiều dòng hộp

... thành phần khối nội tuyến bỏ qua quy định vertical-align.

Để giúp minh họa cho vấn đề, tôi có một trường hợp thử nghiệm nhỏ: http://arther.net/lab/webkit-vertical-align-test.html#test


Firefox 3.6, Opera 10,53, và IE7 + đối xử với những inline-block như các yếu tố nội tuyến, và class dọc công trình như mong đợi. Trình duyệt Webkit (và Opera 10.10) xử lý các khối nội tuyến trong tình huống này như các phần tử mức khối, do đó bỏ qua vertical-align. Vì vậy, ai là đúng, và ai là lỗi?

Tôi có thể thấy điều này theo một trong hai cách. Một mặt, bạn có thể nói rằng tất cả các yếu tố nội dòng - ngay cả các khối nội dòng - phải tự định vị chính xác trong dòng có chứa theo vertical-align. Mặt khác, các yếu tố nội tuyến thường xác định một hộp nội tuyến đơn và không có các hộp của riêng chúng. Bất kỳ thứ gì bao gói nhiều hộp, nên là một phần tử cấp khối. Trong trường hợp đó, khối nội tuyến phải được coi là một khối, do đó sẽ bỏ qua vertical-align.

Với hành vi hiện tại, tôi hình dung rằng một trong những điều sau đây là đúng:

  • đây là một Webkit lỗi
  • đây là một lỗi trong tất cả các động cơ render khác
  • spec là mơ hồ về xử lý tình huống cụ thể này và các cách tiếp cận khác nhau đang được thực hiện

Nếu có ai có thể giải thích rõ vấn đề và hành vi mong đợi, tôi sẽ grea tly đánh giá cao nó.

+0

Trong IE8, có một lỗi khác về điều này: Nó không bọc nội dung, do đó, dòng dài là chảy máu ra bên phải. – awe

+0

Đó là một sự xấu hổ đáng hổ thẹn mà câu hỏi này không nhận được nhiều sự chú ý, đó là một vấn đề mà tôi đang gặp khó khăn. –

Trả lời

1

Điều này trông giống như một lỗi, vì nó hoạt động khi phần chỉ mất một dòng.

Chrome và Safari có chức năng mà bạn có thể Báo cáo lỗi để giúp nhà phát triển khắc phục sự cố.

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