`
wjlgryx
  • 浏览: 308667 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

WebKit 实现HTML5 搜索输入框

阅读更多

One of the new types of inputs in HTML5 is search.


It does absolutely nothing in most browsers. It just behaves like a text input. This isn't a problem. The spec doesn't require it to do anything special. WebKit browsers do treat it a bit differently though, primarily with styling.






A search input in WebKit by default has an inset border, rounded corners, and strict typographic control.


The Styling Limitations

WebKit has big time restrictions on what you can change on a search input. I would guess the idea is consistency. In Safari particularly, search fields look just like the search box in the upper right of the browser. The following CSS will be ignored in WebKit "no matter what", as in, you can't even fight against it with !important rules.

input[type=search] {
        padding: 30px;            /* Overridden by padding: 1px; */
        font-family: Georgia;     /* Overridden by font: -webkit-small-control; */
        border: 5px solid black;  /* Overridden by border: 2px inset; */
        background: red;          /* Overridden by background-color: white; */
        line-height: 3;           /* Irrelevant, I guess */
}
In other words, be extremely cautious about using any of those CSS properties on a search input unless you are OK with the search input looking very different in other browsers.

Allowed styling

The following CSS works as expected. The last three, in my opinion, should probably locked in like the properties above as styling those properties almost always looks worse than if you didn't.

input[type=search] {
        color: red;
        text-align: right;
        cursor: pointer;
        display: block;
        width: 100%;
        letter-spacing: 4px;
        text-shadow: 0 0 2px black;
        word-spacing: 20px;
}
Busted styling

Be careful not to use text-indent on search inputs. The results are quite weird and inconsistent. Here is one example:






Sometimes the text is below like this. Sometimes it's not visible at all. It appears to be related to elements around it as well as how much indent it has (low values sometimes work fine).

Show Previous Searches

This isn't documented anywhere that I know of nor is it in the spec, but you if you add a results parameter on the input, WebKit will apply a little magnifying glass with a dropdown arrow showing previous results. (Thanks to Mike Taylor)







The integer value you give the results attribute is how many recent searches will appear in this dropdown, if there are that many.
Size Restrictions

There are only three different "sizes" that WebKit search inputs can be, and it is determined by the font-size you declare on them.

Resulting Size CSS font-size
Small = 16px





Small, Medium, and Large. That's all you get!

This small, medium, and large business can be extremely frustrating, as even setting identical font values, at the minimum for a "bump", you'll see font size difference across browsers.







 

  • 大小: 6.9 KB
  • 大小: 8.8 KB
  • 大小: 17.4 KB
  • 大小: 11.2 KB
  • 大小: 14.2 KB
分享到:
评论

相关推荐

    输入框提示文字上浮

    在UI设计和前端开发中,"输入框提示文字上浮"是一种常见的交互设计方式,它主要体现在当用户聚焦到输入框时,原本显示在输入框内的提示性文字(hint)会浮升到输入框的上方,形成一种清晰的提示效果。这种设计能够...

    HTML5为输入框添加语音输入功能的实现方法

    HTML5为输入框添加语音输入功能的实现方法主要依赖于HTML5提供的语音识别特性,这是网页实现语音交互的重要途径。在HTML5中,通过在传统的`<input>`标签中添加特定的属性,可以使输入框支持语音输入功能。具体实现...

    自制网盘搜索器(使用WebKit .NET内嵌Webkit浏览器内核)

    【自制网盘搜索器——基于WebKit .NET的实现】 在当今互联网时代,网盘成为了存储和分享文件的重要工具,如百度网盘、新浪微盘等。为了方便用户快速找到所需的资源,开发一个自定义的网盘搜索器是很有实用价值的。...

    html5配合css3实现带提示文字的输入框(摆脱js)

    HTML5和CSS3的结合为开发者提供了一种优雅的方式来创建带有提示文字的输入框,而无需依赖JavaScript。这种技术在创建登录界面、搜索框等场景中尤其适用,它能够为用户提供直观的指导,同时保持页面的简洁和高效。 ...

    网页实现语音搜索

    总结来说,HTML5的语音搜索功能通过简单的`x-webkit-speech`属性实现了用户与网页的语音交互,为用户提供了更自然、直观的搜索体验。尽管目前这个功能仍存在浏览器兼容性问题,但随着Web技术的不断发展,我们可以...

    webkit研究报告

    利用 WebKit 实现搜索引擎** 搜索引擎可以通过 WebKit 来预览网页内容,从而提高搜索结果的相关性和准确性。此外,还可以利用 WebKit 的渲染能力来抓取动态生成的内容。 **2. 利用 WebKit 实现平台功能** 许多...

    html select 可输入 可编辑

    -webkit-appearance: none; /* 移除Safari/Chrome默认样式 */ outline: none; /* 去除浏览器默认的焦点样式 */ } ``` 最后,我们使用JavaScript来处理用户交互,包括当用户输入时同步`<select>`的选中项,以及在...

    利用JS+CSS实现滚动表格数据展示

    在网页设计中,有时我们需要展示的数据过多,无法一次性完全显示在屏幕内,这时滚动表格就显得尤为重要。...同时,通过不断学习和实践,我们可以进一步完善这个功能,比如添加分页、搜索过滤等高级特性。

    用html5实现语音搜索框的方法

    在本文中,我们将探讨如何利用 HTML5 来实现一个语音搜索框。这种方法允许用户通过说话而不是打字来输入搜索查询,增加了用户体验的便利性和互动性。 首先,我们需要创建一个基本的 HTML 输入元素,类型为 "text",...

    Bootstrap实现弹性搜索框

    值得注意的是,Bootstrap默认并不支持将搜索图标放置在输入框的内部,但可以通过自定义CSS或使用Font Awesome等图标库来实现。例如,如果你想要改变搜索图标的显示位置,可能需要调整输入框和图标元素的相对位置,并...

    基于Html5实现的语音搜索功能

    细心的朋友可能会观察到谷歌搜索右侧有个语音搜索功能,能够实现语音识别功能,可能功能还不够完善,不过也算是一种趋势,下面就介绍一下如何实现此功能,代码如下: <input type="text" name="test" x-webkit-...

    页眉透明的搜索栏 随着屏幕滑动改变透明度

    我们还使用了box-sizing: border-box来实现输入框的样式,并且使用了outline: 0来消除输入框的轮廓。 知识点五:响应式布局 在这个例子中,我们使用了响应式布局来适应不同屏幕尺寸的设备。例如,我们使用了width:...

    HTML5 语音搜索只需一句代码

    在本文中,我们将探讨如何使用 HTML5 实现简单的语音搜索功能。 核心代码就是 `x-webkit-speech` 属性,这是一个实验性的特性,仅在基于 WebKit 的浏览器(如 Safari 和早期版本的 Chrome)中得到支持。将这个属性...

    HTML5 语音搜索(淘宝店语音搜素)

    实现 HTML5 语音搜索的核心在于 `x-webkit-speech` 属性。这个非标准的属性可以添加到 `<input>` 元素上,使输入框具备语音识别功能。例如: ```html <input type="text" x-webkit-speech /> ``` 当这个属性被添加...

    01-html+css做的旧版百度首页

    例如,`<form>`标签用于创建搜索表单,`<input>`定义输入框,而`<a>`则用于创建链接。此外,`<head>`部分可能包含了对CSS文件的引用,以实现页面的样式控制。 CSS(Cascading Style Sheets)用于控制网页的布局和...

    html5的新玩法——语音搜索

    实现语音搜索的关键在于`<input>`标签的一个特殊属性——`x-webkit-speech`。在`<input>`标签中添加这个属性,就能激活语音输入的功能。例如: ```html <input type="text" x-webkit-speech /> ``` 当用户点击带有...

    使用CSS3的appearance属性改变元素的外观的方法

    尽管如此,由于浏览器兼容性的限制,`appearance`在Internet Explorer和其他非Webkit/Firefox浏览器中的支持并不理想,因此在实际使用时需要考虑这些因素,可能需要配合JavaScript或者更兼容的解决方案来实现跨...

    8个html5和css3的高级功能.pdf

    HTML5 和 CSS3 是现代网页设计的核心技术,它们引入了许多高级功能,极大地提升了网页的交互性和视觉效果。以下是对这些功能的详细解释: 1. **可编辑元素** HTML5 中的 `contenteditable` 属性允许用户直接在网页...

Global site tag (gtag.js) - Google Analytics