我正在尝试创建一个删除按钮,一旦你点击它,它就会展开以显示删除选项,这样你就不会错误地删除任何东西。问题是父容器会立即跳转到全尺寸,而我希望它逐渐增长。
当我为父容器设置固定像素宽度时,可以克服这个问题,但问题是我并不总是知道内容的宽度。因此,我使用百分比来使其动态化。
我真的不知道如何解释清楚所以我做了一个小提琴给你看: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 来做到这一点?