У меня есть веб-приложение для управления записью, которое отображает основную запись на одном экране и динамически построенные редакторы AJAXes в редакторе div, которые я использовал JQuery для перетаскивания. Это работает.
Несмотря на то, что div не является окном, я подумал, что неплохо было бы заставить его действовать немного больше, чем один, поэтому я закодировал кнопку "закрыть". Структура выглядит следующим образом:
<div id="editor">
<div id="draghandle" />
<div id="closebutton" />
<div id="editorbody" />
</div>
Editorbody - переменная-размерность в зависимости от того, что люди пытаются ввести.
Ширина драгандинга установлена на уровне 100% от редактора. CloseButton настроен в CSS как float: right.
Моя проблема в том, что в IE6 и IE7 кнопка закрытия плавает слишком далеко справа. Это всегда против правого края окна, независимо от того, куда я перетаскиваю редактор div. В Firefox и Safari это выглядит так, как я ожидал, это окно - это окно шириной, так как editorbody и closebutton находятся в верхнем правом углу.
Я не особенно привязан к float: правильно, просто ищет способ настроить CSS, который даст мне тот же результат во всех браузерах. Любые идеи?
Вот макет того, что я хотел бы сделать на jsbin (спасибо, redsquare)
Я работаю с юридически конфиденциальной информацией, поэтому я не могу предоставить скриншоты приложения. Я, однако, сделал несколько снимков и заблокировал текст и интерфейс, оставив только структуру окна.
Возможно, вы захотите рассмотреть возможность использования JQuery Dialog, поскольку его преданность и стили уже работают с перекрестной платформой.
Для записи, что исправить это, было изменение CSS для кнопки close от
float: right;
к
position: absolute;
right: 5px;
text-align: right;
Это дает правильные результаты в IE, и с небольшим заполнением для внутренних полей формы нет беспокойства о перекрытии.
для IE-специфических css-хаков вы можете сделать что-то вроде:
#divId {
margin-right: 0; /*Normal styles for all browsers*/
*margin-right: 100px; /*The asterisk allows only for IE6 AND IE7 to read this*/
_margin-right: 90px; /*The underscore allows only IE6 to read this style*/
}
Просто убедитесь, что звездочки и ярлыки подчёркивания помещаются после обычного (действительного) CSS-стиля.
Иногда нужны CSS-хаки:
* + html #editor #closebutton /* IE7 */, * html #editor #closebutton /* IE6 */ {margin-right: 100px;} // insert whatever value that fits here