如何像 iPhone 一样在 HTML 文本输入框中放置一个清除按钮?

2024-04-19

我想要一个漂亮的小图标,单击该图标将清除 框中的文本。

这是为了节省空间,而不是在输入框之外有一个清晰的链接。

我的 CSS 技能很弱...这是 iPhone 外观的屏幕截图照片。


如今与<input type="search"> element https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search,这很简单:

<input type="search" placeholder="Search..."/>

支持的浏览器 https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button#browser_compatibility默认情况下,将自动在字段中呈现一个可用的清除按钮。

清除按钮是::-webkit-search-cancel-buttonCSS伪元素 https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button由基于 Webkit/Blink 的浏览器自动插入(尽管从技术上讲它仍然是一个非标准功能)。


如果您使用 Bootstrap,则必须添加 CSS 覆盖以强制显示伪元素:

input[type=search]::-webkit-search-cancel-button {
    -webkit-appearance: searchfield-cancel-button;
}

正式地,-webkit-search-cancel-button伪元素 https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button是非标准的,不应被依赖为跨浏览器的内置 HTML 功能。

值得注意的是,从版本 110 开始,Firefox 默认情况下不会呈现清除按钮,但他们计划最终启用它:https://bugzilla.mozilla.org/show_bug.cgi?id=1654288 https://bugzilla.mozilla.org/show_bug.cgi?id=1654288。您可以查看最新的浏览器兼容性信息on MDN https://developer.mozilla.org/en-US/docs/Web/CSS/::-webkit-search-cancel-button#browser_compatibility or CanIUse.com https://caniuse.com/mdn-css_selectors_-webkit-search-cancel-button.

最可靠、面向未来的跨浏览器方法是使用表单具有明确的<input type="reset"/> element https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/reset附近允许使用按钮清除搜索表单。这也使得添加辅助功能提示和直接使用 CSS 设置透明按钮样式变得更加容易。

<form action="/search">
  <input type="search" placeholder="Search..."/>
  <input type="reset" value="X" alt="Clear the search form">
  <input type="submit" value="Search">
</form>

Extras:Safari/WebKit浏览器还可以提供额外功能 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search#non-standard_attributes使用时type="search", like results=5, enterkeyhint="...", and autosave="...",但它们也会覆盖您的许多样式(例如高度、边框)。为了防止这些覆盖,同时仍然保留 X 按钮等功能,您可以将其添加到 css 中:

input[type=search] {
    -webkit-appearance: none;
}

