2009-10-25 39 views
6

Lạ ở đây, hy vọng nhận được một số phản hồi để chỉ cho tôi đúng hướng.Chọn văn bản CSS con trỏ ie7, hành vi lạ

Nếu #wrapper hoặc bất kỳ div con nào không có màu nền được áp dụng cho chúng, tức là7 thay đổi con trỏ "con trỏ" bình thường thành con trỏ "chọn văn bản" khi di chuột quanh trang (cho dù di chuột qua văn bản hay không).

Tôi nghĩ rằng tôi đã khắc phục sự cố một lúc trước, nhưng khi tôi xóa màu nền khỏi #wrapper hoặc bất kỳ div nào của trẻ em, sự cố sẽ xuất hiện trở lại.

Chỉ cần tìm một số gợi ý hoặc những gì tôi nên kiểm tra.

#wrapper { 
    overflow: hidden; 
    margin: 0 auto; 
    width: 960px; /* using 960.gs */ 
} 

#children { 
    display: inline; 
    float: left; 
    margin: 0 10px; 
    width: 940px; 
} 

EDIT:

Có vẻ là vì divs "hasLayout", nhưng tôi vẫn không chắc chắn làm thế nào để sửa chữa nó. Xem this link.

EDIT 2: "lỗi IE7"

tôi không thể tìm thấy bất kỳ thông tin thêm về điều này Bất cứ ai có bất kỳ ý tưởng, hoặc thậm chí nếu bạn nhận thức được lỗi này và chỉ có thể cho tôi biết vì vậy tôi biết tôi không điên. Tôi lại rất thất vọng với Microsoft. Đã tốn một vài giờ làm việc trong tuần này. Có vẻ như nó không bao giờ kết thúc.

EDIT 3:

Dưới đây là another link của một người nào đó có cùng một vấn đề.

EDIT 4:

STACKOVERFLOW.com bị lỗi này! Vì vậy, mashable.com. Tôi đảm bảo NHIỀU nhà phát triển web có lỗi này trên trang web của họ và họ thậm chí không biết điều đó.

Tự mình khám phá ... di con trỏ của bạn xung quanh trang của một trong hai trang web. Chú ý nó chuyển sang con trỏ chọn văn bản khi nó không nên.

Có vẻ như sẽ dễ dàng sửa chữa với thuộc tính cursor, nhưng sự cố sẽ kích hoạt hành vi chọn lựa văn bản-con trỏ thích hợp khi được yêu cầu.

+0

Ông có thể chỉ cho một ví dụ trực tiếp? Tôi không chắc chắn vấn đề nằm trong những dòng đó ... –

+0

Đúng, ví dụ trực tiếp tại liên kết tôi vừa đăng. Tải xuống tệp trên trang thử nghiệm và mở 'er up in ie7 để xem trực tiếp. – Jeff

+0

Bạn không điên. Và tôi đã tìm thấy các vấn đề khác có nguyên nhânLàm hết, nhưng chưa có giải pháp nào. – tahdhaze09

Trả lời

3

Có quá khó để nêu rõ con trỏ nên đi đâu không?

html { 
    cursor: default; 
} 

h1, h2, h3, h4, h5, h6, 
p, li, label, td, th { 
    cursor: text; 
} 

a:link, a:visited, a:hover, a:active { 
    cursor: pointer; 
} 

vv ..

+0

Điều đó vẫn không hoàn toàn khắc phục được. Con trỏ văn bản sau đó xuất hiện trên toàn bộ khối, bao gồm bất kỳ khoảng đệm và khoảng trống nào trên dòng cuối cùng được điền một phần, ví dụ, thay vì chỉ là văn bản thực tế. – mercator

+0

Đồng ý. Ý tưởng tuyệt vời, một trong những tôi đã cố gắng, nhưng không cắt nó vì lý do được trích dẫn bởi mercator. – Jeff

+0

Hmmm, cần nó * chính xác, đúng không? Oh thân yêu .. xin vui lòng xem bình luận của tôi về câu hỏi yêu cầu thêm một chút thông tin về lý luận. – Zoe

0

Bạn đã thử đặt background-color:transparent; một cách rõ ràng chưa? cái đó có giúp ích không?

+0

Yeppers, đã thử nó. Không hoạt động.Tôi đoán tôi hy vọng một người nào đó có thể cho tôi một cái gì đó để "Google". Có vẻ kỳ lạ mà không có nhiều người đã trải nghiệm điều này trước đây. – Jeff

