html - 输入类型“搜索”取消按钮未在 Firefox、IE 和 Edge 中显示
问题描述
.hs-search-field__input {
color: #111d33;
border-bottom: 3px solid #111d33;
appearance: searchfield;
-moz-appearance: searchfield;
-webkit-appearance: searchfield;
-ms-appearance: searchfield;
color: #fff;
border-radius: 0px !important;
}
<input type="search" class="hs-search-field__input" name="term" autocomplete="off" aria-label="Search" placeholder="Search">
我添加了,它在 chrome 中运行良好,但清除按钮在 Firefox、Internet Explorer 和 MS Edge 中不起作用:
解决方案
搜索字段上的清除按钮特定于 chrome。我能想到的唯一解决方案是从 chrome 中删除清除按钮并添加自定义清除按钮。但是,如果任何其他浏览器决定将来添加此浏览器特定功能,这可能会导致问题。
这可能不是您正在寻找的答案,您可能已经知道如何执行此操作,但我已经整理了一个示例,如何从 chrome 中删除清除按钮并创建自定义清除按钮。
// Get clear buttons
const clear = document.querySelectorAll('.clear');
// Loop through clear buttons.
// This is so you can have multiple search fields on a page.
for (let i = 0; i < clear.length; i++) {
// Add a click event listener to each clear button
clear[i].addEventListener("click", function() {
// Clear sibling search input
clear[i].previousElementSibling.value='';
});
}
/* Remove chrome clear button */
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-results-button,
input[type="search"]::-webkit-search-results-decoration {
-webkit-appearance:none;
}
/* Basic clear button styling */
.clear {
position:absolute;
right:4px;
top:2px;
cursor:pointer;
display:inline-block;
}
/* Basic search wrapper and input styling */
.search-wrap {
display:inline-block;
position:relative;
}
.search-wrap input[type="search"] {
padding-right:20px;
}
<div class="search-wrap">
<input type="search">
<div class="clear">X</div>
</div>
推荐阅读
- ruby-on-rails - 验证是否可以清除不良数据,但仍让表单的其余部分继续创建?
- regex - 正则表达式捕捉多个匹配看后看
- qt - 我如何检索小部件中所有文本编辑框内容的更改
- cloudkit - CloudKit 私有数据库开发者访问
- python - 有没有办法让我的 discord.py 嵌入字段名称和值对齐
- vue.js - 如何通过 recast 支持 vue 模板解析?
- html - 导航栏部分突出显示
- reactjs - 如何在反应中从自定义函数返回布尔值
- postgresql - 结合关系查询提高 Postgres jsonb 查询的性能
- flutter - Dio Interceptor 无法处理同一回调中的第一个请求,仅处理后续调用