Firefox'un BUTTONS üzerindeki noktalı anahatlarını ve bağlantılarını nasıl kaldırırım?


507

Firefox'un bağlantılarda çirkin noktalı odak anahatlarını görüntülememesini sağlayabilirim bu :

a:focus { 
    outline: none; 
}

Ancak bunu <button>etiketler için de nasıl yapabilirim ? Bunu yaptığımda:

button:focus { 
    outline: none; 
}

düğmeler, üzerlerine tıkladığımda hala noktalı odak anahatlarına sahip.

(ve evet, bunun bir kullanılabilirlik sorunu olduğunu biliyorum, ancak çirkin gri noktalar yerine tasarıma uygun olan kendi odak ipuçlarını vermek istiyorum)


2
Firefox 4'te olduğu gibi, öğeler tıklandığında artık varsayılan olarak bir anahat almıyor, sadece klavye odağı alırken.
Geert

1
"Çirkin" olarak adlandırdığınız şey bir web sitesinin erişilebilirliğini desteklemeyi amaçlamaktadır. Bu anahat kaldırılırken yalnızca klavye kullanıcıları web sitesinin hangi bölümünün odakta olduğunu belirleyemiyor. Web sitenize tamamen erişilemez ve bu asla böyle olmamalı. Anahattı asla çıkarmayın. Yolunuza daha iyi stil verin.
Markus Graf

Yanıtlar:


787
button::-moz-focus-inner {
  border: 0;
}

15
Evet, benim için de işe yarıyor! Şimdi seçimler için nasıl yapılabilir?
7wp

16
Bunun giriş için de işe yaradığını unutmayın (örn. İnput :: - moz-focus-inner {border: 0;})
El Yobo

15
Çift kolonun amacı: (CSS3 gösterimi) evotech.net/blog/2007/05/…
sholsinger

21
Bu benim için işe yaramadı, çünkü bootstrap.css bu çirkin noktalı düğmeleri yapıyordu. Onun yerine koyduk:focus {outline:none !important;}
machineaddict

5
: focus {anahat: yok;} :: - moz-focus-iç {border: 0;} daha az spesifik olur
Ben

311

Bir seçici tanımlamaya gerek yoktur.

:focus {outline:none;}
::-moz-focus-inner {border:0;}

Ancak, bu W3C'nin erişilebilirlikle ilgili en iyi uygulamalarını ihlal eder. Anahat, klavyelerle gezinmeye yardımcı olmak için var.

https://www.w3.org/TR/WCAG20-TECHS/F78.html#F78-examples


8
Teşekkürler, doğru cevap gelmediğinde bu benim için çalıştı. Yanlış seçiciyi kullanmalıydım.
irl_irl

Bunun için teşekkürler, bu bağlantı ve düğmelerden de kaldıracak mı?
Nathan

3
Bu en iyisi! Kabul edilen cevap sadece <button>değil, <a>ne için<input>
Ron van der Heijden

2
Ubuntu (GNU / Linux) altında Mozilla Firefox 30'da mükemmel.
e-info128

4
Bu son derece erişilebilirlikle ilgili ikinci notu vereceğim. Herkesin bir fare kullanamayacağını, göremeyeceğini veya iyi göremeyeceğini hatırlamak önemlidir. Bununla birlikte, taslağı gizleyen bağlantı (ve sağduyu) başına, tamamlandığında sadece a11y'yi kırır without ... an author-supplied visual focus indicator- başka bir deyişle, OP'nin belirttiği gibi, kullanıcı-aracı stilini kendinizle değiştirmek iyidir. İdeal olarak yüksek kontrastlı olmalıdır.
johncip

48

Noktalı çerçeveden kurtulmak için CSS kullanmayı tercih ederseniz:

/*for FireFox*/
    input[type="submit"]::-moz-focus-inner, input[type="button"]::-moz-focus-inner
    {   
        border : 0;
    } 
/*for IE8 and below */
    input[type="submit"]:focus, input[type="button"]:focus
    {     
        outline : none; 
    }

Sıfır sayıları için bir birime ihtiyacınız yoktur. 0pxsadece ile değiştirilebilir0
argo

44

Aşağıdakiler benim için çalıştı, LINKS, paylaşmayı düşündü - birinin ilgilenmesi durumunda.

a, a:visited, a:focus, a:active, a:hover{
    outline:0 none !important;
}

Şerefe!


12
Sadece a { outline: none; }bağlantılar için yeterli olmalıdır.
hibe

3
Burada önemli olan hile yaptı, diğer çözümler buna sahip değildi ve işe yaramadı. benim için.
Cristiano Fontes