+0

Quá tệ: Tôi nghĩ minh bạch sẽ là đủ "nền" để giữ cho nó không xảy ra. Tôi giả sử bạn không muốn bất kỳ nền tảng? Nếu không, bạn có thể thêm một trong một phong cách IE7 tờ thông qua ý kiến ​​có điều kiện. Có vẻ như một trong những lỗi hiển thị mà không có cách giải quyết tốt. (Javascript?) Xin lỗi tôi không thể giúp. – stephenhay

+0

Vâng, ý tưởng duy nhất của tôi cho đến nay là muck up CSS của tôi và đặt một 'background-color' phù hợp với phần chính của trang web của tôi - JUST FOR IE7, Lol. – Jeff

0

Điều này nghe có vẻ giống như một hack xấu xí, nhưng bạn đã thử đặt một 1x1 px GIF trong suốt (AKA spacer) làm nền chưa?

+0

Chưa thử điều đó, nhưng nếu nói đến điều đó, tôi nghĩ tôi chỉ muốn đặt màu nền thay thế. Đề nghị tốt, mặc dù. – Jeff

+0

Điều này nghe hay đấy. @ Jeff: Nó có giúp gì không? –

0

Đây không phải là hoàn hảo, nhưng ví dụ nhỏ này có vẻ như để làm việc cho IE 7.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
</head> 
<body> 
<div style="overflow: hidden; margin: 0 auto; width: 140px;"> 
    <div style="position: relative; display: inline;"> 
     <p> 
     Here is some test text that will wrap. 
     </p> 
    </div> 
</div> 
</body> 
</html> 

Tôi không có ý tưởng tại sao điều này dường như làm việc, và chắc chắn nó không phải là lý tưởng. Đối với một số lý do đưa các phần tử p trong một div tương đối nội tuyến vị trí làm cho con trỏ chuột hành xử giống như tôi mong đợi.

Tôi không chắc rằng điều này hoạt động theo nghĩa rộng hơn mặc dù khi có một hệ thống phân cấp các phần tử.

Tôi nhận ra đây không phải là câu trả lời hoàn hảo, nhưng nó có thể thúc đẩy các ý tưởng khác.

1

Tôi khá chắc chắn rằng tôi đã gặp phải nó trước đây, nhưng nó có thể là một chút quá tinh tế để thực sự nhận thấy trong một số thử nghiệm trình duyệt bề ngoài. Nhưng tôi chắc chắn cũng đã có vấn đề cố định bằng cách thiết lập một màu nền.

Theo như tôi có thể nói, cách tốt nhất để khắc phục sự cố là định vị phần tử gây ra sự cố hoặc thêm div bao bọc vị trí xung quanh nó. Bạn rất có thể sẽ sử dụng position: relative, mặc dù absolutefixed cũng sẽ hoạt động.

Định vị chính phần tử thường hoạt động, nhưng việc thêm div bao bọc có thể hoạt động ổn định hơn.

Ví dụ: thêm position: relative vào lớp .post-text sửa con trỏ trên các câu hỏi và câu trả lời trên trang này.

+0

Thêm 'vị trí: tương đối;' vào #wrapper của tôi không có sự khác biệt đối với tôi. Đối với gói wrapper của tôi, tốt, tôi đoán tôi muốn sống với con trỏ kỳ quặc. =) – Jeff

+0

Đủ công bằng. Tôi tò mò, mặc dù, không thêm wrapper thêm vị trí sửa chữa nó? – mercator

0

giải pháp Delilah, chỉ một chút công việc đơn giản hóa lớn đối với tôi và cũng giải quyết vấn đề Mercator.

div { cursor: default; } 
div * { cursor: auto; } 

Vấn đề là bạn phải tạo một tệp css khác và xử lý nó bằng cách sử dụng nhận xét có điều kiện để không phanh các trình duyệt khác.

PS: Vấn đề này trở nên rất khó chịu với các trang web nền tối.

1

Các công trình GIF 1x1 px minh bạch và cũng là một sửa chữa tuyệt vời cho This và các lỗi khác trong IE 6 đến 8. Tôi sẽ thêm một cái gì đó như thế này để bình luận có điều kiện tôi cho tất cả IE:

* { 
    background: url('images/fix1.gif'); 
}