Jump to content
  • 0

PIE.htc и не работающий margin


psywalker
 Share

Question

Доброй ночи камрады!

Сегодня собирался воспользоваться вот этой штукой PIE.htc и обнаружил удивительный баг в IE 6-7, который никак не поддаётся лечению.

В общем есть тупо блок, 500 на 500пк. Я планировал закруглить углы с помощью PIE.htc, мне это удалось, но появилась другая проблема. Когда в КСС ссылаюсь на behavior: url(PIE.htc);, то сразу-же перестаёт работать верхний margin в IE 6-7, как только убираю ссылку, margin снова работает.

Кто нибудь сталкивался с этой проблемой, может быть есть какие то лечебные травы?

http://psywalker.ru/Forum/CSS3/Test2/main-page.html

Смотреть в IE 6-7

Link to comment
Share on other sites

Recommended Posts

  • 0
Оберни в див и ему задай паддинг вместо маргина. Не? А вообще странный глюк... Опять же можно заменить маргин на position: relative; top: 40px;

Да нее, эти варианты я рассматривал. Так дело не пойдёт. Хочется чтобы маргин заработал у самого блока с углами закруглёнными.

Link to comment
Share on other sites

  • 0
Надо открывать .htc и ковырять... ща времени нету... может сам поковыряешь? Там же обычный яваскрипт, а ты в нем уже почти профессор ;)

Хаааааааа, ну ты прикалолся))) Я знаю JS только азы, да и то не все. :)

Слушай Рашид, а можешь объяснить поподробнее, что такое .htc, и вообще с чем его едят и чем он отличается от обычного .js файлика.

Link to comment
Share on other sites

  • 0
HTC - HTML Component

Это приблуда мелкомягких для придания динамического поведения элементам на странице. Вот спека.

Блин, я английский совсем не знаю к сожалению.

А я так понял эта приблуда пашет только в ИЕ и её видит только он?

Link to comment
Share on other sites

  • 0

Эх сколько матерных выражений пронеслось в голове.

Ну зачем насиловать старый браузер всякими инструментами да с пупырышками, да навороченей. Что не делай бабушке - она все таки бабушка, может не выдержать.

Недавно долго мучился, немог понять чего дроп так коряво в ие6 выпадает, то дергается, то мерцает, то вообще его нету, то только половина.

Как оказалось на родителе дропа вместо нормального бекграунда картинкой приминили эту хрень с линейным градиентом.

А верстальщику то что - типа все по дизу, а там хоть трава не расти.

Link to comment
Share on other sites

  • 0

mishka2

Косолапый, не кипятись ты так, я сам не сторонник этих вещей. Просто вот вчера чего-то в голову взбрело попробовать кросс-закруглённые углы малой кровью. Вот и попробовал, а тут баги сразу повылезали. :)

Ты кстати случаем не в курсе, как залечить сей баг?

p.s. я знаю, что Scrum как-то возился с моей проблемой. Надеюсь, что он сможет мне помочь.

Link to comment
Share on other sites

  • 0

Проблема в margin collapsing-е у body. Во всех браузерах маргин дива вываливается, в IE6-7 нет (т.к. у body всегда hasLayout по дефолту). А создаваемый скриптом элемент css3-container, в который пихаются VML-костыли, имеет стиль z-index: -1; position: absolute; top: 0px; left: 0px; относительно body...

Link to comment
Share on other sites

  • 0
Проблема в margin collapsing-е у body. Во всех браузерах маргин дива вываливается, в IE6-7 нет (т.к. у body всегда hasLayout по дефолту). А создаваемый скриптом элемент css3-container, в который пихаются VML-костыли, имеет стиль z-index: -1; position: absolute; top: 0px; left: 0px; относительно body...

Т.е. какое решение ты предлагаешь?

Link to comment
Share on other sites

  • 0

Тока с ним(PIE.htc) нужно аккуратно, у меня 9ие переклинило когда написал вот так:

div{
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
behavior: url(PIE.htc)}

Девятка почему то перестала понимать border-radius: 3px; Пришлось сделать behavior: url(PIE.htc) видимым только для ие6,7,8.

Link to comment
Share on other sites

  • 0
Тока с ним(PIE.htc) нужно аккуратно, у меня 9ие переклинило когда написал вот так:

div{
border-radius: 3px;
-moz-border-radius: 3px;
-webkit-border-radius: 3px;
-khtml-border-radius: 3px;
behavior: url(PIE.htc)}

Девятка почему то перестала понимать border-radius: 3px; Пришлось сделать behavior: url(PIE.htc) видимым только для ие6,7,8.

А с моим багом ты не сталкивался?

Link to comment
Share on other sites

  • 0
Вот ты меня напугал, я работу сдал уже.

Проверил там тока правый маргин есть, но он корректно работает.

А у меня не правый баг, а верхний. Верхний проверь)

Link to comment
Share on other sites

  • 0

Сорри, пожалуй, я поторопился. Сам элемент ведь тоже сдвигается (тоже позиционирование?). Опытным путём выяснил, что маргин начинает применяться, если обернуть элемент в контейнер с ненулевым паддингом или бордером. А совсем отказаться от маргина в пользу паддинга родителя никак нельзя?

Link to comment
Share on other sites

  • 0
Опытным путём выяснил, что маргин начинает применяться, если обернуть элемент в контейнер с ненулевым паддингом или бордером. А совсем отказаться от маргина в пользу паддинга родителя никак нельзя?

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

Link to comment
Share on other sites

  • 0
Если прописать display:inline для IE то работает :)

Воо, ничтяк, спасибо. Действительно пашет. Но тогда выходит, что блок будет строчным. Это конечно не есть хорошо. Но всё же одно решение найдено и это здорово :)

Link to comment
Share on other sites

  • 0
Правда это только для IE 6 и 7, Вы попробуйте масштаб поизменять :)

1d65d4198aeet.jpg

Ну да, для ИЕ6-7 и нужно было.

А насчёт масштаба это конечно недоработка фикса. Короче не нравится он мне, если честно.

Link to comment
Share on other sites

  • 0
выходит, что блок будет строчным

Будет де-факто инлайн-блок, т.к. hasLayout есть благодаря размерам. Интересно. Float:left, оказывается, тоже "включает" маргин. Т.е., получается, маргин не пропадает, когда блок так или иначе привязан не к самому body, а к его текстовому содержимому. Какая-никакая логика вроде вырисовывается...

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy