jquery - 右对齐工具提示

标签 jquery css html input materialize

我试图让文本输入字段的标签的一部分右对齐。

Here是一个例子 fiddle 。

<div class="row">
  <div class="input-field col s6">
    <input placeholder="Placeholder" id="first_name" type="text" class="validate">
    <label for="first_name">First Name <span class="right-align">Top Right</span></label>
  </div>
</div>

我的目标是让“右上角”文本位于输入的右上角。我尝试添加 right-align CSS 助手,但它没有做任何事情。

我尝试添加 style="float: right;" kind of works但是文本没有完全右对齐

float: right not working

有没有办法让它与输入字段的右边缘完美对齐?

最佳答案

我真的不喜欢过度使用 position: absolute 来解决问题。使用它会导致性能问题,因为浏览器必须 create a new stack element and render inside out .特别是因为它已经是绝对的,所以现在你有 3 个堆叠元素,当真正做到这一点时,不需要

Less Dirty(无位置,最差选项)修复:

.abcd {
  float: right;
}
label {
  padding-right: 1.50rem;
}

https://jsfiddle.net/f4036zmg/

为什么会起作用:标签是绝对定位的,因此它不会考虑其容器元素 (.75rem) 的填充。为了使左侧对齐正确对齐,它有 left: .75rem 这意味着右边现在 1.5rem 向右,因为它是 width: 100%。简单地填充标签将迫使 float 在标签填充区域内移动。

如果你想让整个事情在没有位置的情况下工作,请告诉我,这很容易。 (但是看起来 materialize.min.css 正在以一种非常丑陋的方式为您完成工作)。


Semi-Clean(无位置,ok 选项)修复:

.abcd {
  float: right;
}
input[type=text].validate+label {
  width: auto;
  right: .75rem;
}

这里我们覆盖了 materialize.min.css(也许这不是一个好的选择,我不知道)。我们重置了 width: auto,这样 right 就可以工作了,而且和以前一样,我们必须填充那个 .75rem

https://jsfiddle.net/gL7fhx2q/


清理修复:

需要更改 HTML:

<label for="first_name">
  <span class="">First Name</span>
  <span class="tar">Top Right</span>
</label>

CSS:

.input-field.col label {
  left: 0;
  padding: 0 .75rem;
  display: flex;
}
.input-field.col label > span {
  flex: 1 0 auto;
}
.tar {
  text-align: right;
}

https://jsfiddle.net/7bw2zghr/

再次覆盖 materialize.min.css,但不会对其他设计造成问题。将左侧重置回正确位置 left:0 并像输入 padding: 0 .75rem 添加填充。现在标签正确匹配它的 sibling 。将标签的显示更改为 flex container并包装两个文本,使它们成为 flex 元素。将元素设置为按比例增长,然后将 flex 元素的文本正确设置为右侧。

关于jquery - 右对齐工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54044991/

相关文章:

javascript - 从 DOM 中删除元素时如何检查是否发生内存泄漏?

html - Chrome boxshadow 和 border 冲突

jquery ui 图标未以跨度为中心

html - Bootstrap-如何使用带有前置文本的水平表单布局?

javascript - jquery .更改多个文本框并选择从行到行检索数据

jquery - 在jquery中选择多个复选框

javascript - 如何使垂直 "slide"滚动?

javascript - 没有固定高度的滚动div

javascript - 当用户不遵守规则时,如何让我的 span id 显示适当的消息?

javascript - ASP.NET 阿拉伯语文本 - 句号错误地出现在句首