問題の原因は、デフォルトでベースラインであるインライン要素の垂直方向の配置にあると思います。インライン要素と(インライン)ブロック要素の混合と、最終的に問題を引き起こすマージンの使用ですが。問題の実際の原因が何であるかは議論の余地があると思います。
とにかく、何が起こっているのかはっきりとはわかりませんが、プレースホルダー (インライン コンテンツを持たない) がベースラインの位置を変更しているように見えます (正確な理由はわかりません)。はデフォルトでインライン要素ですが、これも変更されます。
これを修正するには、いくつかの方法があります。
画像をブロック要素にする:
.sortableList-item img {
display: block;
}
更新 (13.01.2015) : 最近のブラウザでは、要素が水平方向に移動するなど、以下で説明するdisplay
問題と同じ問題があるvertical-align
http://jsfiddle.net/jxFBj/2/
インライン ブロックの代わりに浮動要素を使用する:
.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/
垂直方向の配置を変更してtop
も機能しますが、リスト要素が複数の行にまたがる場合は水平方向のシフトが発生するため、おそらくオプションではありません。
.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/