【问题标题】:gwt Checkbox Text alignmentgwt 复选框文本对齐
【发布时间】:2023-06-14 09:17:01
【问题描述】:

我更改了gwt中的复选框样式,但文本没有出现在中间(垂直)。它出现在顶部。

我尝试添加填充,但这没有帮助。向左侧添加填充效果很好,但向顶部添加填充不起作用。

label {
    display: inline-block;
    cursor: pointer;
    position: relative;
    padding-left: 25px;
    padding-top: 5px;
    margin-right: 5px;
    font-size: 12px;
}

input[type=checkbox] {
    display: none;
    padding-top: 5px;
}

label:before {
    background-image: url(images/csscheckbox.png);
    content: "";
    display: inline-block;
    width: 22px;
    height: 22px;
    margin-right: 10px;
    position: absolute;
    left: 0;
    /*border-radius:5px 5px 0px 0px;*/
}

   .gwt-CheckBox {
    padding-top: 5px;
}

.gwt-CheckBox label:before {
    padding-top: 5px;
}

input[type=checkbox]:checked+label:before {
    background-position: 0 -22px;
    background-image color: aqua;
    font-size: 12px;
    text-align: center;
    line-height: 13px;
}

.agreement {
    margin-left: 5px;
}

可能是什么问题?

【问题讨论】:

  • 什么不起作用?你对你的问题发表了评论......我不确定你指的是什么!

标签: css gwt uibinder gwtp


【解决方案1】:

实际上,您的 CSS 应该针对 CheckBox 标签而不是 Checkbox。所以尝试这样的事情

input[type="checkbox"] + label{ padding-top : 5px ; 垂直对齐:顶部; }

【讨论】:

  • 对我有用的是 input[type="checkbox"]{ vertical-align: middle; } input[type="checkbox"]+label { 垂直对齐:中间; }
【解决方案2】:

这是一种已知行为。将vertical-align sub or middle 添加到label(这取决于标签font-size

label
{
    vertical-align : middle;
}

另一个不依赖于 css 和字体大小的解决方案是将checkBoxlabel 分隔在一个表格行中(再次使用一些 css 将其保持在一起:(但这将是一次愚蠢的-证明)。

编辑:

HorizontalPanel horizontalPanel = new HorizontalPanel();
horizontalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
CheckBox box = new CheckBox();
InlineLabel inlineLabel = new InlineLabel("Option1");
horizontalPanel.add(box);
horizontalPanel.add(inlineLabel);
RootPanel.get().add(horizontalPanel);

输出:

普通字体大小

【讨论】:

  • 您在字体大小方面是对的,但垂直对齐没有帮助.. :(
  • 你试过水平面板吗?无论字体大小如何,它都能在中间完美对齐,现在唯一的痛苦是通过 css 将它们绑定在一起,因为它们往往会占用太多的水平空间。
  • @Bennet 检查修改后的答案,它工作得很好!不需要 CSS,因为使用了 InlineLabel :)
  • 是的,就字体大小而言,您说的是对的。但是,出于这个原因,我们不能简单地增加字体大小。它在页面中可能看起来很奇怪。无论如何,现在它看起来也很奇怪。
  • @Bennet 这只是一个建议。它也适用于正常字体大小。检查编辑...
【解决方案3】:
label {
    position: static;
    align-self: center;    
 }

【讨论】: