У меня есть тег в моем HTML, как это:
<h1>My Website Title Here</h1>
Используя CSS, я хочу заменить текст своим настоящим логотипом. У меня есть логотип там без проблем путем изменения размера тега и вставки фонового изображения через CSS. Однако я не могу понять, как избавиться от текста. Я видел это раньше, в основном, толкая текст с экрана. Проблема в том, что я не могу вспомнить, где я это видел.
Ответы:
Это один из способов:
Вот еще один способ скрыть текст, избегая огромного 9999 пиксельного поля, которое создаст браузер:
источник
Почему бы просто не использовать:
источник
color: transparent;
работает вместе сuser-select: none;
, если вы не переопределите цвет.Просто добавьте
font-size: 0;
к своему элементу, который содержит текст.источник
Наиболее удобный для браузера способ - написать HTML как
затем используйте CSS, чтобы скрыть промежуток и заменить изображение
Если вы можете использовать CSS2, то есть несколько лучших способов использования этого
content
свойства, но, к сожалению, веб еще не на 100%.источник
Скрытие текста с учетом доступности:
В дополнение к другим ответам, здесь есть еще один полезный подход для сокрытия текста.
Этот метод эффективно скрывает текст, но позволяет ему оставаться видимым для программ чтения с экрана. Это вариант для рассмотрения, если доступность является проблемой.
Стоит отметить, что этот класс в настоящее время используется в Bootstrap 3 .
Если вы заинтересованы в чтении о доступности:
Инициатива доступности веб (WAI)
Документация доступности MDN
источник
Джеффри Зельдман предлагает следующее решение:
Это должно быть менее ресурсоемким, чем
-9999px;
Пожалуйста, прочитайте все об этом здесь:
http://www.zeldman.com/2012/03/01/replacing-the-9999px-hack-new-image-replacement/
источник
См. Mezzoblue для хорошего обзора каждой техники, с сильными и слабыми сторонами, а также с примерами html и css.
источник
Так много сложных решений.
Самый простой - просто использовать:
источник
Вы можете просто скрыть свой текст, добавив этот атрибут:
источник
!important
пункт нужен в вашем случае. В моем случае это работало нормально и без него.Не использовать
{ display:none; }
Это делает содержимое недоступным. Вы хотите, чтобы программы чтения с экрана могли видеть ваш контент и визуально оформлять его, заменяя текст изображением (например, логотипом). Используяtext-indent: -999px;
или подобный метод, текст все еще там - только не визуально там. Используйтеdisplay:none
, и текст исчез.источник
Вышесказанное хорошо работает и в последней версии Thunderbird.
источник
Вы можете использовать
background-image
свойство css иz-index
убедиться, что изображение остается перед текстом.источник
z-index
относится кbackground-image
.Почему вы не используете:
Если у вас нет элемента span или div, он отлично работает для ссылок.
источник
Ответ состоит в том, чтобы создать промежуток со свойством
{display:none;}
Вы можете найти пример на этом сайте
источник
Это на самом деле область, созревшая для обсуждения, со многими тонкими доступными методами. Важно, чтобы вы выбрали / разработали технику, которая соответствует вашим потребностям, включая: программы чтения с экрана, комбинации изображений / CSS / сценариев вкл / выкл, SEO и т. Д.
Вот несколько хороших ресурсов для начала работы над методами замены стандартных изображений:
http://faq.css-standards.org/Image_Replacement
http://www.alistapart.com/articles/fir
http://veerle.duoh.com/blog/links/#l-10
источник
Используйте тег условия для другого браузера и используйте CSS, который вы должны разместить,
height:0px
аwidth:0px
также вы должны разместитьfont-size:0px
.источник
Если цель состоит в том, чтобы просто сделать текст внутри элемента невидимым, установите для атрибута color значение непрозрачности 0, используя значение rgba, например,
color:rgba(0,0,0,0);
clean and simple.источник
Я не помню, где я взял это, но использовал это успешно целую вечность.
Мой миксин в sass, но вы можете использовать его так, как считаете нужным. Для хорошей меры я обычно держу
.hidden
класс где-нибудь в своем проекте, чтобы присоединить к элементам, чтобы избежать дублирования.источник
источник
Попробуйте этот код, чтобы сократить и скрыть текст
или скрыть использование в вашем классе CSS
.hidetxt { visibility: hidden; }
источник
вернуть содержимое с помощью CSS
источник
Я обычно использую:
источник
Если мы сможем отредактировать разметку, жизнь станет проще, просто удали текст и будь счастлив. Но иногда разметка была размещена с помощью кода JS, или нам просто не разрешено ее редактировать, слишком плохой CSS оказался единственным оружием, предоставленным в наше распоряжение.
Мы не можем поместить
<span>
перенос текста и скрыть весь тег. Кстати, некоторые браузеры не только скрывают элементы сdisplay:none
но и отключают компоненты внутри.Оба
font-size:0px
иcolor:transparent
могут быть хорошими решениями, но некоторые браузеры их не понимают. Мы не можем полагаться на них.Я предлагаю:
Использование
overflow:hidden
обеспечивает нашу ширину и высоту. Некоторые браузеры (не будут называть их ... IE ) могут считывать ширину и высоту какmin-width
иmin-height
. Я хочу предотвратить увеличение коробки.источник
Использование нулевого значения для
font-size
иline-height
в элементе помогает мне:источник
Чтобы скрыть текст из html, используйте свойство text-indent в css
/ * для динамического текста вам нужно добавить пробел, чтобы применяемый css не мешал. nowrap означает, что текст никогда не будет перенесен на следующую строку, текст продолжается на той же строке, пока
<br>
не встретится тегисточник
Один из способов добиться этого - использовать
:before
или:after
. Я использовал этот подход в течение нескольких лет, и особенно хорошо работает с векторными значками глифов.источник
Это сработало для меня с span (валидация нокаута).
источник
Решение, которое работает для меня:
HTML
CSS
источник
Лучший ответ работает для короткого текста, но если текст переносится, он просто появляется на изображении.
Один из способов сделать это - перехватывать ошибки с помощью обработчика jquery. Попробуйте загрузить изображение, если оно терпит неудачу, выдает ошибку.
Смотрите пример кода
источник
источник