Як я можу видалити контур навколо зображень гіперпосилань?


96

Коли ми використовуємо заміну тексту за допомогою CSS і даємо негативний відступ тесту, тобто text-indent:-9999px. Тоді, коли ми натискаємо на це посилання, пунктирна лінія з’являється, як на прикладі зображення нижче. Яке рішення для цього?

введіть тут опис зображення


3
Будь ласка, не видаляйте це, воно є заради доступності.


Дублікат: stackoverflow.com/questions/1142819/… (але, будь ласка, дивіться коментарі щодо доступності вище!)
JohnB

Я прийшов до цього, використавши неправильний пошуковий термін. Я рекомендую кожному, хто читає це, також знати про це підкреслення в IE
JGallardo

Відповіді:


167

Для Видалити контур для прив'язки тегу

a {outline : none;}

Видалити контур із посилання на зображення

a img {outline : none;}

Видалити межу із посилання на зображення

img {border : 0;}

1
Дякую, Відкрий. Це давно мене хвилювало - не просто гіперпосилання в IE, а звичайні фотографії без гіперпосилання. Це дратувало, поки я не знайшов вашої відповіді (як не дивно через Google, а не Stack).
Джейсон Вебер,

25

Ви можете використовувати властивість CSS "контур" і значення "none" для елемента прив'язки.

a {
outline: none;
}

Сподіваюся, що це допомагає.


17

Для Internet Explorer 9:

a:active, a:focus { 
 outline: none; 
 ie-dummy: expression(this.hideFocus=true);
}

Джерело: http://social.msdn.microsoft.com/Forums/en-HK/ieextensiondevelopment/thread/1023adfd-bd73-47ac-ba9c-2bad19ac583a


Це єдине, коли це працює в IE належним чином, але коли воно викликає мерехтіння сторінки при завантаженні.
Олексій Теніцький

9

Зверніть увагу, що стилі фокусування існують з певної причини: якщо ви вирішите їх видалити, люди, які здійснюють навігацію за допомогою клавіатури, лише не знають, що в фокусі, тому ви шкодите доступності свого веб-сайту.

(Утримання їх на місці також допомагає досвідченим користувачам, які не люблять користуватися мишею)


Ми не знімаємо: стиль фокусування. просто додаю контур стилю: жоден так. буде інший стиль за замовчуванням.
Wasim Shaikh

1
Що таке "інший стиль за замовчуванням"? Наскільки мені відомо, є лише одна, пунктирна лінія.
Wolfr

1
Гаразд. Можливо, ми можемо використовувати стиль різниці для зчитувачів з екрану. це може бути рішенням для доступності.
Wasim Shaikh

Не лише програми зчитування з екрану використовують контур, деяким людям також подобається переглядати веб-сайти, що їх клавіатура.
user2019515 05.03.13

8

У Firefox та Internet Explorer (IE) спостерігається однаковий ефект кордону , він стає видимим, коли ви натискаєте якесь посилання.

Цей код виправить лише IE:

a:active { outline: none; }.

І це виправить Firefox та IE :

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

Останній код слід додати у вашу таблицю стилів, якщо ви хочете видалити межі посилань зі свого сайту.


1
Дякую Майку, це справді гарна відповідь. але використовуючи -moz-outline-style: none; не є дійсним CSS. все-таки це хороший варіант
Васім Шейх


3

Сподіваюсь, це корисно для когось із вас, його можна використовувати для видалення контурів із посилань, зображень та флеш-пам’яті та з MSIE 9:

    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 */
    }

Код нижче може приховати межу зображення:

    img {
    border: 0;
    }

Якщо ви хочете підтримувати Firefox 3.6.8, але не Firefox 4 ... Клацнувши на введенні type = image, можна також створити пунктирний контур, щоб видалити його у старих версіях Firefox:

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

IE 9 забороняє в деяких випадках видаляти пунктирний контур навколо посилань, якщо ви не включите цей мета-тег між і на своїх сторінках:

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

@Sparky Я вважаю, що ми повинні запропонувати відповідь, яка відповідає на питання, розповідаючи про те, як це зробити в більшості використовуваних браузерів, включаючи MSIE, оскільки це був широко використовуваний браузер у 2014 році, та інформацію про метатег MS та CSS, який можна використовувати для Тільки MSIE Це була лише частина моєї відповіді, щоб запропонувати підтримку для більшості браузерів, включаючи MSIE ... Питання НЕ було про W3C Дійсний HTML або CSS ...
jagb

