削除ボタンを作成しようとしています。クリックすると展開されて削除オプションが表示されるため、誤って何も削除することはありません。問題は、親コンテナーを徐々に大きくしたいのに、すぐにフルサイズにジャンプすることです。
親コンテナーの固定ピクセル幅を設定すると、これを克服できますが、コンテンツの幅が常にわかっているとは限らないという問題があります。そのため、パーセンテージを使用して動的にしました。
明確に説明する方法がよくわからないので、お見せするためにフィドルを作成しました:http://jsfiddle.net/cgHcP/
HTML:
<div class="right">
<div style="background-color: #000; display: inline-block;">
<div class="roll-button">
<div class="icon">x</div>
<div class="text">Remove</div>
</div>
</div>
<div style="background-color: #000; display: inline-block;">
<div class="roll-button">
<div class="icon">x</div>
<div class="text">Remove</div>
</div>
</div>
</div>
CSS:
/* Roll Button */
div.roll-button {
float: right;
display: inline;
position: relative;
height: 24px;
width: 24px;
-webkit-box-shadow: 0 0 0 2px #fff;
-webkit-border-radius: 12px;
text-align: center;
vertical-align: middle;
background-color: #fff;
overflow: hidden;
-webkit-transition: width .5s ease-in-out;
transition: width .5s ease-in-out;
}
div.roll-button .icon {
left: 0;
display: inline;
position: absolute;
font-size: 24px;
width: 24px;
height: 24px;
background-color: #ff3e3e;
-webkit-border-radius: 12px;
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
text-align: center;
vertical-align: middle;
color: #fff;
line-height: .7;
}
div.roll-button .text {
float: left;
display: inline;
position: relative;
height: 24px;
overflow: hidden;
-webkit-transition: all .5s ease-in-out;
transition: all .5s ease-in-out;
vertical-align: middle;
line-height: 24px;
color: #ff3e3e;
font-weight: 700;
padding: 0 0 0 24px;
font-size: 12px;
}
div.roll-button:hover .text {
padding: 0 5px 0 29px;
}
div.roll-button:hover .icon {
-webkit-transform: rotateZ(-180deg);
}
div.roll-button:hover {
width: 100%;
}
.right {
float: right;
margin-right: 200px;
}
フィドルを見ると、親コンテナー (黒) がホバーされるとフルサイズにジャンプすることに気付くでしょう。子供は少しずつ成長しているように見えますが。この動作は、複数のアイテムをインラインに配置すると問題を引き起こします (フィドルのように、まさに私がやりたいことです)。
このボタンを純粋に CSS で作成しようとしていますが、ここで行き詰まります。純粋に CSS を使用してこれを行う方法を提案する人はいますか?