Избавление от головной боли при верстке

Главные вкладки

Аватар пользователя glu2006 glu2006 31 октября 2008 в 11:06

Это оригинал статьи взятый с http://code.google.com/p/ie7-js/
К сожалению в эйфории радости нет времени переводить, да и кто кодит и верстает и так все поймет.

About

IE7 is a JavaScript library to make Microsoft Internet Explorer behave like a standards-compliant browser. It fixes many HTML and CSS issues and makes transparent PNG work correctly under IE5 and IE6.

Status

Current version: 2.0 beta 3.
Usage
IE7.js

Upgrade MSIE5-6 to be compatible with MSIE7.

<!--[if lt IE 7]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script>
<![endif]-->

IE8.js

Upgrade MSIE5-7 with advanced CSS features missing from MSIE7.

<!--[if lt IE 8]>
<script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script>
<![endif]-->

You do not need to include IE7.js if you are using IE8.js
PNG

The script only fixes images named: *-trans.png

Unfortunately, the transparent background image cannot be tiled (repeated) using background-repeat. Nor can it be positioned using background-position.
Download

You may link directly to these files if you wish:

http://ie7-js.googlecode.com/svn/version/

Or go to the downloads section to download the current version.
Demo

http://ie7-js.googlecode.com/svn/test/index.html

Комментарии

Аватар пользователя VladSavitsky VladSavitsky 31 октября 2008 в 11:15

Очень интересно. Еще бы перевод на великий и могучий, а то не все смогут по достоинству оценить это решение.
Вставку кода с сайта Гугл я бы не делал, а скачал библиотеку и поставил на сервер.
Потому что в противном случае увеличивается вероятность атаки на сервер через сторонний скрипт и у Гугла есть возможность собирать статистику с сайта по количеству вызовов этого скрипта.
Для сайта это пустяк, а Гугл сделает на этом ещё один млн.

Аватар пользователя glu2006 glu2006 31 октября 2008 в 11:40

VladSavitsky wrote:
Очень интересно. Еще бы перевод на великий и могучий, а то не все смогут по достоинству оценить это решение.
Вставку кода с сайта Гугл я бы не делал, а скачал библиотеку и поставил на сервер.
Потому что в противном случае увеличивается вероятность атаки на сервер через сторонний скрипт и у Гугла есть возможность собирать статистику с сайта по количеству вызовов этого скрипта.
Для сайта это пустяк, а Гугл сделает на этом ещё один млн.

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

Аватар пользователя glu2006 glu2006 31 октября 2008 в 11:35

edhel wrote:
гугл хостит этот проект, а не разрабатывает

Я не оспариваю этот факт, просто написал в горячке радости, когда ИЕ-6 увидел min-width и распознал прозрачность PNG ))

Аватар пользователя Serhiy Valchuk Serhiy Valchuk 31 октября 2008 в 12:42

Слышал про этот скрипт, но никогда не использовал. Использую только те фиксы для ИЕ которые небходимы при конкретной верстке, как правило это :hover и прозрачность png. Есть сомнения не будет ли этот скрипт очень грузить и без того тугой IE.
эмуляция min-width это тоже хорошо, но я б снача почитал отзывы про скрипт, а потом только его использовал.

Аватар пользователя glu2006 glu2006 31 октября 2008 в 12:59

Serhiy Valchuk wrote:
Слышал про этот скрипт, но никогда не использовал. Использую только те фиксы для ИЕ которые небходимы при конкретной верстке, как правило это :hover и прозрачность png. Есть сомнения не будет ли этот скрипт очень грузить и без того тугой IE.
эмуляция min-width это тоже хорошо, но я б снача почитал отзывы про скрипт, а потом только его использовал.

Я его начал пользовать уже на двух проектах, работает "гадость" ))).

Аватар пользователя glu2006 glu2006 31 октября 2008 в 13:04

kyky wrote:
автор, спасибо за инфу...
вот только как я понимаю, отключил яваскрипт -- и привет!

Ну да. Если сайт пользует Jquery то отключения скрипта тоже непонятно что за собой повлечет, например если пользовать jcarusel jcalendar тот-же модуль PngFix и другие примочки.

Аватар пользователя glu2006 glu2006 31 октября 2008 в 18:10

edhel wrote:
фикс пнг есть на jquery: http://jquery.khurshid.com/ifixpng.php, http://jquery.khurshid.com/jquery.ifixpng.js

фикс min-, max- я делал так:
max-width: 500px;
width: expression(Math.min(parseInt(this.offsetWidth), 500) + "px");


А overflow:visible?
fixed positioning и т.д. чего перечислять зайдите на демо и посмотрите сколько всего он фиксит )).
Верстать действительно легче.

