Köprü görüntülerinin etrafındaki anahattı nasıl kaldırabilirim?


98

CSS kullanarak Metin Değiştirmeyi kullandığımızda ve negatif bir test girintisi, yani text-indent:-9999px. Daha sonra bu bağlantıya tıkladığımızda aşağıdaki örnek görseldeki gibi Noktalı çizgi belirir. Bunun çözümü nedir?

görüntü açıklamasını buraya girin


3
Lütfen bunu kaldırmayın, erişilebilirlik uğruna orada.


Yineleme: stackoverflow.com/questions/1142819/… (ancak lütfen yukarıdaki erişilebilirlik yorumlarına bakın!)
JohnB

Yanlış arama terimini kullanarak buna karar verdim. Ben de bunun farkında olmak okuyan herkes tavsiye IE alt çizgileri
JGallardo

Yanıtlar:


171

Bağlantı etiketi taslağını kaldırmak için

a {outline : none;}

Görüntü bağlantısından ana hatları kaldır

a img {outline : none;}

Resim bağlantısından kenarlığı kaldır

img {border : 0;}

1
Teşekkür ederim, Keşfedin. Bu beni uzun zamandır rahatsız ediyordu - sadece IE'deki hiper bağlantılı resimler değil, köprüsüz normal resimler. Cevabınızı bulana kadar sinir bozucuydu (yeterince garip bir şekilde Google aracılığıyla, Stack değil).
Jason Weber

25

Bağlantı öğesinde CSS özelliği "anahat" ve "yok" değerini kullanabilirsiniz.

a {
outline: none;
}

Umarım yardımcı olur.



9

Odak stillerinin bir nedenden ötürü bulunduğunu lütfen unutmayın: Bunları kaldırmaya karar verirseniz, yalnızca klavye aracılığıyla gezinen kişiler artık neyin odakta olduğunu bilmiyorlar, bu nedenle web sitenizin erişilebilirliğine zarar veriyorsunuz.

(Bunları yerinde tutmak, farelerini kullanmayı sevmeyen deneyimli kullanıcılara da yardımcı olur)


Kaldırmıyoruz: odak stili. sadece stil taslağı eklemek: hiçbiri öyle değil. diğer varsayılan stil orada olacaktır.
Wasim Shaikh

1
O halde "diğer varsayılan stil" nedir? Bildiğim kadarıyla sadece bir tane var, noktalı çizgi.
Wolfr

1
Tamam .. Ekran Okuyucular için Diffrent stilini kullanabiliriz. bu Erişilebilirlik Çözümü olabilir.
Wasim Shaikh

Sadece ekran okuyucular ana hatları kullanmakla kalmaz, bazı insanlar klavyelerinin kullandığı web sitelerinde gezinmeyi de sever.
user2019515

8

Firefox ve Internet Explorer'da (IE) aynı sınır efekti vardır, bir bağlantıya tıkladığınızda görünür hale gelir.

Bu kod yalnızca IE'yi düzeltir:

a:active { outline: none; }.

Ve bu hem Firefox hem de IE'yi düzeltir :

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

Sitenizden bağlantı kenarlıklarını kaldırmak istiyorsanız, son kod stil sayfanıza eklenmelidir.


1
Teşekkürler Mike, Bu gerçekten İyi Cevap. ama -moz-anahat-stilini kullanma: yok; Geçerli CSS değil. hala bu iyi bir seçenek
Wasim Shaikh


3

Umarım bu bazılarınız için yararlıdır, bağlantılardan, resimlerden ve flash'tan ve MSIE 9'dan anahatları kaldırmak için kullanılabilir:

    a, a:hover, a:active, a:focus, a img, object, embed {
    outline: none;
    ie-dummy: expression(this.hideFocus=true); /* MSIE - Microsoft Internet Explorer 9 remove outline */
    }

Aşağıdaki kod, görüntü kenarlığını gizleyebilir:

    img {
    border: 0;
    }

Firefox 3.6.8'i desteklemek istiyor, ancak Firefox 4'ü desteklemiyorsanız ... Bir input type = image üzerine tıklamak da noktalı bir çerçeve oluşturabilir, firefox'un eski sürümlerinde onu kaldırmak için aşağıdakiler işe yarayacaktır:

   input::-moz-focus-inner { 
   border: 0; 
   }

IE 9, sayfalarınızın arasına ve arasına bu meta etiketi eklemediğiniz sürece, bazı durumlarda bağlantıların etrafındaki noktalı anahatları kaldırmaya izin vermez:

     <meta http-equiv="X-UA-Compatible" content="IE=9" />

@Sparky 2014 yılında yaygın olarak kullanılan bir tarayıcı olduğu için MSIE dahil olmak üzere en çok kullanılan tarayıcılarda bunun nasıl yapılacağını ve MS meta etiketi ve CSS için kullanılabilecek bilgileri anlatarak soruyu cevaplayan bir cevap vermemiz gerektiğine inanıyorum. Yalnızca MSIE MSIE de dahil olmak üzere çoğu tarayıcı için destek sunma cevabımın sadece bir parçasıydı ... Soru W3C Geçerli HTML veya CSS ile ilgili DEĞİLDİR ...
jagb

@Sparky +1 çünkü bu doğru ve W3C standartlarını nadiren düşündüklerinden MS css / html / meta etiketlerine asla güvenmemeliyiz .... Microsoft meta etiketlerini ve CSS kodlarını yalnızca MS kodunu destekleyen tarayıcı, MSIE ve ilgili MS tarayıcılarıdır. "Köprü görüntülerinin etrafındaki ana hatları nasıl kaldırabilirim?" Sorusuna istenen yanıt olarak.
jagb

Ben sadece gözlemlerimi belirten bir yorum yaptım.
Sparky

