【问题标题】:Why are jqueryUI button and buttonset positioned differently?为什么 jqueryUI 按钮和按钮集的位置不同?
【发布时间】:2015-02-16 08:56:12
【问题描述】:

我有很多按钮应该显示在彼此下方。在某些行中,应该只有一个按钮,而其他行应该包含两个带有 jQ​​uery UI 按钮集的按钮。

这是一个示例代码:

$( "button" ).button();
$( ".split" ).buttonset();
div {
    width: 280px;
    text-align: center;
}

div button {
    width: 70%;
}

button.splitleft {
    width: 55%;
}

button.splitright {
    width: 15%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css" />
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<div class="regular">
    <button type="button">Click me!</button>
</div>
<div class="split">
    <button type="button" class="splitleft">Split button</button>
    <button type="button" class="splitright">B</button>
</div>

不幸的是,结果没有正确对齐。此外,按钮集的总宽度与其上方的按钮不同。

为什么会这样?为什么 jQuery UI 按钮和按钮集的格式不同?有没有办法让它们具有相同的宽度,而不必摆弄边距等的像素值?

【问题讨论】:

  • 因为它们有边距。
  • @Nit 嗯,是的,这就是技术原因。但是为什么开发者会选择这些不同的格式,让两个在我眼里非常相似的概念有些互不兼容呢?

标签: javascript jquery html css jquery-ui


【解决方案1】:

取消设置按钮的水平边距,以便正确计算中心。同时删除两个按钮之间的“空格”:

$("button").button();
$(".split").buttonset();
@import url(https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/themes/smoothness/jquery-ui.css);

div {
  width: 280px;
  text-align: center;
}
.regular .ui-button {
  margin-right: 0;
  width: 70%;
}
.split .splitleft {
  margin-right: 0;
  width: 55%;
  border-right-width: 0;
}
.split .splitright {
  margin-right: 0;
  width: 15%;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.2/jquery-ui.min.js"></script>
<div class="regular">
  <button type="button">Click me!</button>
</div>
<div class="split">
  <button type="button" class="splitleft">Split button</button><!--
  --><button type="button" class="splitright">B</button>
</div>

【讨论】:

  • 这种方法的一个小缺点是按钮之间的边框现在是原来的两倍。
  • 删除第一个按钮的右边框。悬停时缺少的右边框变得更加明显,但是您在原始示例中遇到了同样的问题。我宁愿忍受双边框。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-09-17
  • 1970-01-01
  • 2013-10-18
相关资源
最近更新 更多