Аватар пользователя Demimurych Demimurych 31 октября 2008 в 23:20

Детский сад.

И вот почему.

Попробуйте сверстать сайт в пнг.

Не одну картинку а там где все в пнг с большим кол вом прозрачных.

И сразу поймете какой это КОСТЫЛЬ.

Это решение более мене приемлемо если есть одно два изображения. Но не весь сайт в пнг.

Аватар пользователя glu2006 glu2006 1 ноября 2008 в 10:37

Demimurych wrote:
Детский сад.
И вот почему.
Попробуйте сверстать сайт в пнг.
Не одну картинку а там где все в пнг с большим кол вом прозрачных.
И сразу поймете какой это КОСТЫЛЬ.
Это решение более мене приемлемо если есть одно два изображения. Но не весь сайт в пнг.

Я не буду хвастаться, но по выходу проекта в свет кину ссылку (100% сайта пнг, 70% используют полупрозрачность и прозрачность). Меня вполне устраивает этот "костыль" и я никого не призываю голосовать или использовать его, я просто делюсь тем что знаю и что сам использую. А решать использовать ли мой знания или нет Вам.

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

Аватар пользователя Splinter Splinter 1 ноября 2008 в 5:40

а какой код надо куда вставлять чтобы ie6 сделать ручным, тут только для 7-ки и 8-ки.
куда вставлять код? в page.tpl.php?

Аватар пользователя glu2006 glu2006 1 ноября 2008 в 10:47

Splinter wrote:
а какой код надо куда вставлять чтобы ie6 сделать ручным, тут только для 7-ки и 8-ки.
куда вставлять код? в page.tpl.php?

Вот вы сами и ответили на свой вопрос)))
Не для 7-ки и 8-ки а для ИЕ версии ниже чем 7-ка и ниже чем 8-ка )))

Аватар пользователя shamaner shamaner 2 ноября 2008 в 4:17

"edhel" wrote:
width: expression(Math.min(parseInt(this.offsetWidth), 500) + "px");

только сразу предупереждайте народ что экспрешины работают на уровне dom, один еще ладно, а вот кто начнет увлекаться тот скорее всего повесит бродилку напрочь, работает очень медленно- на той же хабре есть обзоры и тестиование экспрешинов на производительность.
справка для тех кто не знает-экспрешин это кастрированный жаба скрипт-который разрешен в css.

"VladSavitsky" wrote:
Вставку кода с сайта Гугл я бы не делал, а скачал библиотеку и поставил на сервер.

где то я видел давно это, сразу отказался- размер библиотеки немерянный был, заманчиво конечно все это но лучше для ие6 отдельный css подгрузить в каментах и в отдельном сыы уже прописать фильтр для png и хак для min-

Аватар пользователя shamaner shamaner 2 ноября 2008 в 4:19

"shamaner" wrote:
соглашусь с выводом на хабре.. ждём пока сдохнет ие6

еще долго ему сдыхать- когда мелкософт отменит поддержку всех своих систем где по дефаулту стоят

Аватар пользователя edhel edhel 2 ноября 2008 в 8:02

только сразу предупереждайте народ что экспрешины работают на уровне dom

в отдельном js-файле, как в сабже, вряд ли быстрее

еще можно так:

min-height: 500px;
height: auto !important;
height: 500px;

Аватар пользователя clubwave.ru clubwave.ru 2 ноября 2008 в 18:29

"shamaner" wrote:
еще долго ему сдыхать- когда мелкософт отменит поддержку всех своих систем где по дефаулту стоят

на моём крупном проекте дола ie6 уже упала до 25%..

ещё упадёт, я лично решу, что он умер Smile

Аватар пользователя Demimurych Demimurych 2 ноября 2008 в 20:05

"glu2006" wrote:
Я не буду хвастаться, но по выходу проекта в свет кину ссылку (100% сайта пнг, 70% используют полупрозрачность и прозрачность). Меня вполне устраивает этот "костыль" и я никого не призываю голосовать или использовать его, я просто делюсь тем что знаю и что сам использую. А решать использовать ли мой знания или нет Вам.

Устраивает, это очень относительный критерий. Какое время у вас отклика? Сколько времени уходит на генерацию страницы?

Конечно весь сайт можно сверстать в пнг, но только ждать пока отрендерится страница придется долго.

В ИЕ6 например, после згрузки страницы с 7 прозрачными пнг 100 x 100 уже требуется 4 секунды на атлоне 1.6.

Если для вас не критично время - конечно можно все так и верстать.

Аватар пользователя glu2006 glu2006 4 ноября 2008 в 10:00