See the MDN 文档 https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/search, CanIUse.com https://caniuse.com/mdn-css_selectors_-webkit-search-cancel-button, or CSS-Tricks.com https://css-tricks.com/webkit-html5-search-inputs/有关所提供功能的更完整和最新的信息<input type="search"/>在今天的浏览器中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何像 iPhone 一样在 HTML 文本输入框中放置一个清除按钮? 的相关文章

  • 如何在alert()之后给予focus()?

    我有类似的东西
  • 如何在 HTML/CSS 中进行制表符停止

    我想用 HTML 呈现一些文本的格式 这是一张图片 请注意带有项目符号点和段落编号的灰线 项目符号应位于页面中央 并且数字应正确对齐 我一直在尝试思考如何在 HTML 中做到这一点 但一无所获 您将如何捕获这种格式 您可以使用 before
  • Javascript 闭包问题

    所以 我仍在阅读 Apress Pro Javascript 技术 但我在闭包方面遇到了麻烦 正如约翰 雷西格所说 闭包允许您引用父函数中存在的变量 然而 它在创建变量时并不提供变量的值 它提供父函数中变量的最后一个值 这是最常见的问题 您
  • font-awesome 字体未加载到 Angular 项目中

    我已经使用 Angular 5 一段时间了 似乎我无法将任何字体很棒的图标加载到我的构建项目中 我完全按照下面链接中提到的步骤进行操作 https www npmjs com package angular font awesome htt
  • RxJS 将三元组中的属性组合到表中

    我有一项服务生成类似于三元组的对象 它们将采用以下格式 country attribute value Example country usa attribute population value 100 country mexico at
  • 如何只显示 HTML5 datalist 中的文本而不显示值?

    这是一个例子
  • Ember 未在生产环境中加载某些图像

    我有一个 Ember cli 1 13 应用程序 它在公共目录中存储了很多图像 现在 它将正确加载除特定组件中的图像之外的所有图像 该组件的调用方式如下 list item url list url name List Name price
  • 有没有办法在 Blazor 中隐藏 div?

    我正在使用 Blazor 并且想在按下导航栏切换器图标时隐藏侧边栏 列表项崩溃了 但问题是 div 仍然存在 div class page div class sidebar div class nav top row pl 4 navba
  • 在 JavaScript 中给变量字符串加上引号

    我有一个 JavaScript 变量 var text http example com 文本可以是多个链接 如何在变量字符串周围放置 例如 我希望字符串看起来像这样 http example com var text http examp
  • 带条件的 Array.join()

    我该如何使用Array join 有条件的函数 例如 var name aa bb var s name join 输出是 aa bb 我想添加一个条件 仅显示不为空的单词 aa bb 您可以使用Array filter https dev
  • 不担心“retainCount”吗?真的吗?

    有人告诉我不要担心保留计数 我明白我不应该决定release or retain使用基于条件逻辑retainCount 但我不应该担心吗 我认为这些在某种程度上与内存使用相对应 例如 如果我有一堆子视图UIView我也放入了NSArray能
  • 浮动的垂直对齐方式:左div的

    我有大约 10 个宽度相等但高度不同的 div 我希望它们尽可能紧密地组合在一起 当设置为向左浮动时 它们不会垂直彼此对齐 而是与上面 行 的底部对齐 我在下面模拟了一个小例子 想要去掉空白 你有什么建议吗 我仅限于使用这种格式 因为内容是
  • 常见的 Web UI 样式

    在接下来的几天里 我必须向我的一位客户展示一个 Web 应用程序的原型 问题是我不太擅长 CSS 最糟糕的是我几乎对得到的结果不满意 编写业务逻辑对我来说没有任何挑战 但 UI 设计却占用了我 80 以上的时间 我不需要什么令人惊叹的东西
  • 自定义 UIAlertView?

    鉴于蓝色与我的 UI 界面不相配 我只是想知道是否有办法更改 uialertview 的颜色 或者使用图像代替 所有按钮 关闭 等仍然存在 Thanks CodeCropper 的优秀人员刚刚推出了一个开源控件 可让您创建自定义警报视图 这
  • 我的程序有内存泄漏

    IBAction play2 CFBundleRef mainBundle CFBundleGetMainBundle CFURLRef soundFileURLRef soundFileURLRef CFBundleCopyResourc
  • iOS中如何以url的形式发布数据?

    我想将 UITextfields 数据发送到服务器 我想发布数据 但服务器向我显示错误消息 请检查我的代码 NSURL url NSURL URLWithString http projectsatseoxperts net au fish
  • 如何解析使用YUI数据源返回的NULL值

    我正在使用 YUI 数据表和数据源来渲染我的项目之一中的数据 返回的数据恰好为NULL YUI数据源无法解析它 下面是数据源和数据表的声明代码 为了便于阅读 我将每个声明分开 列说明声明 var columnDescription key
  • Dojo 是否可以与其他 JS 框架结合?

    我们使用 Dojo 1 9 3 作为构建单页面应用程序的 JS 框架 然而 我们在 Dojo 的怪癖上花费了太多时间 因此即使是简单的任务也需要很长时间才能实现 由于缺乏适当的文档 我们经常不得不求助于阅读源代码 然后实施解决方法 我觉得如
  • 是否可以在 iOS 应用程序中使用 rsync?

    是否可以在 iPhone 或 iPad 应用程序中使用 rsync lib 或者也许有任何适合通过 sftp 进行远程文件同步的替代方案 Acrosync库是一个不错的选择 我已经为它做了一个演示 它根据 RPL 许可证进行许可 并提供商业
  • @media查询和图像交换[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我希望在调整浏览器大小时网站中的图像完全改变 我一直在使用媒体查询 但我似乎无法正确使用它 有什么想法 建议吗 将来请添加您尝试过的代

随机推荐