html网页搜索框怎么做
```html 一个搜索框最核心的东西就两样: 先写个能用的搜索版本。下面这段代码你复制到一个 .html 文件里,网页双击打开就能用: 注意 如果你不想跳转,想用 JavaScript 处理,那就得阻止默认提交行为。把上面的 视觉上,搜索框通常需要一点内边距和圆角,不然太丑。但别用 还有一个细节:移动端上, 搜索框的 最后说一个容易被忽略的: 搜索框本身不复杂,复杂的是它背后的搜索逻辑——分词、匹配、排序、分页。但那是后端和算法的事。前端要做的,就是让用户能顺畅地输入、提交,然后拿到结果。别在搜索框上堆太多花哨的东西,一个能用的搜索框,比一个好看但点不动的搜索框强一百倍。<input> 和 <button>。别把它想复杂了,搜索很多人一开始就琢磨怎么加图标、网页怎么搞动画,搜索结果连最基本的网页提交逻辑都没跑通。我见过一个刚学前端的搜索朋友,花了一下午调 CSS 阴影,网页最后发现表单根本没 action,搜索点了按钮页面只是网页刷新了一下。<form action="/search" method="get"> <input type="text" name="q" placeholder="输入关键词"> <button type="submit">搜索</button> </form>name="q" 这个属性。搜索没有它,网页你提交之后服务器收不到任何东西。搜索我以前接手过一个项目,网页搜索框死活没结果,查了半天后端,最后发现前端 input 漏了 name。这种低级错误新手很容易犯,因为浏览器不会报错,你点按钮它确实跳转了,只是参数是空的。form 改成这样:<form id="searchForm"> <input type="text" id="searchInput" placeholder="输入关键词"> <button type="submit">搜索</button> </form> <script> document.getElementById('searchForm').addEventListener('submit', function(e) { e.preventDefault(); var keyword = document.getElementById('searchInput').value.trim(); if (keyword) { console.log('你要搜的是:' + keyword); // 这里可以发 fetch 请求,或者跳转到某个页面 } }); </script>e.preventDefault() 这行是关键。不加的话,浏览器默认会刷新页面,你的 JS 代码可能还没跑完就被打断了。我调试过一个小工具,搜索框一直闪一下就没反应,后来发现就是忘了加这行。border-radius: 50%,那会变成一个椭圆,除非你故意要那种效果。常规做法是 border-radius: 20px 左右,配合 padding: 8px 12px。按钮最好跟输入框高度一致,否则一个高一个低,看着别扭。input 的字体小于 16px 时,iOS 的 Safari 会自动放大页面,体验很割裂。所以要么设 font-size: 16px,要么加 maximum-scale=1(但后者会影响用户手动缩放,不太推荐)。我自己的习惯是直接把输入框字体设成 16px,简单省事。placeholder 文字别写“请输入搜索内容”,太啰嗦。写“搜索…”或者“找点什么”都行,甚至留空也可以。用户看到放大镜图标或者输入框的形状,自然知道是搜索。我见过一个后台系统,搜索框里写着“请输入您要搜索的关键词然后点击右侧按钮”,这种文案纯粹是给用户添堵。autocomplete="off"。有些浏览器会记住你之前输入的内容,弹出一堆历史记录,有时候会挡住下面的内容。如果你做的是站内搜索,加上这个属性可以关掉浏览器的自动补全。但如果你希望用户复用之前搜过的词,那就别加。看场景。
-
上一篇
-
下一篇