Ama genellikle ->a { outline: none; }!importanta { outline: none !important; }
joryl

24
:focus, :active {
    outline: 0;
    border: 0;
}

Kullandığım bir seçenek kutusu için bir cazibe gibi çalıştı
Muhammed Ahsan

1
Bu yeterince spesifik değildi ve önemli ya da sadece aöğeleri hedeflemek istemedim , bu yüzden iyi bir seçenek buldum body :focus, body :active { outline: 0; border: 0; } ::-moz-focus-inner { border: 0; }
Ivan Durst

10

[Güncelleme] Bu çözüm artık çalışmıyor. Benim için işe yarayan çözüm budur https://stackoverflow.com/a/3844452/925560

Doğru olarak işaretlenen cevap Firefox 24.0 ile çalışmadı.

Düğmelerdeki ve bağlantı etiketlerindeki Firefox'un noktalı anahattını kaldırmak için aşağıdaki kodu ekledim:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

Çözümü burada buldum: http://aghoshb.com/articles/css-how-to-remove-firefoxs-dotted-outline-on-buttons-and-anchor-tags.html


2
Artık çalışmıyor: / Çalışan çözüm bu bir stackoverflow.com/a/3844452/925560
Renato Carvalho

8

Cevapların çoğunu burada denedim, ama hiçbiri benim için çalışmadı. Chrome'daki düğmelerdeki mavi çerçeveden de kurtulmam gerektiğini fark ettiğimde, başka bir çözüm buldum. Chrome'daki css özel stil düğmesinden mavi kenarlığı kaldırın

Bu kod benim için Windows 7'deki Firefox sürüm 30'da çalıştı. Belki de başka birine yardımcı olabilir :)

button:focus {outline:0 !important;}

Burada da aynı şey, bu FF 38.0.5 üzerinde çalışan tek çözüm
OlivierH

6

Firefox'ta bu noktalı odağı CSS kullanarak kaldırmanın bir yolu yoktur.

Web uygulamanızın çalıştığı bilgisayarlara erişiminiz varsa, Firefox'ta about: config bölümüne gidin ve browser.display.focus_ring_width 0 olarak . Firefox noktalı kenarlık göstermeyecektir.

Aşağıdaki hata konuyu açıklıyor: https://bugzilla.mozilla.org/show_bug.cgi?id=74225


Teşekkürler iyi çalışıyor, ama şimdiye kadar bu sorunu asla daha önce çok sayıda bağlantı oluşturduk. ama şimdi kafam karıştı, öyleyse şimdiki sebep nedir?
Durga Rao

Bu cevap artık tamamen yanlış. ::-moz-focus-inner {border:0;}Diğer birkaç cevapta belirtildiği gibi ayarlamak mükemmel şekilde çalışır.
Andy Mercer

@AndyM Bu cevap işe yarıyor. Diğer yanıtlarda sunulan çözüm CSS içindir ve yalnızca bireysel siteler için çalışır.
Rahil Wazir

7
Soru CSS ile nasıl yapılabileceğini soruyor ve cevap olamayacağını söylüyor. Bu yanlış. Olabilir.
Andy Mercer

6

Bunun için web'de bulunan, birçoğu işe yarayan, ancak bunu zorlamak için birçok çözüm var, böylece aşağıdakileri kullandıktan sonra kesinlikle hiçbir şey vurgulanamaz / odaklanamaz:

::-moz-focus-inner, :active, :focus {
    outline:none;
    border:0;
    -moz-outline-style: none;
}

Bu sadece biraz ekstra güvenlik ekler ve anlaşma mühürler!



5

Bu kodu kullanarak Firefox 46 ve Chrome 49'da test edilmiştir.

input:focus, textarea:focus, button:focus {
    outline: none !important;
}

Önce (beyaz noktalar görünür)

beyaz noktalı giriş

Sonra (Beyaz noktalar görünmez) resim açıklamasını buraya girin

Yalnızca birkaç giriş alanına, düğmeye vb. Uygulamak istiyorsanız Daha spesifik kodu kullanın.

input[type=text] {
  outline: none !important;
}

Mutlu Kodlama !!


!importantBeni Firefox'un stil geçersiz kılmak için gerekliydi. Şerefe!
SamHH

5

Seçim kutusu için bu css'yi eklemeniz yeterlidir

select:-moz-focusring {
    color: transparent;
    text-shadow: 0 0 0 #000;
}

Bu benim için iyi çalışıyor.


4

Odak anahattını kaldırarak ne yaptığınızı gerçekten bilmeniz gerektiğini düşünüyorum, çünkü klavye gezinmesi ve erişilebilirliği için karışıklık yaratabilir.

