2009-02-26 21 views
5

Trong một thời gian, tôi đã đặt * html div { zoom: 1; } trong biểu định kiểu cơ sở của tôi và nó đã hoạt động rất tốt. Tuy nhiên, bây giờ tôi chạy vào các tình huống mà có những yếu tố được định vị tuyệt đối đang mất đi chiều cao và chiều rộng của chúng trong IE 6 cuz của điều này. Vì vậy, tôi đang nghĩ đến việc đặt * html div { height: 1%; } thay vào đó, nhưng tác dụng phụ là gì?Kích hoạt lớp phủ trong IE 6, tác dụng phụ của việc sử dụng * html div {height: 1%; }

Cập nhật:

Cảm ơn tất cả các câu trả lời của bạn. Câu trả lời có lẽ là không có tác dụng phụ như tất cả các bạn nói.

Tuy nhiên, tôi sẽ không đồng ý với tất cả các đề xuất của bạn (tại thời điểm này) về cách/thời điểm kích hoạt lớp phủ. Tôi thấy haslayout một hành vi mong muốn và do đó nên là một hành vi mặc định trong IE6 (& 7). Nó đã được đề cập rằng nó không chắc sẽ có bất kỳ tác dụng phụ, vì lý do chính xác, tại sao không làm cho nó một hành vi mặc định và chỉ tắt nó khi một hành vi không mong muốn (nếu bao giờ) xảy ra.

Người ta có thể làm điều này bằng cách chỉ định {zoom: auto;} hoặc {height:auto;} trên phần tử cụ thể đó tùy thuộc vào cách nó được xác định trong biểu định kiểu cơ bản.

Tôi sẽ phải đưa ra câu trả lời cho người đầu tiên nói "không có tác dụng phụ" vì câu trả lời của mọi người giống nhau, trong khi một số đã hết phạm vi. Cảm ơn một lần nữa!

+0

Tôi luôn đưa ra những 'làm điều đó ngay sau đó sửa chữa IE tiếp cận' để áp dụng hack để tất cả mọi thứ không bao giờ thực sự xảy ra với tôi. Tuy nhiên, có thể là một thử nghiệm thú vị trong dự án tiếp theo của tôi. Xem liệu nó có giết bất kỳ lỗi IE6 nào không. Cảm ơn ý tưởng! –

Trả lời

3

Điều này được gọi là The Holly Hack. Theo như tôi biết, không có tác dụng phụ, đặc biệt là nếu bạn * html nó cho IE6 trực tiếp. Tôi đồng ý với các áp phích khác đặt trên thẻ <div> có thể không phải là lựa chọn khôn ngoan nhất - tôi muốn nhắm mục tiêu các yếu tố riêng lẻ gây ra đau buồn.

1

Tôi cố gắng giảm thiểu việc sử dụng các loại cách giải quyết này để tránh các sự cố không lường trước được; Tôi chỉ sử dụng nó trên các yếu tố cần nó khi IE6 phá vỡ một lay-ra, không bao giờ trên tất cả các yếu tố trong một trang.

0

Độ cao 1% sẽ không có hiệu lực vì IE xử lý kích thước dưới dạng kích thước tối thiểu thực sự. Tuy nhiên pos: abs là đủ để cung cấp cho haslayout anyway và tôi đồng ý với jeroen rằng xác nhận chăn như thế này không phải là khôn ngoan. Đây không phải là điều bạn muốn trong cài lại CSS chẳng hạn.

1

Tôi cũng không nghĩ có bất kỳ tác dụng phụ nào. Nhưng như đã đề cập - chỉ sử dụng nó trên những gì bạn cần. Tôi muốn đích thân ...

  1. Sử dụng nó chỉ trên một lớp thiết lập:

    • html .haslayout {height: 1%; }
  2. Nơi nó trong một stylesheet IE 6 bao gồm thông qua một conditional comment

    <! - [if IE 6] > < link href = "ie6.css" rel = "stylesheet" type = "text/css" media = "screen, projection"/> <![Endif] - >

Hy vọng rằng sẽ giúp

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