HTML控件篇 -- input

摘要:
并且通常情况下,我们会对inputfile进行美化,去掉右边的输入框,所以,出现了IE下有手型,chrome下没手型的问题。一下来解决这个问题。直接上代码:HTML代码:12选择文件3CSS代码:1.div-upload{2padding:4px10px;3height:20px;4line-height:20px;5position:relative;6cursor:pointer;7color:#888;8background:#fafafa;9border:1pxsolid#ddd;10border-radius:4px;11overflow:hidden;12display:inline-block;13*display:inline;14*zoom:115}16.div-uploadinput{17position:absolute;18font-size:100px;19right:0;20top:0;21opacity:0;22filter:alpha;23cursor:pointer24}25.div-upload:hover{26color:#444;27background:#eee;28border-color:#ccc;29text-decoration:none30}效果:--!截图的时候鼠标看不见。下面说一下个性css样式及原理。

1. 取消input提示框及自动填充:

<input type="text" autocomplete="off" />

处理chrome下自动填充黄底样式问题:

/*input样式特殊处理*/input::-webkit-outer-spin-button,
input::-webkit-inner-spin-button {-webkit-appearance:none;
}
input:-webkit-autofill {-webkit-box-shadow:0 0 0 1000px white inset;
}

2. 默认input提示语兼容处理:

<input type="text" placeholder="请输入内容" />

处理低版本IE浏览器placeholder不兼容方法:

添加如下Javascript:

1 $(function(){
2 if(!placeholderSupport()){   //判断浏览器是否支持 placeholder
3     $('[placeholder]').focus(function() {
4         var input = $(this);
5         if (input.val() == input.attr('placeholder')) {
6             input.val('');
7             input.removeClass('placeholder');
8 }
9     }).blur(function() {
10         var input = $(this);
11         if (input.val() == '' || input.val() == input.attr('placeholder')) {
12             input.addClass('placeholder');
13             input.val(input.attr('placeholder'));
14 }
15 }).blur();
16 };
17 })
18 functionplaceholderSupport() {
19     return 'placeholder' in document.createElement('input');
20 }

添加如下CSS:

input.placeholder{color:#aaaaaa;
}

3. 上传控件美化/添加手型 

通常情况下,<input type='file'>是不支持常规添加手型的效果的,即添加样式cursor:pointer;

同时,input,type=file在不同浏览器下表现的样式也是多种多样的,如下:

HTML控件篇 -- input第1张

图片摘自kukei的《HTML之上传控件“input=file”的美化》,他的文章中清楚的说明了美化input,type=file控件,

这里就不再重复。这里要提的是,如何为input=file添加手型样式,

因为在不同的浏览器下出现各种差异,所以在浏览器上表现也不同,例如:

在IE下:如果给input加上(cursor:pointer),那么左边输入框和右边的浏览按钮都会出现鼠标移动上去有手型;

chrome下:如果给input加(cursor:pointer),那么只有右边的输入框即上图的(No file chosen)部分有手型,按钮区域则不会出现手型。

并且通常情况下,我们会对inputfile进行美化,去掉右边的输入框,所以,出现了IE下有手型,chrome下没手型的问题。一下来解决这个问题。

直接上代码(不清楚的看看kukei的美化博客):

HTML代码:

1  <div class='div-upload'>
2         <input type="file">选择文件
3  </div>

CSS代码:

1 .div-upload {
2 padding:4px 10px;
3 height:20px;
4 line-height:20px;
5 position:relative;
6 cursor:pointer;
7 color:#888;
8 background:#fafafa;
9 border:1px solid #ddd;
10 border-radius:4px;
11 overflow:hidden;
12 display:inline-block;
13 *display:inline;
14 *zoom:1
15 }
16 .div-upload input {
17 position:absolute;
18 font-size:100px;
19 right:0;
20 top:0;
21 opacity:0;
22 filter:alpha(opacity=0);
23 cursor:pointer
24 }
25 .div-upload:hover {
26 color:#444;
27 background:#eee;
28 border-color:#ccc;
29 text-decoration:none
30 }

效果:

HTML控件篇 -- input第2张

- -!截图的时候鼠标看不见。反正是实现了。下面说一下个性css样式及原理。

这个例子中,就是在input,type=file外层套了一个div,设置position:relative;cursor:pointer(其他样式纯属喜好)

1 .div-upload {
2 position:relative;
3 cursor:pointer;
4  /*height: 20px;
5 line-height: 20px;
6 color: #888;
7 background: #fafafa;
8 border: 1px solid #ddd;
9 border-radius: 4px;
10 overflow: hidden;
11 display: inline-block;
12 *display: inline;
13 *zoom: 1*/
14 }

然后设置input为绝对位置,透明position:absolute;opacity: 0;filter: alpha(opacity=0);然后是个重要的:位置对其:top:0;right:0;

1 .div-upload input {
2 position:absolute;
3 font-size:100px;
4 right:0;
5 top:0;
6 opacity:0;
7 filter:alpha(opacity=0);
8 cursor:pointer
9 }

这样,就实现了给input,type=file控件添加移动上去手型的样式。

免责声明:文章转载自《HTML控件篇 -- input》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Android 关机问题快速定位MYSQL 8.0 sql_mode NO_AUTO_CREATE_USER 的问题下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Input标签与图片按钮水平对齐解决方法

昨日,小编的朋友就来咨询,说他也遇到了这个问题,并且使用margin、padding等Css语法,都没有解决。   解决方法其实很简单,我们只要加上vertical-align:middle属性就可以了。   来看实例:    提示:您可以先修改部分代码再运行 页面直接摆放一个input文本框与ImageButton图片按钮,但是发现没有对齐:  复...

mvc涉及到input设置了disabled

在做网站管理后台的用户修改功能时,由于当前用户修改个人信息时规定用户名不能修改,故使用了input标签的disabled属性,但是在提交数据后却发现用户名显示为空了。后来一查才知道input设置为disabled值时会有下面的限制:1、不能接收焦点;2、使用tab键时将被跳过;3、可能不是successful的。 解决方法是:可以使用readonly=”r...

Qt配置,载入html,Echart, 交互

  一、下载、安装、配置 a)      http://download.qt.io/archive/qt/5.9/5.9.0/ 官方网站下载合适的版本;   本次下载 qt-opensource-windows-x86-5.9.0.exe;并安装; b)      编译器下载,本次要用到MSVC的编译器,下载安装visual studio 2017 版本...

用Javascript进行HTML转义(分享)

  众所周知页面上的字符内容通常都需要进行HTML转义才能正确显示,尤其对于Input,Textarea提交的内容,更是要进行转义以防止javascript注入攻击。   通常的HTML转义主要是针对内容中的"<",">","&",以及空格、单双引号等。但其实还有很多字符也需要进行转义。具体的可以参考这篇文章。   ** 1、HTML转...

label和input表单的height问题

(col-xs-是指占据container的多少,不是指占据body的多少) (line-height的单位还可以是%和em,其中%是指为字体的%多少倍) (em可以精确到小数点后三位,可以说是很方便了) 1.row中的label和input放在一起的话,高度要给label和input,不要直接给row 因为input会有自带的padding,如果给row...

python程序练习题集

1.#输入a,b,c,d4个整数,计算a+b-c*d的结果 a=input("please input a nimber:") b=input("please input a number:") c=input("please input a number:") d=input("please input a number:") print a+b-c*d...