input标签写CSS时需要注意的几点

  飞鱼的声纳顶部的搜索框让我头疼了很长时间,原因是总不能获得跨浏览器的统一样式。主要的问题有这么两个:一是input标签的高度不能统一,Firefox和IE中的高度始终不能一致;二是在IE浏览器中属性为text的input标签中的输入文字不像标准浏览器中的那样垂直居中显示,而是靠输入框的左上角显示。

  为了彻底解决搜索框的这些问题,我以GreenGaint主题搜索框的样式为准,重写了一遍代码并且以像素为单位测量了一下在没有任何样式表的情况下<input>标签在默认浏览器中的实际差别。

  结果发现:input标签在type为text时,在Firefox和Safari中的默认高度为22像素(包括上下边框)宽度为146像素(包括左右边框),而在IE中的默认高度为24像素,而宽度却和Firefox和Safari是一致的,也是146像素。当 input标签在type为submit时,在Firefox中的高度为23像素(包括阴影),宽度为75像素。在Safari中高度为21像素,宽度为73像素,在IE中高度为为25像素、宽度为73像素。

  那么在样式化input标签时又该注意哪些问题呢?先来看下面经过样式化后,在不同浏览器中都有着良好表现的搜索框。

  总结一下,在给input标签写CSS时需要注意的有以下几点:

  一、不要给属性为text的input标签设置高度,这样无法让IE浏览器下输入框中的文字垂直居中显示。尽管你后来想要通过设置padding属性来让文字居中,你会发现根本没法让它在Firefox和IE中取得一致的效果。正确的做法是直接给input标签设置padding属性,通过内边距属性来调节input标签的高度,而且这时IE中的文字也是居中显示的。

  二、input标签不会继承父元素的字体样式和大小,需要直接给input标签声明font-family和font-size属性。

  三、给属性为text的input标签设置合适的width属性和padding属性,确保其中的文字在合适的范围内出现。尤其是使用了背景图片后,要让文字框的大小和背景图片的大小相当,这样看上去更加美观。

时间: 2024-08-06 20:06:52

input标签写CSS时需要注意的几点的相关文章

总结:制作网页写CSS时参考的内容

css|参考|网页 1.有疑问,先验证 调试时,先对代码进行验证.格式不正确的XHTML/CSS会导致许多错误. 先在你最常用的浏览器中撰写和测试CSS代码,并尽量完善代码.然后再设法兼容其它浏览器.这样从一开始你的代码就是符合标准的,不必再为支持其它浏览器而劳心费神.(遵从标准的浏览器是Mozilla/Firefox, Safari, Opera) 2.确保你期望的效果确实存在 许多特定浏览器的专有CSS扩展在正式标准中并不存在.例如filter,滚动条样式,除了IE之外,在其它浏览器中毫无作

css input标签字体靠右对齐 移动端不方便删除

问题描述 css input标签字体靠右对齐 移动端不方便删除 css input标签 字体靠右 在获得焦点时希望光标可以在字体的右边 解决方案 使用selectionStart和selectionEnd属性 <input type="text" style="text-align:right" value="1234566" onclick="this.selectionStart = this.selectionEnd = t

使用css直接定义input标签

css <style>INPUT {  color: expression(this.type=="button"?'red':'green'); } </style> <input type="button" name="test" value="haha"><input type="text" name="test2" value="

mvc前台用@写代码时如何获取input的value值或js的变量值

问题描述 mvc前台用@写代码时如何获取input的value值或js的变量值 <script> $('input[name=c1]').change(function () { var value1 = $(this).val(); var value2 = $('input[name=c2]').val(); var value3 = $('input[name=c3]') if (value2 != """") { value3.val(@Calc

批量修改标签css样式以input标签为例_jquery

$("input[style]").each(function(){ $(this).css("border-width","1"); $(this).css("background-color","#A9A9A9"); }); 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索css样式 input标签 css input 样式.cs

HTML标签和CSS个人总结

一.HTML标签 HTML标签可以分为块标签,内联标签和内联块. 1.块标签block:div p h1-h6 ul li ol li dl dd dt . 特点:a.支持任何的样式.b.独占一行.c.不设置宽度时(不等于width:0;),宽度默认充满整行. 2.内联标签inline: a span time em mark 特点:a.不支持宽高(设置后无效).b.可以在一行显示.c.宽度由内容撑开.d.换行被解析成空格(标签内容和标签之间的换行都是解析成空格).e.无法设置上下margin

不要再在JavaScript中写 CSS了

本文作者是 react-css-modules 和 babel-plugin-react-css-modules 的作者.并不是对 CSS in JavaScript: The future of component-based styling,或是使用样式组件的反对,而是一种补充,web 开发者要了解自己的需求,明白自己使用 styled-components 的真正原因. 9 个谎言 CSS 不应随意放置.许多项目选择将样式写在 JavaScript 中的理由不对.本文列出了常见的误解,以及

使用jQuery给input标签设置默认值_jquery

由于项目需求,简单地写了一个input默认值设置,实现给.form中所有的input设置默认值的方法. <!DOCTYPE HTML> <html> <head> <meta charset="utf-8"> <title>input默认值设置</title> <script type="text/javascript" src="http://apps.bdimg.com/li

htlm+css-我用&amp;amp;lt;span&amp;amp;gt;标签写的文字为什么显示不出来?

问题描述 我用<span>标签写的文字为什么显示不出来? 我是从17素材上下载的代码源文件,想改成我们公司的,可是我会的不多,还请大师帮帮忙,拜托拜托 解决方案 你确认你改的地方对吗,或者是不是有什么动态设置的地方 解决方案二: 有么有代码啊,你看看是不是css属性设置隐藏了还是什么的 解决方案三: 发代码看看,比较好定位问题 解决方案四: 有可能跟你文件中的css部分有关.css属性把span隐藏掉了或者css把span调成白色了 或者漏了结束标签?***** 解决方案五: 对的,我再次把那