是否可以将占位符文本从头到尾转换?

2023-12-05

我想在已知宽度的文本输入中从头到尾转换单行动态占位符文本(隐藏溢出)

现在我知道对于常规容器 div 我可以利用转换来转换正确的长度......

因此,对于长度为 100px 的容器,我可以使用以下命令过渡到文本末尾:transform: translateX(calc(100px - 100%)

div {
  width: 100px;
  border: 2px solid green;
  margin: 10px;
  padding: 5px;
}
div {
  white-space: nowrap;
  overflow: hidden;
}
span {
  display: inline-block;
  animation: 4s scrollText forwards;
}

@keyframes scrollText {
  to {
      transform: translateX(calc(100px - 100%));
  }
}
<div><span>some really really really long text here</span></div>

我想知道是否可以使用占位符文本实现上述效果占位符伪元素.

所以我尝试了以下方法:

input {
  width: 100px;
  border: 2px solid green;
  margin: 10px;
  padding: 5px;
}

input::placeholder {
  color: red;
  animation: 4s scrollText;
  transform: translateX(0);
}

@keyframes scrollText {
  from {
      transform: translateX(0);
  }
  to {
      transform: translateX(calc(100px - 100%));
  }
}
<input type="text" placeholder="some really really really long text here">

...但是由于占位符伪元素上可用属性的限制,上面的代码片段不起作用

所有适用于::第一行伪元素还 适用于 ::placeholder 伪元素。

Unfortunately, transform1 doesn't appear in that list.

所以我想知道是否有另一种方法可以实现这一目标 - 可能使用其他属性are由占位符伪元素支持。


  1. 奇怪的是,transform当在没有 calc 函数和动画的情况下使用时,属性似乎(有点)在 Chrome 上工作。
input {
  width: 100px;
  border: 2px solid green;
  margin: 10px;
  padding: 5px;
}

input::placeholder {
  color: red;
  transform: translateX(-50%);
}
<input type="text" placeholder="some really really really long text here">

您可以使用额外的包装器来模拟这一点,而无需在输入元素上真正使用占位符:

input {
  width: 100px;
  border: 2px solid green;
  padding: 5px;
  vertical-align:top;
  background:transparent; /* a transparent background to show the pseudo element */
}


.input {
  display:inline-block;
  margin: 10px;
  position:relative;
  z-index:0;
  overflow:hidden;
}

.input:before {
  content:attr(placeholder);
  position:absolute;
  left:5px;
  top:5px;
  white-space:nowrap; /* no line break */
  color: red;
  pointer-events:none; /* avoid any interaction */
  animation: 4s scrollText forwards;
  z-index:-1;
}

@keyframes scrollText {
  to {
      transform: translateX(calc(100px - 100%));
  }
}

/* hide the before on focus */
.input:focus-within:before{
   visibility:hidden;
}

/* add background to hide the before when there is text and no focus*/
input:not(:placeholder-shown) {
  background:#fff;
}
<div class="input" placeholder="some really really really long text here">
<input type="text" placeholder=" "> <!-- needs an empty placeholder for :placeholder-shown -->
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以将占位符文本从头到尾转换? 的相关文章

随机推荐

  • Python 3.9 中很酷的新功能(概述)

    Python 3 9 来了 在过去的一年里 来自世界各地的志愿者一直致力于 Python 的改进 虽然 Beta 版本已经发布了一段时间 但 Python 3 9 的第一个正式版本已于2020 年 10 月 5 日 Python 的每个版本
  • 使用需求文件

    A 需求文件是项目所有依赖项的列表 这包括依赖项所需的依赖项 它还包含每个依赖项的特定版本 用双等号指定 pip freeze将列出当前项目的依赖关系stdout 此 shell 命令会将其导出为名为的文件requirements txt
  • 多处理模块

    在本课程中 您将了解为什么要采用这种方法 因为你的代码写在函数式编程风格 你可以相当容易地并行化它 有一个平行的map构建您可以使用的 这样 您就可以并行运行处理步骤 您将导入multiprocessing模块 因为它具有并行运行此操作所需
  • JSF:从 Jar 中提供资源

    我正在创建几个装有 Facelets 模板的罐子 供整个组织使用 在 JSF 1 2 中 此功能并不是开箱即用的 堆 Jboss EAP 5 1 Seam 2 2 富脸3 3 3 在我看来 我主要需要两个资源 查找 Faclets 资源的资
  • 在特定的开始、结束日期和时间限制内运行 Quartz Scheduler 作业

    我正在使用 Quartz Scheduler 来执行重复性任务 但我遇到了麻烦 在我的服务器端 我的用户想要指定一些日期范围 例如From 2013 09 27 with in 09 00 AM 12 00 PM to 2013 09 30
  • Pinterest 的官方 OAuth2 流程似乎返回无效的访问令牌

    我按照 Pinterest 的说明进行操作验证用户身份完成步骤 2 后 我手里拿着一个访问令牌 但是 当我使用此访问令牌进行 API 调用时 我收到以下响应 status failure code 3 host coreapp devpla
  • 有没有办法让 JQuery ajax 成功函数访问它所包含的对象?

    我有这样的 JavaScript function Cat this meow function meow ajax do AJAX call success this meow var TopCat new Cat 这不起作用 因为 th
  • 如何在正则表达式子例程中访问捕获组?

    我有一个模式想在几个地方使用 但我想访问该模式的内部部分 有没有办法做到这一点 In this 简化的例子 DEFINE lt isa gt s
  • 全局内存写入在 CUDA 中是否被视为原子?

    全局内存写入在 CUDA 中是否被视为原子操作 考虑以下 CUDA 内核代码 int idx blockIdx x blockDim x threadIdx x int gidx idx 1000 globalStorage gidx so
  • 通过参考返回

    PHP 文档中写道 不要使用按引用返回来提高性能 引擎 会自动对其进行优化 我希望返回对数组的引用 这是我的类的属性 PHP 如何优化这个 因为数组不是对象 如果数组有10亿个条目 如果我不通过引用传递它 我不会得到两个在内存中存储有10亿
  • MySQL SUM 函数在多个连接中

    嗨 这是我的情况 我有那些桌子 Customer id name Charges id amount customer id Taxes id amount charge id 所以我想计算费用和税费的总和 然后按客户 ID 分组 这是我的
  • EL 空运算符在 JSF 中如何工作?

    在 JSF 中 可以使用 EL 空运算符来呈现或不呈现组件 rendered not empty myBean myList 据我了解 该运算符既可以用作空检查 也可以检查列表是否为空 我想对我自己的自定义类的某些对象进行空检查 我需要实现
  • 访问共享内存进行读取时锁定

    如果我以只读方式访问共享内存 请检查某个条件if 块 我还应该锁定互斥锁吗 例如 mutex lock if var shared memory mutex unlock 这里是否需要锁定并且是良好的做法 如果您正在读取的变量可以同时写入
  • 如何使用 Matlab 按字母顺序对属性值对进行排序

    我想向现有文件添加属性值对 同时 所有属性应按字母顺序排序 例如 Info property 1 value 1 system property 2 value 2 我如何添加其他属性 以便所有属性都按字母顺序排序 我能够使用以下命令将属性
  • 使用 HTML5 音频更改 在 Chrome 中有效,但在 Safari 中无效

    我正在尝试制作一个可在每个主要浏览器中使用的 HTML5 音频播放列表 Chrome Safari Firefox IE9 但是 我不知道如何以跨浏览器兼容的方式更改源 UPDATED例如 更改
  • 迭代器无法正确访问问题

    我正在尝试使用迭代器访问向量的元素 但我得到奇怪的输出 std vector
  • Excel VBA 循环遍历可见的筛选行

    我有一个带有自动过滤器的 Excel 表格 在过滤表中 我只过滤了几行 我的目标是迭代所有可见行以收集数据以复制到另一张工作表 我想要一种方法来收集具有第一个可见行号的变量 我的草稿代码是 Dim cnp As String Dim nom
  • 我们是否应该在 React 功能组件的每个函数处理程序中使用 useCallback

    假设我们有这样的组件 const Example gt const counter setCounter useState 0 const increment gt setCounter counter gt counter 1 retur
  • 使用具有 PhoneStateListener 功能的 BroadcastReceiver

    我正在尝试制作一个 MissCall 应用程序 当收到未接来电时 该应用程序会自动发送消息 我已经完成了我的应用程序并且运行良好 这是完整的场景 问题 该应用程序运行良好但是当我重新启动设备时 应用程序无法运行 它仅在我启动我的应用程序至少
  • 是否可以将占位符文本从头到尾转换?

    我想在已知宽度的文本输入中从头到尾转换单行动态占位符文本 隐藏溢出 现在我知道对于常规容器 div 我可以利用转换来转换正确的长度 因此 对于长度为 100px 的容器 我可以使用以下命令过渡到文本末尾 transform translat