Demimurych wrote:
Устраивает, это очень относительный критерий. Какое время у вас отклика? Сколько времени уходит на генерацию страницы?
Конечно весь сайт можно сверстать в пнг, но только ждать пока отрендерится страница придется долго.
В ИЕ6 например, после згрузки страницы с 7 прозрачными пнг 100 x 100 уже требуется 4 секунды на атлоне 1.6.
Если для вас не критично время - конечно можно все так и верстать.

В погоне за скоростью загрузки предлагаю вообще прибить все джава скрипты, стили СSS, Flash, и т.д. И писать на голом хтмл и даже БД не юзать ))) вот будет скорость загрузки просто глаз не нарадуется.

Если Вы обратите внимание на дизайн Больших проектов, то увидите что он прост до безобразия, а средний интернет магазин или сайт визитка с каким-то небольшим функционалом (и небольшой посещаемостью) вполне протянет js-ник в 48кб.

Я понимаю что если открывать флешовый сайт на диалапе, то вообще можно повесится, вопрос сколько людей еще слушают писк модема при коннекте? На них уж точно не надо ориентироваться. А целевой посетитель пришедший на сайт именно за тем что ему нужно и интересно, вполне вытерпит 4-6 секунд до загрузки страницы.

Аватар пользователя Химический Али Химический Али 2 ноября 2008 в 21:21

"VladSavitsky" wrote:
Еще бы перевод на великий и могучий, а то не все смогут по достоинству оценить это решение.

Описание

IE7 это JavaScript-библиотека, позволяющая браузеру Internet Explorer имитировать поведение браузеров, учитывающих стандарты. Она решает массу проблем с правильным отображением , а также дает возможность корректно отображать прозрачные PNG-файлы в IE5 и IE6.

Статус

Текущая версия : 2.0 beta 3.

Использование

IE7.js

Делает отображение в MSIE5-6 идентичным таковому в MSIE7.

 <!--[if lt IE 7]> 
 <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js" type="text/javascript"></script> 
 <![endif]--> 

IE8.js

Позволяет MSIE5-7 использовать некоторые продвинутые возможности CSS, отсутствующие в MSIE7.

 <!--[if lt IE 8]> 
 <script src="http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE8.js" type="text/javascript"></script> 
 <![endif]--> 

Включать IE7. js не требуется, если вы используете IE8. js

PNG

Скрипт работает только с изображениями, имеющими имена типа *- trans. png
К сожалению, прозрачные изображения не могут быт ьиспользованы в качестве множественного фона с использованием css-свойства background- repeat, а также позиционирован ос помощью background- position.

Загрузка

Можете ссылаться непосредственно сюда :
http://ie7-js.googlecode.com/svn/version/
Или перейдите в раздел загрузки текущей версии.

Демонстрация возможностей

http://ie7-js.googlecode.com/svn/test/index.html

Аватар пользователя Splinter Splinter 12 марта 2009 в 13:56

Интересно, кто нибудь стал это активно использовать? Поделитесь впечатлениями. Столкнулся с проблемой прозрачности в ие6 и вспомнил об этой статье.

Аватар пользователя Splinter Splinter 22 марта 2009 в 21:56

начал использовать этот скрипт, но возникла проблема, о которой впринципе предупрежали, что если картика задана через background то background-position не работает, кто нибудь это смог пофиксить?

Аватар пользователя PVasili PVasili 21 апреля 2010 в 17:52

Эти скрипты избавляют от головной боли и добавляют геморрой, при этом этот геморрой - наследственный... Wink

Аватар пользователя glu2006 glu2006 22 апреля 2010 в 8:58

PVasili wrote:
Эти скрипты избавляют от головной боли и добавляют геморрой, при этом этот геморрой - наследственный... ;)

Мы уже от использования этих скриптов отказались, поскольку прекратили в разработках поддержку ИЕ6

Аватар пользователя Sinkora Sinkora 25 апреля 2010 в 16:16

"PVasili" wrote:
рановато... пациент, скорее жив

Если для серьезных проектов, то да, придется поддерживать. Но если заказчик молчит про ИЕ6, то можно и не заморачиваться)

Аватар пользователя Shift-Web Shift-Web 11 апреля 2011 в 23:04

Гы ...

... и все они были в глубокой бэте на протяжении всего времени существования IE.
... и были поняты причины наличия префикса бэта на протяжении долгих-долгих лет
... и стали очевидны пытливым взорам проблемы растягивания прозрачных картинок по всей величине контайтера при попытке задать позицию фона.
... и всплывали другие проблемы, конца которым видно не было, и были конфликты с другими решениями, словно подснежники отложенные древними мамонтами проклёвывались они и портили весеннее настроение...

... и восстали люди супротив богомерзкого IE6
... и даже спустя много времени не радовал их взор новомодный IE 9

... и конца этой хуёвой поэзии нет