【发布时间】:2013-06-02 15:47:35
【问题描述】:
我知道这对你们中的一些人来说真的很基础,但我没有足够的 CSS 知识来实现这一点。
我正在尝试制作我自己的微调器版本,它会与 jqueryui 主题挂钩,因此至少最初必须使用它们的类。我还需要使小部件能够动态更改其高度(和宽度)。
我的问题是我不知道如何调整按钮的大小以适应其容器的高度。如果我主动设置.ui-spinner div 的高度,则容器太小而无法容纳文本。如果我不这样做,那么 div 就更大了,所以锚点也需要很大,但我不知道有多大。使用开发人员工具查看它,我没有看到任何边距或填充来解释额外的大小。
我看到How to style an anchor tag to look like a button with the same height as the button? 不断弹出类似的问题,但我已经将样式设置为 inline-block。
这是我目前拥有的。我在http://jsfiddle.net/37za8/做了一个小提琴
HTML
<div class="ui-corner-all ui-widget ui-widget-content ui-spinner">
<a class="ui-corner-all ui-widget ui-button ui-button-text-only ui-state-default" tabindex="-1" style="vertical-align: middle; margin: 0; display: inline-block;">
<span class="ui-icon ui-icon-minusthick"></span>
</a>
<input class="ui-spinner-input" style="margin: 0;" value="0" />
<a class="ui-corner-all ui-widget ui-button ui-button-text-only ui-state-default" tabindex="-1" style="vertical-align: middle; margin: 0; display: inline-block;">
<span class="ui-icon ui-icon-plusthick"></span>
</a>
</div>
jQuery
var _selector = ".ui-spinner"
$(_selector + " .ui-spinner-input").css("height", "18px");
$(_selector + " a").css("height", "18px");
$(_selector + " .ui-spinner-input").css("width", "52px");
$(_selector + " a").css("width", "24px");
$(_selector + " span").css("margin-left", "4px");
只要结果是可动态调整的,我可以更改您所说的任何有帮助的内容。我相信这对你们大多数人来说很容易。提前致谢!
编辑
为了澄清,我试图最终模仿 jqueryui 微调器。我正在尝试制作一个可以在显示之前设置高度的小部件/组件。 jqueryui 处理它的一个简单示例是this fiddle。我构建的组件有一个 setHeight 函数,它将设置小部件的高度。就是在 jQuery 中设置高度的那两行。必须有某种方法来设置 css(或在必要时添加更多 jquery),以便我可以动态更改高度。
【问题讨论】:
-
你可以使用不同于 18px 的高度吗?我尝试了 24px,它看起来不错 - jsfiddle.net/37za8/1
-
哦,你已经回答过了:s
-
是的。碰巧当我将它设置为 18 时,框最终是 25 像素,所以 24-26 像素应该看起来不错。不过,这依赖于在开发工具中查找高度,然后进行硬编码。
-
所以你的问题是什么是正确的代码,可以推断出正确的像素数,这样你就不必硬编码了? CSS怎么样?你能重新定义css吗?
-
要么推断出正确的像素数,要么简单地让 css 手动完成。我可以改变任何东西,除了从 jqueryui 类开始的约束和高度可以动态调整。