vue input标签隐藏使用label自定义样式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vue input标签隐藏使用label自定义样式相关的知识,希望对你有一定的参考价值。

参考技术A 为了做一个自定义的input输入框,需要自定义显示数据,主要是显示手机号码样式,电话号码之间有空格,input标签这样做就比较复杂。通过为input设置属性id,在label标签中设置for=id使label文本与对应的inpu他结合起来。label标签包裹input标签,点击label时,label两次响应,即label本身触发和input触发后冒泡到label上。label标签使用过滤器把数据重新组装做显示,input的value也不会受到影响。光标就需要用css动画做出来。

过滤器

css

自定义input file样式

 实现方法一:

自定义input file样式;一般都是通过隐藏input,通过定义label来实现。这种做法要注意的是label的for属性要指定input对应的id;

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<style type="text/css">
			#file {
				display: none;
			}
			label {
				padding: 6px 15px;
				border-radius: 18px;
				background: #2F9DEA;
				color: #FFF;
				border: 1px solid #49A9ED;
				box-shadow: inset 0px 0px 3px #FFF;
			}
			label:focus,
			label:active {
				box-shadow: none;
			}
		</style>
	</head>
	<body>
		<div>
			<label for="file">
				<input type="file" id="file" />上传文件
			</label>			
		</div>
	</body>
</html>

 效果如下:

点击后效果:

实现方法二:

<style type="text/css">
/*a  upload */
.a-upload {
	padding: 4px 10px;
	height: 20px;
	line-height: 20px;
	position: relative;
	cursor: pointer;
	color: #888;
	background: #fafafa;
	border: 1px solid #ddd;
	border-radius: 4px;
	overflow: hidden;
	display: inline-block;
	*display: inline;
	*zoom: 1
}

.a-upload  input {
	position: absolute;
	font-size: 100px;
	right: 0;
	top: 0;
	opacity: 0;
	filter: alpha(opacity = 0);
	cursor: pointer
}

.a-upload:hover {
	color: #444;
	background: #eee;
	border-color: #ccc;
	text-decoration: none
}

.file {
	position: relative;
	display: inline-block;
	background: #D0EEFF;
	border: 1px solid #99D3F5;
	border-radius: 4px;
	padding: 4px 12px;
	overflow: hidden;
	color: #1E88C7;
	text-decoration: none;
	text-indent: 0;
	line-height: 20px;
}

.file input {
	position: absolute;
	font-size: 100px;
	right: 0;
	top: 0;
	opacity: 0;
}

.file:hover {
	background: #AADFFD;
	border-color: #78C3F3;
	color: #004974;
	text-decoration: none;
}
</style>

  

<div>
	<a href="javascript:void(0);" class="a-upload"> <input type="file"
		name="" id="">点击这里上传文件
	</a>

	<a href="javascript:void(0);" class="file">选择文件 <input type="file"
		name="" id="">
	</a>
</div>

  效果:

 

以上是关于vue input标签隐藏使用label自定义样式的主要内容,如果未能解决你的问题,请参考以下文章

input[type="radio"]自定义样式

Form生成的label标签详解

自定义input file样式

自定义checkbox样式

django为Form生成的label标签添加class

自定义checkbox