@Sparky +1, тому що це правда, і ми ніколи не повинні довіряти MS css / html / мета-тегам, оскільки вони рідко замислюються про стандарти W3C .... Я не сказав, що добре використовувати мета-теги Microsoft та їх CSS-код як єдиним браузером, який підтримує код MS, є MSIE та пов'язані з ними браузери MS. Як запитувана відповідь на питання "Як я можу видалити контур навколо зображень гіперпосилань?"
jagb

Я просто зробив коментар, висловивши свої спостереження.
Sparky

Однак мені було цікаво, чи можете ви навести джерело для свого твердження, що цей метатег необхідний у "деяких випадках" ; і якими можуть бути ці випадки.
Sparky

Будь ласка, прочитайте веб-сайт Microsoft, щоб отримати деяку, але не всю інформацію .. тут є багато запитань на Stack Overflow, деякі з питань можна перерахувати поруч із цим запитанням на правій панелі .. в деяких випадках MSIE / EDGE не може відображати вміст сторінки, оскільки браузер його не підтримує, у "деяких випадках" мета-тег, сумісний з X-UA, корисний для відвідувачів MSIE / EDGE. є більше інформації, виправлення, яке запрацює, тут, сподіваюся, це корисна інформація для вас
jagb

3

Це остання версія, яка працює в Google Chrome

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

1

-moz-user-focus: ignore; у браузерах на базі Gecko (можливо, вам знадобиться! важливо, залежно від того, як це застосовується)


1

Використовуйте як це для HTML 4.01

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


1

Можна поставити overflow:hidden до властивості з текстовим відступом, і ця пунктирна лінія, яка витягується із сторінки, зникне.

Я бачив пару дописів про те, як разом видаляти контури. Будьте обережні, роблячи це, оскільки ви можете знизити доступність сайту.

a:active { outline: none; }

Я особисто використовував би цей атрибут, як ніби :hover атрибут має однакові властивості css, це запобіжить контури, що відображаються для людей, які використовують клавіатуру для навігації.

Сподіваюся, це вирішить вашу проблему.



0

Б'юся об заклад, більшість користувачів не є тими користувачами, які використовують клавіатуру як навігаційне управління. Чи прийнятно тоді дратувати більшість користувачів за невелику групу, яка воліє користуватися навігацією на клавіатурі? Коротка відповідь - залежить від того, хто ваші користувачі.

Крім того, я не бачу цього досвіду однаково у Firefox та Safari. Отже, цей аргумент, в основному, стосується IE. Все насправді залежить від вашої користувацької бази та рівня їх знань - як вони користуються сайтом.

Якщо ви дійсно хочете знати, де ви знаходитесь, і ви користуєтеся клавіатурою, ви завжди можете заглянути в рядок стану, коли натискаєте веб-сайт.



0

Будь-яке зображення, яке має посилання, матиме межу навколо зображення, що допоможе вказати, що воно є посиланням із старими браузерами. Додавання border = "0" до вашого тегу IMG HTML запобіжить появі межі зображення навколо зображення.

Однак додавання border = "0" до кожного зображення не лише забирає багато часу, але й збільшує розмір файлу та час завантаження. Якщо ви не хочете, щоб жодне з ваших зображень мало межу, створіть правило CSS або файл CSS, у якому буде вказаний код нижче.

img {стиль кордону: немає; }


0

Я не впевнений, чи все ще це проблема для цієї людини, але я знаю, що це може завдавати біль багатьом людям загалом. Звичайно, наведені вище рішення будуть працювати в деяких випадках, але якщо ви, наприклад, використовуєте CMS, як WordPress, а контури створюються плагіном або темою, швидше за все , ця проблема не буде вирішена, залежно від як ви додаєте CSS.

Я б запропонував створити окрему таблицю StyleSheet (наприклад, використовувати плагін " Lazyest StyleSheet ") і ввести в неї наступний CSS, щоб замінити наявний плагін (або тему), примусовий стиль:

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

Додавання " ! Important " до конкретного правила зробить це пріоритетом для генерування, навіть якщо правило може бути в іншому місці (будь то в плагіні, темі тощо).

Це допомагає економити час при розробці. Звичайно, ви можете шукати першоджерело, але коли ви працюєте над багатьма проектами або вам потрібно виконати оновлення (де ваші зміни можна замінити [ не пропонується! ]), Або додати нові плагіни чи теми, це найкращий звернення для економії часу.

Сподіваюся, це допомагає ... Мир!



-9

Так, ми можемо використовувати. Скидання CSS як, a {outline:none}а також


a:focus, a:active {outline:none} для найкращої практики скидання CSS використовується найкраще рішення, :focus{outline:none}якщо у вас все ще є найкращий варіант, поділіться


20
Чи не трохи грубо не прийняти одну з інших відповідей, зміст якої підвів вас до вашого висновку?
Pekka
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.