[RESOLVED] Input file styling
Hi,
I have been trying to get this tutorial blog to work all day. So far I cannot get it to work and look as planned. Could someone show me a working example please.
http://www.quirksmode.org/dom/inputfile.html
I am using in in VS2010 in a aspx page
so far I have a cees file with this in it
Code:
form.example input:focus {
background-color: transparent;
}
form.example div.fileinputs {
position: relative;
height: 30px;
width: 280px;
}
form.example input.file {
width: 300px;
margin: 0;
}
form.example input.file.hidden {
position: relative;
text-align: right;
-moz-opacity:0 ;
filter:alpha(opacity: 0);
opacity: 0;
z-index: 2;
}
form.example div.fakefile {
position: absolute;
top: 0px;
left: 0px;
width: 350px;
padding: 0;
margin: 0;
z-index: 1;
line-height: 90%;
}
And the aspx like this but it renders wrong
HTML Code:
form.example div.fakefile input {
margin-bottom: 5px;
margin-left: 0;
}
HTML Code:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="example.aspx.cs" Inherits="example" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<link href="css/2010.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var W3CDOM = (document.createElement && document.getElementsByTagName);
function initFileUploads() {
if (!W3CDOM) return;
var fakeFileUpload = document.createElement('div');
fakeFileUpload.className = 'fakefile';
fakeFileUpload.appendChild(document.createElement('input'));
var image = document.createElement('img');
image.src = '/images/buttons/browse.png';
fakeFileUpload.appendChild(image);
var x = document.getElementsByTagName('input');
for (var i = 0; i < x.length; i++) {
if (x[i].type != 'file') continue;
if (x[i].parentNode.className != 'fileinputs') continue;
x[i].className = 'file hidden';
var clone = fakeFileUpload.cloneNode(true);
x[i].parentNode.appendChild(clone);
x[i].relatedElement = clone.getElementsByTagName('input')[0];
x[i].onchange = x[i].onmouseout = function () {
this.relatedElement.value = this.value;
}
}
}
</script>
</head>
<body>
<form action="#" class="example">
<div class="fileinputs">
<input type="file" class="file hidden" noscript="true" />
<div class="fakefile">
<input />
<img src="images/buttons/browse.png" alt="Browse" />
</div>
</div>
</form>
</body>
</html>