скрыть тег alt в firefox
по умолчанию alt
атрибут отображается первый раз непосредственно перед рендерингом изображения. Я показываю 25 изображений в сетке, поэтому это выглядит немного неудобно, как все alt
сначала отображаются атрибуты.
можно ли скрыть alt
атрибуты в Firefox?
Примечание: alt
атрибуты содержат динамические имена в моем случае.
8 ответов
С alt
значения атрибутов из отображаемого - удалить атрибут.
значение an alt
атрибут (не тег) заключается в том, что он указывает альтернативу, замену изображения в ситуациях, когда изображение не отображается. Поэтому, если вы хотите скрыть его, когда изображение еще не загружено, вы просите поведение, которое противоречит самому значению атрибута.
alt
текст невидимым (с обычные CSS предостережения) в Firefox, установив, например,
img { background: white; color: white; }
в CSS. Это означает, что alt
тексты невидимы также в случае, если браузер никогда не получает изображение, или браузер был настроен не отображать изображения.
попробовав все другие методы здесь, я нашел, что этот метод работает лучше всего, что делает текст прозрачным, пока изображение не загрузится:
.yourClass img {
color: transparent;
}
из ссылки на все вышеперечисленные ответы я понял, что лучше всего использовать
img:-moz-loading {
visibility: hidden;
}
предположим, что нет изображения, и мы используем цвет как белый или прозрачный, тогда атрибут alt больше не используется, поэтому нам нужен этот атрибут, если нет изображения, чтобы показать, какое изображение здесь загружать и показывать альтернативный текст для отображения.
Не могли бы вы поместить динамические имена в заголовок? Вы можете попробовать черный фон или черное фоновое изображение; возможно, Firefox все еще использует черный цвет текста. Может быть!--0--> будет делать?
Если вы не возражаете добавить немного больше, вот он:
<img src = "283414_2114217089554_728204_nn.jpg" onload="this.setAttribute('alt','this is the alt of my image');" />
надеюсь, что это поможет... :))
вместо того, чтобы беспокоиться о функции alt, вы можете дать всем своим изображениям общий класс, скажем image-to-show
и создайте загрузочный div, абсолютно расположенный над этим изображением. Итак, когда страница загружается, Вы показываете только загрузочный div с загрузочным gif, что-то вроде этого:
// show loading image
$('.loader').show();
после загрузки изображения вы можете скрыть div и показать изображение.
// main image loaded ?
$('.image-to-show').load(function(){
// hide/remove the loading image
$('.loader').hide();
});
вы можете дополнительно улучшить этот код, используя конкретные идентификаторы изображений. Другой, более чистый способ сделать это был бы установить data-loading
значение true для загружаемых изображений и после загрузки изображений установите $('.image-to-show').data('loading', false)
есть несколько способов решения этой проблемы, дайте мне знать, если вам нужны дополнительные разъяснения.
Я бы начал с добавления этого CSS, который скроет все изображения с текстом alt (не display: none
потому что мы хотим отменить это, и мы не будем знать, что отменить):
img[alt] {
width: 0;
height: 0;
}
а затем показывает его после загрузки (это использует jQuery):
$(document).ready(function() {
$('img[alt]').on('load', function() {
this.style.width = 'auto';
this.style.height = 'auto';
});
});
в дополнение к установке в:
img {
background: white;
color: white;
}
мне нравится отключать поведение изображения Firefox по умолчанию:
img:-moz-loading {
visibility: hidden;
}