Стилизация поля выбора файла

Скопировано
<div class='file_drop_area'>
	<span class='btn'>Выберите файл</span>
	<span class='file_msg'>или перетащите сюда</span>
	<input type='file' class='file_input'>
</div>
Показать код
Скопировано
body {
	font: 16px/1 Arial,sans-serif;
	padding: 50px 20px;
}
.file_drop_area {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 900px;
	height: 200px;
	border: 1px solid #777;
}
.file_drop_area.active {
	background: cornsilk;
}
.file_input {
	position: absolute;
	left: 0;
	top: 0;
	height: 100%;
	width: 100%;
	cursor: pointer;
	opacity: 0;
}
.file_input:focus {
	outline: none;
}
.btn {
	display: inline-block;
	padding: 5px 10px;
	margin-right: 20px;
	font-weight: bold;
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
	text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
	-webkit-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), inset 0 0 6px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.4);
	-moz-box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), inset 0 0 6px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.4);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.2), inset 0 0 6px 0 rgba(255, 255, 255, 0.3), 0 1px 2px rgba(0, 0, 0, 0.4);
	background: #f6f6f6;
	background: -webkit-gradient(linear, left top, left bottom, from(#f6f6f6), to(#d4d4d4));
	background: -webkit-linear-gradient(#f6f6f6, #d4d4d4);
	background-image: -moz-linear-gradient(top, #f6f6f6, #d4d4d4);
	background-image: -moz-gradient(top, #f6f6f6, #d4d4d4);
	border: 1px solid #a1a1a1;
}
Показать код
Скопировано
jQuery(function($){
	
	var $fileInput = $( '.file_input' );
	var $droparea = $( '.file_drop_area' );
	
	// выделяем область визуально при активации
	$fileInput.on( 'dragenter click', function() {
		$droparea.addClass('active');
	});
	
	// назад к нормальному состоянию
	$fileInput.on( 'dragleave drop', function() {
		$droparea.removeClass( 'active' );
	});
	
	// при выборе файла подставляем его имя
	$fileInput.on( 'change', function() {
		$droparea.removeClass( 'active' );
		var fileName = $(this).val().split('\\').pop();
		var text = fileName ? fileName : 'или перетащите сюда';
		$(this).prev().text( text );
	});
});
Показать код