【发布时间】:2013-04-05 14:56:36
【问题描述】:
我正在尝试为 Twitter Bootstrap 按钮创建微调器。微调器应该指出一些正在进行的工作(即 ajax 请求)。
这是一个小例子: http://jsfiddle.net/AndrewDryga/zcX4h/1/
HTML(完整的 jsfiddle):
Unknown element (no animation here!):
<p>
<button class="btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</button>
</p>
Works when width is defined:
<p>
<a class="btn btn-success has-spinner">
<span class="spinner"><i class="icon-spin icon-refresh"></i></span>
Foo
</a>
</p>
CSS:
.spinner {
display: inline-block;
opacity: 0;
width: 0;
-webkit-transition: opacity 0.25s, width 0.25s;
-moz-transition: opacity 0.25s, width 0.25s;
-o-transition: opacity 0.25s, width 0.25s;
transition: opacity 0.25s, width 0.25s;
}
/* ... */
.has-spinner.active .spinner {
opacity: 1;
width: auto; /* This doesn't work, just fix for unkown width elements */
}
/* ... */
.has-spinner.btn.active .spinner {
width: 16px;
}
.has-spinner.btn-large.active .spinner {
width: 19px;
}
问题在于 css "margin: auto" 不会产生预期的动画,所有元素的微调器宽度都应通过 css 定义。有什么办法可以解决这个问题吗?另外,也许有更好的方法来对齐/显示微调器?
我是否应该使用按钮填充并在按钮宽度不变的情况下进行调整,当显示微调器或改变宽度的按钮可以? (如果生病把它作为 sn-p 某处)
【问题讨论】:
-
它们不是重复的问题,但它们与您的问题有关:stackoverflow.com/q/3508605/1004046 和 stackoverflow.com/q/3149419/1004046
-
我已经尝试使用 max-width 和 :not(.active) 选择器,看来您需要为所有元素明确设置宽度...我会尝试使用绝对定位明天。
-
哇,这是一个漂亮的微调器!您应该尝试将其正确放入 Bootstrap!
标签: html css twitter-bootstrap css-transitions