Bir tasarım sorunu nedeniyle çıkarmanız gerekiyorsa, :focus , düğmenin yerine, kenarlığı daha parlak bir renge veya bunun gibi bir şeye değiştirmek gibi başka bir görsel işaretle değiştiren durum .

Bazen bu sinir bozucu taslağı çıkarmam gerektiğini hissediyorum, ancak her zaman alternatif bir odak görsel işareti hazırlarım.

Ve aslablur() js işlevini kullanmayın . ::-moz-focus-innerSözde sınıfı kullanın .


4

Çoğu durumda !importantCSS koduna eklenmeden çalışmaz.

Yani, eklemeyi unutma !important

a, a:active, a:focus{
    outline: none !important; /* Works in Firefox, Chrome, IE8 and above */
}


Veya başka bir kod:

button::-moz-focus-inner {
  border: 0 !important;
}

3
button::-moz-focus-inner { border: 0; }

buttonDavranışı devre dışı bırakmak istediğiniz herhangi bir CSS seçici nerede olabilir.


3

Odak noktasından kurtulmak yerine yoğunlaştırmak isteyebilirsiniz.

button::-moz-focus-inner {border: 2px solid transparent;}

button:focus::-moz-focus-inner {border-color: blue} 

2
@Nathan biraz geç ama odak durumunda herhangi bir stilin olmaması klavye deneyimiyle uğraşacak. sekme tuşuna bastığınızda neyin odaklandığını bilemezsiniz .
Hkan

@Hkan Evet, katılıyorum. Ancak Firefox'un taslağı özellikle özel bir odak sınırında olduğunda çirkin.
Nathan

@Nathan tamamen buna katılıyorum. Yapmamız gereken, söz konusu durumdaki öğelerin aynı olmasını sağlamak yerine odak durumu için kendi stilimizi sağlamaktır.
Hkan

3

Bağlantılardan, düğmeden ve giriş öğesinden noktalı anahatları kaldırın.

a:focus, a:active,
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

3

Eğer bir düğmeye bir sınır var ve Firefox'ta Noktalı gizlemek isterseniz olmadan (ve dolayısıyla o butona ekstra genişlik var) kullanabilirsiniz sınır çıkarmadan:

.button::-moz-focus-inner {
    border-color: transparent;
}

3

Aşağıdaki CSS kodu bunu kaldırmak için çalışır:

a:focus, a:active, 
button::-moz-focus-inner,
input[type="reset"]::-moz-focus-inner,
input[type="button"]::-moz-focus-inner,
input[type="submit"]::-moz-focus-inner,
select::-moz-focus-inner,
input[type="file"] > input[type="button"]::-moz-focus-inner {
    border: 0;
    outline : 0;
}

2

Bunu başarmanın tek yolu,

browser.display.focus_ring_width = 0

hakkında: tarayıcı bazında yapılandırma.


1

Firefox v-27.0'da çalışır

 .buttonClassName:focus {
  outline:none;
}

1

Yukarıdakilerden birçok seçeneği denedikten sonra sadece aşağıdakiler benim için çalıştı.

*:focus, *:visited, *:active, *:hover  { outline:0 !important;}
*::-moz-focus-inner {border:0;}

Aslında (en azından Firefox 77), yalnızca gerekir: button:focus { outline: none !important } Ya benim gibi gibi önemli yoksa bu eserler de Firefox stil geçersiz kılmak için:! :root button:focus { outline: none }
Jonas Sandstedt

1

Bootstrap 3 ile birlikte bu kodu kullandım. İkinci kural kümesi, odak / etkin düğmeler için önyüklemenin ne yaptığını geri alır :

button::-moz-focus-inner {
  border: 0;    /*removes dotted lines around buttons*/
}

.btn.active.focus, .btn.active:focus, .btn.focus, .btn.focus:active, .btn:active:focus, .btn:focus{
  outline:0;
}

Özel css dosyanızın html kodunuzdaki Bootstrap css dosyasından sonra geçersiz kılınması gerektiğini unutmayın.


1

Evet kaçırmayın ! Önemli

button::-moz-focus-inner {
 border: 0 !important;
}

! Önemli buradaki cevabın bir parçası değildir ve uygulamanızın ihtiyacı varsa, düğmelerinizin etrafındaki vurgulardan daha büyük sorunlarınız vardır. Her zaman kaçınmaya çalışın!
monokrome

0

button::-moz-focus-inner {border: 0px solid transparent;}CSS'nizde deneyebilirsiniz .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.