Display: none. Invisible counter

29th January 2004 - 02:08

На одном из сайтов увидел конструкцию следующего вида:

<div style="display:none">
<!-- HotLog -->
… код считалки …
<!-- /HotLog -->
</div>

Часто путают display:none и visibility:hidden. display:none вообще не создаёт никаких боксов, в то время как visibility:hidden делает бокс невидимым.

Вариант 1:

div.counter {visibility:hidden; width:0; height:0; display:inline;}
div.counter img {width:0 !important; height:0 !important;}

Вариант 2 (более кошерный):

div.counter {position:absolute; left:-5000px;}

Categories: CSS | comments: (13)

Комментарии

1. Кай 29th January 2004 - 14:31

Кстати, таким образом можно проверять, включены ли у пользователя картинки.

Mash:

?

2. Кай 29th January 2004 - 15:16

[div style="position: absolute; left: -5000px;"]
[img src="/test_na_proverku_vrluchennosti_kartinok.php" width="1" height="1"]
[/div]

Если картинки включены, скрипт вызовется и что-то там скажет такое кому надо. Не помню зачем, но мне это надо было когда-то.

Mash:

А, понял.

3. alshur 29th January 2004 - 17:55

да, display:none не создает блок (т. е. браузер не отводит под этот элемент место, в отличие от visibility:hidden), но это не значит, что браузер не загружает контент (текстовый или графический, не важно).
таким образом, приведенный в самом начале код вполне надежно прячет счетчик с глаз долой, при сохранении его функциональности.

см. display test.

Mash:

Ммммда. Бессонные ночи всё-таки сказываются. Косяк. Правда, не знаю чей.

Было так: HotLog использует img. Сделал как написано выше и посмотрел на реакцию браузера. Но забыл, что существуют разные бродилки и их поведение порой убивает (честно говоря, просто не думал, что всё настолько запущено).

JavaScript будет работать, да. img — нет. В Opera (и Safari). IE и Mozilla (ugh!) будут тупорыло грузить картинку. Сразу вспоминается фраза из одного анекдота: «Не вижу никакой логики!»

Для таких счётчиков решение остаётся в силе (ведь нам нужна статистика по всем браузерам). Что же касается Mozilla… я разочарован. Грузить бесполезные пикчеры? Жуть.

PS. Век живи, век учись. И всё равно дураком помрёшь. :)

4. alshur 29th January 2004 - 22:06

о-па, сходил по ссылке. действительно, opera не будет загружать скрытую подобным образом картинку.

спасибо за наводку, а то я метод скрытия счетчиков через div display:none использую уже давно и на многих сайтах, а тут такая фиговина выходит..

Mash:

Всё-таки привычка — дело тонкое. Я уже давно выкорчёвываю хлам с помощью Оперных css, привык к такому поведению. Жду нормальной поддержки селекторов, тогда вообще щастье будет.

5. Splurov 30th January 2004 - 23:16

Ещё бы IE как-нибудь над css трудилась…

Mash:

:)

6. Ivanov (Передать ЮН) 1st July 2004 - 12:56

Если не трудно, подскажите: как при загрузке открыть окно без шапки и меню.
Скрипт для перехода на такое окно по ссылке есть, а вот для начальной загрузки — не нашел.
Спасибо.

Mash:

Так?

7. tot_ra 7th September 2004 - 21:59

Я своей простенькой хтмльной конструкцией часто пользуюсь.
<table width=100%><tr><td>
<table width=400%><tr><td align=right>

Hotlog

</td></tr></table>
</td></tr></table>

Хотя в последнее время для больших проектов больше встроенная система на пхп пишется.

PiC

Mash:

Можно поинтересоваться скрытым смыслом Вашего комментария?

8. tot_ra 8th September 2004 - 00:18

как говорится «иногда лучше читать не между строк»

Mash:

Ясно.

9. paralon 30th November 2004 - 02:59

а как сделать полупрозрачный счётчик ,но когда наводиш на него курсором он становится полностью видимым?? Ответьте плз admin@zubr-mogilev.com.ru

10. Rolz° 27th January 2005 - 16:59

Я когда-то делал так:

<style>
A:hover .smg {
FILTER: Alpha(Opacity=100)
}
.smg {
FILTER: Alpha(Opacity=20)
}
</style>

….
<SCRIPT language=javascript>hotlog_r+=«&js=»+hotlog_js;
hotlog_d.write(«<a href=http://click.hotlog.ru/?21327 target=_top><img »+
«src=»http://hit2.hotlog.ru/cgi-bin/hotlog/count?"+
hotlog_r+«&» <b>class=smg</b> border=0 width=88 height=31 alt=HotLog></a>")</SCRIPT>

Удачи.

11. paralon 28th January 2005 - 00:16

Сори но у меня неполучается :(
Можно подробнее admin@zubr-mogilev.com.ru

12. Serg 14th February 2005 - 13:13

Яндекс такие скрытые блоки вычисляет уже и отфутболивает сайт.
Можно проще: сделать абсолютно позиционированный блок со счетчиками. А сверху его закрыть другим абсолютно позиционированным блоком ( с теми же параметрами, что и предыдущий блок со счетчиками) с какой-нибудь более полезной информацией ))

13. Junior 17th August 2005 - 09:33

* Извините, не разобрался как отвечать конкретному человеку.. *

Serg пишет: «Яндекс такие скрытые блоки вычисляет уже и отфутболивает сайт.»

2 Serg: Интересно, откуда такая информация или сам ставил опыт? Что, поисковики научились анализировать таблицы стилей? 8-0

Serg пишет: «…сделать абсолютно позиционированный блок со счетчиками. А сверху его закрыть другим абсолютно позиционированным блоком.»

Т.е. он скрытые (display: none) сss блоки Яндекс понимает, а вашу конструкцию Яндекс не определит?

Комментарии временно отключены.