1、引子与强迫症
先看图:
如 上图,放大了数倍之后的输入框在无文字和有文字时的光标高度以及对齐方式。以上举例的四个输入框只有百度做的最完美,无无文字时和输入文字时一致对齐,非 常的美观。反观其他3个输入框,做的都不是特别好,只在意在无文字输入时,蓄意放大光标长度,导致输入文字时光标高度不一致。这种输入框在强迫症患者下看 来是无法接受的。
2、光标的高度决定关系
以淘宝输入框为例:
如图中用绿色框中的样式,如文字大小、高度、行高、内边距,这些是影响输入框内部的主要样式(样式参考以chrome浏览器为例)。
chrome浏览器的输入框光标、输入文字、占位符有以下规则:
- 无文字输入时,以行高为准;
- 有文字输入时,以文字大小为准;
- 占位符以行高为准。
因此对淘宝的输入框,只这样设置样式即可:
line-height:normal;
见图:
3、如何写好输入框
- 在书写输入框的时候,如果要增加光标高度,那么最可行的做法是增加文字的大小;
- 输入框的剩余空白使用内边距填充;
- 不要为输入框设置行高,因为浏览器默认会设置行高就会使占位符和输入光标、文字都居中;
- 不要为输入框设置高度,因为已经使用了内边距撑开了,并且现在大多数css库都直接使用边框盒模型。
下面是个例子:
<!DOCTYPE html>
<style>
body{
line-height: 20px;
}
#input1{
font-size: 40px;
padding: 10px;
line-height: normal;
}
</style>
<body>
<input type="text" id="input1" placeholder="input">
</body>
可见,写好一个输入框是非常的简单的,line-height: normal;
只需要写在css reset里即可。
上述的书写方式,来看看其他浏览器的表现:
4、参考资料
Related Posts
-
推荐10款非常优秀的 HTML5 开发工具HTML5 发展如火如荼,随着各大浏览器对 HTML5 技术支持的不断完善以及 HTML5 技术的不断成熟,未来 HTML5 必将改变我们创建 Web 应用程序的方式。今天这篇文章向大家推荐10款优秀的HTML5开发工具,帮助你更高效的编写…
html照片从模糊到清晰的渐变加载显示方法1.背景介绍 在网络相册应用中用户查看照片是最朴素的需求,当网络比较慢的时候查看照片等待的时间是比较长的,用户体验会很差。 2.现状 现在加载照片的方法主要有一下两种: (1)最原始的方式在html页面直接用img标签加载显示照片。该方法在网络速度比较慢或者要显示的照片比较大的时候会页面出现空白的等待过程,并且不能开始给用户看到照片大概的情况,用户体验比较不好 (2)在html页面先用img标签加载显示照片的缩略图,同时用javascript隐藏的加载照片的原图,等照片大图加载完成后再将原图显示到页面中。以下是流程图: 该方法用户可以先看到的是模糊的小图,等照片的原图加载完后才能看到真实的照片,如果网络慢的话中间等待的时间也是比较长的,用户就一直看到模糊的小图,用户体验也不好。 …
CSS:去除点击链接和按钮时出现的虚线框在前端制作的过程中会发现,一些文字/图片链接,或者一些input控件,在点击时会在周围出现虚线边框,一般会在火狐和IE浏览器下出现虚线框,谷歌下不会有。 这些虚线边框是作为对视觉设计的一种辅助,在不使用鼠标,而用键盘Tab键进行页面浏览时,会标示出当前所在的链接或控件的位置,便于浏览。这对那些视觉有障碍的人士来说更是必不可少的。 但是有些时候我们却不想使用它们,因为浏览器对虚线框的解析有差异,并且不规则,所以在视觉设计上反而成为了某种缺陷。所以这种时候,我们想要禁用这些虚线边框,使浏览者的视觉享受能够完美无瑕。 那么,如何去除这些点击时才会出现的虚线边框呢? 1. outline:none; 通常我们会这么写:a,input{outline:none;} 优点是代码简洁,使用一行css就能解决问题,但是也有缺点:ie6、ie7并不认识outline属性,需要配合仅ie6和ie7支持的css属性blr:expression_r(this.onFocus=this.blur());使用来达到兼容,expression 条件,这句话的意思是链接在获得焦点的同时失去焦点,但是blr不宜多用,会影响效率。…