input之placeholder与行高的问题。
我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性:
1.鼠标要跟文字一样高度。
2.文字要居中对齐。
3.还要有placeholder
第一个目标,当实现一个高度为40像素的高度输入框时,为了与鼠标对齐,我们会默认输入框的高度与字体高度差不多高度。多了会显得输入光标过高。
第二个目标,文字居中对齐的话我们会设置line-height与输入框高度一致。
所以有了这段 <input type="text" value="ceshigjwkegjwl官网看给我个看过" class="ceshi-input"/>
css为:.ceshi-input{border:20px solid #ccc; background:#fff; height:18px; font-weight:normal; font-size:14px; line-height:18px; font-family:"Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", sans-serif;}
下面是展示效果:
以上经测试在所有浏览器中显示一致。
但素::::::
为了有placeholder,我们默默的加上了placeholer属性,于是有了:
<input type="text" palcehoder="ceshigjwkegjwl官网看给我个看过" class="ceshi-input"/>
然后一看效果:
明显不是一样对齐的呀。嗷。
修改办法:
ie9包括其本身以下的输入框里面的文字对齐方式是默认顶对齐。
其他的默认是居中,placeholder在没有line-height的情况下是和value一样对齐的。
所以取个居中和顶对齐的和谐位置就是把可输入区域的高度与字体大小相差无几。这样就看起来差不多了。
不设置line-height;其他的空余区域用padding顶出来就可以做到输入光标与字体大小一致和谐。
又有方案说直接设置line-height:normal;就可以。不懂其中原理。
而且还可以直接作用于placeholder,如:
input::-webkit-input-placeholder { /* WebKit browsers */
line-height: 1.5em;
}
参考地址:http://stackoverflow.com/questions/4919680/html5-placeholder-css-padding
实在是不怎么懂,后续补上一章详细的说明。
input之placeholder与行高的问题。的更多相关文章
- input之placeholder与行高的问题
我们实现一个输入框的视觉的时候为了保持其各种各样的兼容性: 1.鼠标要跟文字一样高度. 2.文字要居中对齐. 3.还要有placeholder 第一个目标,当实现一个高度为40像素的高度输入框时,为了 ...
- css - 行高
css - 行高 line-height行高 取值:px | em | rem | 百分比 | 纯数字 | normal | inherit 设置给:块.行内.行内块 应用给:文本 继承:块.行内.被 ...
- 解决input 中placeholder的那些神坑
**昨天后台小哥哥提到placehold无法显示问题,我这边总结一下,顺便写个小文章分享给大家..** ============================================== 一 ...
- 从零开始学 Web 之 CSS(三)链接伪类、背景、行高、盒子模型、浮动
大家好,这里是「 Daotin的梦呓 」从零开始学 Web 系列教程.此文首发于「 Daotin的梦呓 」公众号,欢迎大家订阅关注.在这里我会从 Web 前端零基础开始,一步步学习 Web 相关的知识 ...
- 20170707xlVBA多区域拆分多表保持行高列宽
Public Sub 多个区域拆分到多表() AppSettings On Error GoTo ErrHandler Dim StartTime, UsedTime As Variant Start ...
- 李洪强和你一起学习前端之(6)css行高,盒模型,外边距
李洪强和你一起学习前端之(6)css行高,盒模型,外边距 复习昨天的知识 1.1css书写位置: 内嵌式写法 外联式写法 <link href = "1.css" rel = ...
- 解决li中文字行高对齐
<div class="A_content_1"> <li>座右铭: <input class="A_ct1" type=&quo ...
- Web打印连续的表格,自动根据行高分页
拿到这个需求,我已经蛋碎了一地,经过N天的攻克,终于是把它搞定了,只是不知道会不会在某种情况下出现BUG.表示我心虚没有敢做太多的测试.... ---------------------------- ...
- 行高 line-height
一.行高的定义 line-height(行高):两行文字基线之间的距离 1.什么是基线? 2.为何是基线? 3.需要两行吗? 1.什么是基线? 我们上学的时候都用过,抄写英文字母的时候.其中有一条红线 ...
随机推荐
- 自从用了Less 编写css,你比以前更快了~(sublime编译)
之所以用这个标题呢,主要是最近调侃杰伦太有意思了. 好吧,开个玩笑而已. 如果你了解过Less,并对之很熟悉,就不用往下看了. 如果你没用过,恭喜,这是一个入门级的教程,学会了它,可以为你节省10%的 ...
- Spark Streaming揭秘 Day12 数据安全容错(Executor篇)
Spark Streaming揭秘 Day12 数据安全容错(Executor篇) 今天,让我们研究下SparkStreaming在Executor端的数据安全及容错机制. 在SparkStreami ...
- psp系统需求分析
软件开发方向“PSP系统”软件需求规约 目录 1 引言... 4 1.1 目的... 4 1.2 文档格式... 4 1.3 预期的读者和阅读建议... 4 1.4 范围... 5 1.5 术语... ...
- 扩展ServiceHost<T>类
public class ServiceHost<T> : ServiceHost { public void EnableMetadataExchange(bool enableHttp ...
- JavaScript技巧45招
原文:45 Useful JavaScript Tips, Tricks and Best Practices作者:Saad Mousliki 在这篇文章里,我将分享一些JavaScript的技巧.秘 ...
- 分享自lordinloft 《[转载]COMPILE_OPT 的用法介绍》
来源:http://blog.sina.com.cn/s/blog_63180b75010117oj.html#bsh-73-372143085
- 集成“支付宝” -b
大致步骤 1.与支付宝签约获取相关参数 合作者身份 ID 与安全校验码 key2.下载需要导入的文件,做相应设置3.在自己的项目中集成支付的方法代码 详细步骤 1.获取合作者身份 ID 与安全校验码 ...
- Android Studio 单刷《第一行代码》系列 07 —— Broadcast 广播
前情提要(Previously) 本系列将使用 Android Studio 将<第一行代码>(书中讲解案例使用Eclipse)刷一遍,旨在为想入坑 Android 开发,并选择 Andr ...
- Extjs-4.2.1(二)——使用Ext.define自定义类
鸣谢:http://www.cnblogs.com/youring2/archive/2013/08/22/3274135.html --------------------------------- ...
- Aimp3的播放列表 按评分排序 落雨
如图,添加评分选项,并保存,就可以在下图的选项里找到此选项,并按评分排序 效果图如下:还可以倒置,迅速使评分高的音乐排在播放列表的前面位置!! 转自百度知道: http://zhidao.baidu. ...