2009-09-03 6 views
19

Tôi đang cố gắng làm viền màu xám xấu xuất hiện xung quanh các thẻ neo biến mất. Thuộc tính CSS outline:none; hoạt động cho Firefox, nhưng làm cách nào tôi có thể thực hiện trong IE? Tốt hơn là sử dụng các biểu thức CSS hoặc jQuery. Tôi không lo lắng về khả năng truy cập BTW.Tắt các đường viền màu xám trên neo (<a>) các thành phần trên tiêu điểm


Dựa trên đề xuất của bạn tôi thấy những được những giải pháp tốt nhất:

  • Các jQuery (đối với IE trình duyệt):

    $('a').focus(function() { 
        $(this).blur(); 
    }); 
    
  • Một lựa chọn khác jQuery (đối với trình duyệt IE chỉ):

    $('a').focus(function() { 
        $(this).attr("hideFocus", "hidefocus"); 
    }); 
    
  • CSS (cho tất cả các trình duyệt khác mà buộc một phác thảo):

    a { 
        outline: none; 
    } 
    

Lưu ý: Một số trình duyệt như Google Chrome không buộc một phác thảo về tập trung.

+0

Bạn có ví dụ về những gì đang xảy ra không? –

+0

Nhấp vào bất kỳ liên kết nào trên trang này và bạn sẽ thấy đường viền chấm viền (không nhất thiết phải là màu xám) xung quanh mỗi liên kết. Bạn có thể vô hiệu hóa điều này trong Firefox nhưng đối với IE bạn cần một giải pháp dựa trên JavaScript. –

+0

Ý của bạn là gì về Chrome? Tôi nhận được đường viền màu cam trên các liên kết khi tôi duyệt qua chúng. – DisgruntledGoat

Trả lời

10

Đáng tiếc là tôi nghĩ hideFocus là câu trả lời tốt nhất của bạn như mờ không phải lúc nào cũng thích hợp:

<a href="..." hidefocus="hidefocus">...</a> 

http://msdn.microsoft.com/en-us/library/ms533783(VS.85).aspx

+1

BTW, đây là thuộc tính không chuẩn không phải là giải pháp JavaScript. Bạn có thể thiết lập điều này trong JavaScript cũng như thuộc tính 'hideFocus', nhưng dễ dàng hơn để thiết lập tĩnh. – mckamey

+0

Có gì sai với blur()? –

+0

Không có gì "sai" mỗi lần nhưng bạn mất phần tử chủ động tập trung có thể có các hiệu ứng lạ (ví dụ: thứ tự tab, v.v.). Ngoài ra còn có các cách khác để kích hoạt liên kết bên cạnh việc nhấp vào (ví dụ: bàn phím). Nếu tất cả những gì bạn muốn là che giấu sự xuất hiện của việc tập trung thì không có điểm nào trong việc thay đổi tiêu điểm khi bạn không phải làm. – mckamey

0

Điều này có hiệu quả không?

a 
{ 
    border: 0; 
} 
+0

Không. Nó đã làm việc cho bạn? –

+0

biên giới là một cái gì đó khác với phác thảo, do đó sẽ không hoạt động. – peirix

+1

Một số trang web đã đề xuất phác thảo: 0; như là một giải pháp –

3

Có vẻ như bạn đang nói về đường viền chấm chấm xuất hiện khi bạn duyệt qua các liên kết. Bạn có giải pháp đúng cho Firefox (phác thảo: không có trong CSS). Giải pháp tốt nhất mà tôi đã sử dụng cho IE là thêm một người biết lắng nghe onfocus mà loại bỏ tập trung:

<a href="" onfocus="this.hideFocus=true;">link</a> 

Hãy xem tại trang web này cho một ví dụ về cách bạn có thể làm điều đó trên toàn cầu: http://codylindley.com/Javascript/223/hiding-the-browsers-focus-borders-should-i-shouldnt-i

+2

'$ (" a "). focus (function() {this.hideFocus = true;});' cho cách jquery làm những gì liên kết gợi ý – gnarf

1

Đối với IE , bạn có thể sử dụng Javascript như thế này:

<a href="..." onfocus="this.blur();">Click Here</a> 

Read more: http://www.htmlgoodies.com/beyond/javascript/article.php/3471171

Đối với Firefox và Safari, outlin e: không có tác phẩm nào.

Read more: http://css-tricks.com/removing-the-dotted-outline/

+2

Đừng làm điều này, nó phá vỡ điều hướng bàn phím. Người dùng máy tính xách tay và nhiều loại người khuyết tật khác nhau sẽ không cảm ơn bạn. Có cách giải quyết như tạm thời đặt 'element.onfocus = element.blur' onmousedown (loại bỏ nó một lần nữa sau khi nhấp chuột), nhưng thực sự hideFocus cho IE (và phác thảo cho những người khác) là đơn giản hơn. – bobince

2

Trừ khi tôi là thiếu mà rải rác biên giới là đang được thảo luận, phác thảo: không có tác phẩm nào trong Internet Explorer 8 (ít nhất là đối với tôi). Thay vào đó, một số siêu liên kết bất ngờ được hiển thị với đường viền chấm (thuộc tính duy nhất mà tôi nhớ thay đổi là hiển thị: nội tuyến trên phần tử h2 chứa liên kết, sau đó đường viền chấm chấm xuất hiện). Vì vậy, tôi đã ném vào một {outline: none; } trong bảng định kiểu toàn cục và poof của tôi, không còn biên giới trong IE8 nữa!

+0

Có, {outline: none} hoạt động trong IE8 và IE9, chỉ cần không IE7. – mhenry1384

0

a {outline:noneIE 8} css có vẻ hoạt động tốt trên Firefox, Chrome và IE 8.

0
a { 
    outline: 0 none !important; 
    border: none; 
}