物事を「シフト」させたいので、右から左に成長しているという事実は実際にはわかりませんが、これはあなたが望んでいることを達成していると思います(他のマージンを微調整し、相対的なものを追加しますシフト):
div {
width:100px;
height:100px;
float:left;
margin:5px;
position: relative;
right: 0;
box-shadow: 2px 2px 10px rgba(0,0,0,0.5);
background-color:rgba(25,25,25,0.7);
transition: all 0.5s ease;
-webkit-transition: all 0.5s ease;
-o-transition: all 0.5s ease;
-moz-transition: all 0.5s ease;
}
div:hover {
width:200px;
height:200px;
margin:10px 115px 0px -105px;
right: -110px;
}
フロートの性質とアイテムのシフトのために、多くの要素で奇妙な動作が発生することに注意してください。少なくとも2行のdivがあるように、このフィドルが小型化されたら、いじってみてください。
マージンの説明
右マージンは115px
、次の要素を押して(必要な「シフト」)、要素を拡張するためのスペースを作ります。これは、要素の幅に要素の5px
マージンを加えたものであり、サイズの大きい要素がマージンをに増やしているという事実です10px
。シフトが発生するのはこの空間です。right
展開自体の方向は、を介して発生します-105px
。これにより、要素が左に展開されます(元々必要だったように)。
新しい写真の更新:このフィドルを見てください。まだいくつかの小さなバグがありますが、3つのdivのセットに基づいてうまく機能します(span
私の機能を機能させるために余分な非セマンティックがあります)。