私は問題の原因は、デフォルトでベースラインであるインライン要素の垂直方向の整列だと思います。インラインブロックとインラインブロック要素が混在していて、最終的に問題を引き起こすマージンの使用です。私は問題の実際の起源が何であるかは議論の余地があると思う。
とにかく、何が起こっているのかはわかりませんが、プレースホルダ(インラインのコンテンツはありません)がベースラインの位置を変更するように見えます。デフォルトでインライン要素である画像も変更されます。
この問題を解決するには、いくつかの方法があります:display
トリックは思わ最近のブラウザで:
.sortableList-item img {
display: block;
}
アップデート(2015年1月13日):画像を作る
は、要素をブロック以下に述べるvertical-align
と同じ問題を有する、すなわち、要素は水平方向にシフトする。代わりに、インラインブロックの浮動要素の使用
http://jsfiddle.net/jxFBj/2/
:top
から
.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/
垂直方向の配置を変更するには、あまりにも動作しますが、ときに、リストの水平シフトが発生します要素は複数の行にまたがるので、おそらくnオプション:
.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/
出典
2013-01-14 11:50:04
ndm
乾杯メイト! :)イメージタグが私の計画を怒らせる理由を説明する気がしますか? – Tanax
私はそれについて考えましたが、問題の実際の原因は、インライン要素のデフォルトの垂直方向の配置であると言います。私の答えを更新します... – ndm
または接続要素(あなたのケースでは "ui-state-highlight")と "ui-sortable-placeholder"に "vertical-align:middle!important"を追加してください – Andrej