Ancak, bu meta etiketin "bazı durumlarda" gerekli olduğu iddianız için bir kaynak verebilir misiniz diye merak ediyordum ; ve bu davaların neler olabileceğini.
Sparky

Lütfen bazı bilgiler için Microsoft web sitesini okuyun, ancak tümü değil .. Burada Stack Overflow'da pek çok soru var, Sorulardan bazıları sağ çubukta bu Sorunun yanında listelenebilir .. Bazı durumlarda MSIE / EDGE bunu yapamaz tarayıcı desteklemediği için sayfa içeriğini görüntüleyin, "bazı durumlarda" X-UA-Uyumlu meta etiket MSIE / EDGE ziyaretçileri için yararlıdır. daha fazla bilgi var, işe yarayacak bir düzeltme burada Umarım bu sizin için yararlı bir
bilgidir

3

Bu, Google Chrome'da çalışan en sonuncusu

:link:focus, :visited:focus {outline: none;}

1

-moz-user-focus: ignore; Gecko tabanlı tarayıcılarda (nasıl uygulandığına bağlı olarak ihtiyacınız olabilir!


1

HTML 4.01 için Bunun Gibi Kullanın

<img src="image.gif" border="0">


1

overflow:hiddenMetni girintili özelliğe koyabilirsiniz ve sayfanın dışına yayılan bu noktalı çizgi kaybolacaktır.

Ana hatları hep birlikte kaldırmayla ilgili birkaç gönderi gördüm. Sitenin erişilebilirliğini azaltabileceğiniz için bunu yaparken dikkatli olun.

a:active { outline: none; }

Ben şahsen bu özniteliği kullanırdım, sanki :hoveröznitelik aynı css özelliklerine sahipmiş gibi, gezinme için klavyeyi kullanan kişiler için ana hatların gösterilmesini engelleyecektir.

Umarız bu sorununuzu çözer.



0

Bahse girerim çoğu kullanıcı klavyeyi gezinme kontrolü olarak kullanan kullanıcı tipi değildir. Klavyeyle gezinmeyi tercih eden küçük bir grup için kullanıcılarınızın çoğunu rahatsız etmek kabul edilebilir mi? Kısa cevap - kullanıcılarınızın kim olduğuna bağlıdır.

Ayrıca bu deneyimi Firefox ve Safari'de aynı şekilde görmüyorum. Yani bu argüman çoğunlukla IE'ye yönelik gibi görünüyor. Her şey gerçekten kullanıcı tabanınıza ve onların bilgi düzeyine - siteyi nasıl kullandıklarına bağlıdır.

Gerçekten nerede olduğunuzu bilmek istiyorsanız ve bir klavye kullanıcısıysanız, siteyi tuşlarken her zaman durum çubuğuna bakabilirsiniz.


0

Bu benim için mükemmel çalışıyor

a img {border:none;}


0

Bağlantısı olan herhangi bir görüntünün, daha eski tarayıcılarla bağlantı olduğunu belirtmeye yardımcı olmak için görüntünün çevresinde bir kenarlığı olacaktır. IMG HTML etiketinize border = "0" eklemek, o resmin resmin etrafında bir çerçeveye sahip olmasını önleyecektir.

Ancak, her görüntüye border = "0" eklemek sadece zaman alıcı olmakla kalmaz, aynı zamanda dosya boyutunu ve indirme süresini de artırır. Resimlerinizden hiçbirinin kenarlık olmasını istemiyorsanız, içinde aşağıdaki kodun bulunduğu bir CSS kuralı veya CSS dosyası oluşturun.

img {border-style: yok; }


0

Bunun hala bu kişi için bir sorun olup olmadığından emin değilim, ancak genel olarak birçok insan için bir acı olabileceğini biliyorum. Verilen yukarıdaki çözümler çalışacak bazı durumlarda, ancak, örneğin, WordPress gibi bir CMS kullanarak eğer ve anahatlarını bir eklenti veya tema biri tarafından üretiliyor, büyük olasılıkla olacak değil bu konunun bağlı olarak çözmüş CSS'yi nasıl ekliyorsunuz.

Ayrı bir StyleSheet (örneğin, ' Lazyest StyleSheet ' eklentisini kullanın) ve mevcut eklenti (veya tema) zorlamalı stili geçersiz kılmak için içine aşağıdaki CSS'yi girmenizi öneririm:

a:hover,a:active,a:link {
    outline: 0 !important;
    text-decoration: none !important;
}

Belirli kurala ' ! Önemli ' eklemek , kural başka bir yerde olsa bile (bir eklenti, tema vb.) Bunu oluşturmak için bir öncelik haline getirecektir.

Bu, geliştirme sırasında zamandan tasarruf etmenize yardımcı olur. Elbette, orijinal kaynağı araştırabilirsiniz, ancak birçok proje üzerinde çalışırken veya güncelleme yapmanız gerektiğinde (değişikliklerinizin geçersiz kılınabileceği [ önerilmiyor! ]) Veya yeni eklentiler veya temalar eklediğinizde, bu en iyisidir zaman kazanmak için başvuru.

Umarım bu yardımcı olur ... Barış!


0

Yukarıdaki çözüm kimse için işe yaramazsa. Bunu da bir dene

a {
 box-shadow: none;
}

-9

Evet kullanabiliriz. CSS sıfırlama a {outline:none}ve ayrıca


a:focus, a:active {outline:none} CSS'yi Sıfırlamada En İyi Uygulama için En İyi Çözüm ortak kullanmaktır :focus{outline:none}Hala En İyi Seçeneğiniz varsa lütfen Paylaşın


20
İçeriği sizi sonucunuza götüren diğer cevaplardan birini kabul etmemek biraz kaba değil mi?
Pekka
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.