Responsive HTML5 Contact Form with JS Detection
| File Size: | 4.18 KB |
|---|---|
| Views Total: | 28184 |
| Last Update: | |
| Publish Date: | |
| Official Website: | Go to website |
| License: | MIT |
A flexible and responsive contact form built with HTML5 and CSS3 that include the following features:
- Html5 Placeholder attribute
- New HTML5 Input types
- HTML5 data-* attributes
- JavaScript feature detection
- HTML5 fallback setup
Markup
<form id="contact-form" action="/" method="post"> <div> <label> <span>Name: (required)</span> <input placeholder="Please enter your name" type="text" tabindex="1" required autofocus> </label> </div> <div> <label> <span>Email: (required)</span> <input placeholder="Please enter your email address" type="email" tabindex="2" required> </label> </div> <div> <label> <span>Telephone: (required)</span> <input placeholder="Please enter your number" type="tel" tabindex="3" required> </label> </div> <div> <label> <span>Website: (required)</span> <input placeholder="Begin with http://" type="url" tabindex="4" required> </label> </div> <div> <label> <span>Message: (required)</span> <textarea placeholder="Include all the details you can" tabindex="5" required></textarea> </label> </div> <div> <button name="submit" type="submit" id="contact-submit">Send Email</button> </div> </form>
CSS
#contact-form input[type="text"],
#contact-form input[type="email"],
#contact-form input[type="tel"],
#contact-form input[type="url"],
#contact-form textarea,
#contact-form button[type="submit"] {
font:400 12px/12px "Helvetica Neue", Helvetica, Arial, sans-serif;
}
#contact-form {
text-shadow:0 1px 0 #FFF;
border-radius:4px;
-webkit-border-radius:4px;
-moz-border-radius:4px;
background:#F9F9F9;
padding:25px;
}
#contact-form h3 {
color:#991D57;
display:block;
font-size:28px;
}
#contact-form h4 {
margin:5px 0 15px;
display:block;
font-size:13px;
}
#contact-form label span {
cursor:pointer;
color:#991D57;
display:block;
margin:5px 0;
font-weight:900;
}
#contact-form input[type="text"],
#contact-form input[type="email"],
#contact-form input[type="tel"],
#contact-form input[type="url"],
#contact-form textarea {
width:100%;
box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
-webkit-box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
-moz-box-shadow:inset 0 1px 2px #DDD, 0 1px 0 #FFF;
border:1px solid #CCC;
background:#FFF;
margin:0 0 5px;
padding:10px;
border-radius:5px;
}
#contact-form input[type="text"]:hover,
#contact-form input[type="email"]:hover,
#contact-form input[type="tel"]:hover,
#contact-form input[type="url"]:hover,
#contact-form textarea:hover {
-webkit-transition:border-color 0.3s ease-in-out;
-moz-transition:border-color 0.3s ease-in-out;
transition:border-color 0.3s ease-in-out;
border:1px solid #AAA;
}
#contact-form textarea {
height:100px;
max-width:100%;
}
#contact-form button[type="submit"] {
cursor:pointer;
width:100%;
border:none;
background:#991D57;
background-image:linear-gradient(bottom, #8C1C50 0%, #991D57 52%);
background-image:-moz-linear-gradient(bottom, #8C1C50 0%, #991D57 52%);
background-image:-webkit-linear-gradient(bottom, #8C1C50 0%, #991D57 52%);
color:#FFF;
margin:0 0 5px;
padding:10px;
border-radius:5px;
}
#contact-form button[type="submit"]:hover {
background-image:linear-gradient(bottom, #9C215A 0%, #A82767 52%);
background-image:-moz-linear-gradient(bottom, #9C215A 0%, #A82767 52%);
background-image:-webkit-linear-gradient(bottom, #9C215A 0%, #A82767 52%);
-webkit-transition:background 0.3s ease-in-out;
-moz-transition:background 0.3s ease-in-out;
transition:background-color 0.3s ease-in-out;
}
#contact-form button[type="submit"]:active {
box-shadow:inset 0 1px 3px rgba(0,0,0,0.5);
}
#contact-form input:focus,
#contact-form textarea:focus {
outline:0;
border:1px solid #999;
}
::-webkit-input-placeholder {
color:#888;
}
:-moz-placeholder {
color:#888;
}
::-moz-placeholder {
color:#888;
}
:-ms-input-placeholder {
color:#888;
}
Custom JavaScript feature detection
(function() {
// Create input element for testing
var inputs = document.createElement('input');
// Create the supports object
var supports = {};
supports.autofocus = 'autofocus' in inputs;
supports.required = 'required' in inputs;
supports.placeholder = 'placeholder' in inputs;
// Fallback for autofocus attribute
if(!supports.autofocus) {
}
// Fallback for required attribute
if(!supports.required) {
}
// Fallback for placeholder attribute
if(!supports.placeholder) {
}
// Change text inside send button on submit
var send = document.getElementById('contact-submit');
if(send) {
send.onclick = function () {
this.innerHTML = '...Sending';
}
}
})();
This awesome jQuery plugin is developed by unknown. For more Advanced Usages, please check the demo page or visit the official website.






