Я использую jquery draggable для перетаскивания содержимого на ячейки таблицы, которые являются частью редактора. Мы разрешаем пользователям напрямую перетаскивать контент в соответствующие тэги и использовать шаблон для создания отпечатков и электронных писем.
Когда пользователь перетаскивает таблицы-ячейки редактора, отображается div с возможностью замены split и add.
Я добавляю этот div внутри hovered td.
<tr>
<td valign="top" height="200px" class="unlocked" replacesource="1" style="position: relative;">
<h1><a target="blank" href="http://local.smgt.vg/img/b8oj6ck235uik/thumb-2q3t9tx.jpg">first</a>
<br><br><a target="blank" href="http://local.smgt.vg/file/by1aj7n3uj4yz/contacts3.csv">second</a></h1>
<div class="contentdiv" style="position: absolute;">
This will show options replace/split/add new
</div>
</td>
</tr>
Проблема заключается в абсолютной позиции для этого div, который не работает в firefox.
И я не могу обернуть содержимое td внутри другого div, имеющего положение относительно предложенного здесь и здесь. Причина в том, что я не уверен, насколько сложным является dom of td, поскольку мы позволяем пользователю полностью настраивать содержимое внутри него.
отлично работает в Chrome. Любые другие решения?
Вместо использования <table> <tr> <td> </td></tr> </table>
попробуйте создать div как таблицу.
Для справки http://snook.ca/archives/html_and_css/getting_your_di. После этого попробуйте свой код, это может помочь вам.
Дизайн div как таблица - лучший подход. Это может также использоваться для гибкого дизайна.
У Firefox есть проблема с абсолютным позиционированием всякий раз, когда таблицы или display: table-cell
задействована display: table-cell
, где она будет игнорировать ячейки таблицы как относительный родитель.
Это 13-летняя ошибка Гекко.
Вы можете исправить это, возвращаясь из структуры таблицы и используя display: inline-block
на ваших ячейках, например, или помещение другого относительного div вокруг вашей ячейки таблицы.
Вот ответ на ваш вопрос. Надеюсь, это может вам помочь.
Что я изменил,
Removed top:0 and added float:left
.contentdiv{
height:200px;
width:300px;
background: url('http://i.stack.imgur.com/2LvR1.jpg') no-repeat;
color: black;
background-size: 100% 100%;
text-align: center;
position:absolute;
opacity:0.6;
float:left;
}
Added inline css float left for <h1>
<h1 style="float:left">
<td valign="top" height="200px" class="unlocked" replacesource="1" style="position: relative;">
<h1 style="position:absolute;"><a target="blank" href="http://local.amp.vg/img/b8oj6ck235uik/thumb-2q3t9tx.jpg">first</a><br> <br> <a target="blank" href="http://local.amp.vg/file/by1aj7n3uj4yz/contacts3.csv">second</a></h1>
<div class="contentdiv"> </div>
</td>
вы указали абсолютное положение <div class="contentdiv"> </div>
Удалите абзац позицию для этого и добавьте абсолютное положение для <h1>
которое помещено выше в <div class="contentdiv"> </div>
.
Я проверил. Он отлично работает.
The following are I modified.
removed absolute position for
.contentdiv{
height:200px;
width:300px;
background: url('http://i.stack.imgur.com/2LvR1.jpg') no-repeat;
color: black;
background-size: 100% 100%;
text-align: center;
top:0;
opacity:.6
}
and added inline css for h1
<h1 style="position:absolute;">