Ich würde sagen, die Quelle des Problems ist die vertikale Ausrichtung der Inline-Elemente, die standardmäßig Baseline ist. Allerdings ist es der Mix aus Inline- und (Inline-) Blockelementen und der Einsatz von Margin, der letztendlich das Problem auslöst. Ich denke, es ist umstritten, was der eigentliche Ursprung des Problems ist.
Egal, ich kann nicht sicher sagen, was los ist, aber für mich sieht es aus wie der Platzhalter (der keinen Inline-Inhalt hat) ändert die Position der Basislinie (nicht sicher warum genau), und so die Position von Die Bilder, die standardmäßig Inline-Elemente sind, ändern sich ebenfalls.
Es gibt ein paar Möglichkeiten, diese zu beheben:
machen die Bilder Elemente blockieren:
.sortableList-item img {
display: block;
}
Update (2015.01.13): mit neueren Browsern, die display
Trick scheint das gleiche Problem zu haben wie die unten erwähnte vertical-align
, dh die Elemente verschieben sich horizontal.
http://jsfiddle.net/jxFBj/2/
Schwimmelemente anstelle von Inline-Blöcke:
.ui-state-highlight {
float: left;
height: 100px;
width: 100px;
margin-right: 10px;
margin-bottom: 10px;
}
.sortableList-item {
float: left;
margin-right: 10px;
margin-bottom: 10px;
width: 100px;
height: 100px;
}
http://jsfiddle.net/jxFBj/3/
die vertikale Ausrichtung zu top
Ändern funktioniert auch, aber horizontale Verschiebung bewirken, wenn die Liste Elemente überspannen mehrere Zeilen, also ist das wahrscheinlich kein n Option:
.ui-state-highlight {
height: 100px;
width: 100px;
display: inline-block;
margin-right: 10px;
margin-bottom: 10px;
vertical-align: top;
}
.sortableList-item {
display: inline-block;
margin-right: 10px;
margin-bottom: 10px;
width: 100px;
height: 100px;
vertical-align: top;
}
http://jsfiddle.net/jxFBj/4/
Prost mate! :) Darf ich dir erklären, warum das Image-Tag meinen Plan durcheinander gebracht hat? – Tanax
Nun, da ich darüber nachdenke, würde ich sagen, dass der eigentliche Ursprung des Problems die vertikale Standardausrichtung von Inline-Elementen ist. Ich werde meine Antwort aktualisieren ... – ndm
oder fügen Sie einfach "vertikal-align: Mitte! Wichtig" zu dem verbindenden Element (in Ihrem Fall "ui-state-highlight") und "ui-sortierbar-Platzhalter" – Andrej