Neat and modern main section with CSS3

Tutorials

Last week we started making the very neat header section. This article was very popular (we got a lot of reviews). So today I decided to continue begun design. Today we look at the most basic elements of a page such as blocks and forms. I think that if we make all the blocks with the same styles – it would be boring, so (for a change), I prepared four types of blocks with custom headers and footers. And, as a demonstration of the form design – I made the contact form. Now, this is complete design of a single page.

Before we start, I would like to show you what we are going to build today:

result of main section


Live Demo

[sociallocker]

download in package

[/sociallocker]


Now, let’s download the sources and start coding !


Step 1. HTML

In the beginning, we have to add our main section with all mentioned elements:

index.html

01 <!-- main content section -->
02 <div class="main">
03     <!-- left column -->
04     <div class="left">
05         <!-- block element -->
06         <div class="block">
07             <h3 class="head">Header</h3>
08             <div>Some extra content</div>
09             <h3 class="foot">Footer</h3>
10         </div>
11         <div class="block">
12             <h3 class="head head_a">Header A</h3>
13             <div>Some extra content</div>
14             <h3 class="foot foot_a">Footer A</h3>
15         </div>
16         <div class="block block_a">
17             <h3 class="head">Header</h3>
18             <div>Block A: Some extra content</div>
19             <h3 class="foot">Footer</h3>
20         </div>
21         <div class="block block_b">
22             <h3 class="head">Header</h3>
23             <div>Block B: Some extra content</div>
24             <h3 class="foot">Footer</h3>
25         </div>
26         <div class="block block_c">
27             <h3 class="head">Header</h3>
28             <div>Block C: Some extra content</div>
29             <h3 class="foot">Footer</h3>
30         </div>
31     </div>
32     <!-- right column -->
33     <div class="right">
34         <div class="block">
35             <h3 class="head head_b">Header B</h3>
36             <div>Some extra content</div>
37             <h3 class="foot foot_b">Footer B</h3>
38         </div>
39         <div class="block">
40             <h3 class="head head_c">Header C</h3>
41             <div>Some extra content</div>
42             <h3 class="foot foot_c">Footer C</h3>
43         </div>
44         <div class="block">
45             <h3 class="head head_b">Contact us block</h3>
46             <div>
47                 <form>
48                     <fieldset>
49                         <legend>Contact us form</legend>
50                         <p><label for="name">Your name:</label> <input type="text" id="name" value=""></p>
51                         <p><label for="email">Your email:</label> <input type="text" id="email" value=""></p>
52                         <p><label for="text">Message:</label><textarea id="text" cols="33" rows="4"></textarea></p>
53                         <input type="submit" value="Submit">
54                     </fieldset>
55                 </form>
56             </div>
57         </div>
58     </div>
59 </div>
60 <div class="footer">
61     Footer section
62 </div>

As you see – everything is very easy. There are only 2 columns in the main section and one footer element. And, there are various blocks in every section. By default, if you like to build a block – you have to use ‘block’ as a class name, if you like to change design of this block – you can add another class name (block_a, block_b or block_c). It will paint your block into different colors. You can also use headers and footers in your blocks (H3 elements with a class name ‘head’ or ‘foot’). And again, there are several classes available to customize headers or footers (head_a, head_b, head_c, foot_a, foot_b and foot_c). In the end – you can see the ordinary contact form.

Step 2. CSS

css/main.css

And now, the most important step – stylization. First of all – main layout styles (for columns):

01 /* main layout */
02 .main {
03     margin0 auto 25px;
04     overflowhidden;
05     positionrelative;
06     width1000px;
07 }
08 .left {
09     floatleft;
10     width60%;
11 }
12 .right {
13     floatright;
14     width38%;
15 }

Here are styles for our custom blocks:

01 /* blocks */
02 .block {
03     background: -webkit-linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
04     background: -moz-linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
05     background: linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
06     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F7F7F7', endColorstr='#F4F4F4',GradientType=0 );
07     border-color: rgba(0000.1) rgba(0000.1) rgba(0000.2);
08     border-image: none;
09     border-radius: 5px 5px 5px 5px;
10     border-stylesolid;
11     border-width1px;
12     box-shadow: 0 1px 0 #FFFFFF inset;
13     color#56595E;
14     margin-bottom20px;
15     padding20px;
16 }
17 .block_a, .block_b, .block_c {
18     box-shadow: 0 1px 0 transparent inset;
19 }
20 .block_a {
21     background: -webkit-linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
22     background: -moz-linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
23     background: linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
24     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F1F1F1', endColorstr='#ECEBEC',GradientType=0 );
25 }
26 .block_b {
27     background: -webkit-linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
28     background: -moz-linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
29     background: linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
30     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#55A6F1', endColorstr='#3F96E5',GradientType=0 );
31 }
32 .block_c {
33     background: -webkit-linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
34     background: -moz-linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
35     background: linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
36     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5B5D63', endColorstr='#4D5055',GradientType=0 );
37 }
38 /* block headers and footers */
39 .block .head {
40     font-size18px;
41     line-height15px;
42     text-shadow0 1px 0 #FFFFFF;
43     margin0 0 15px;
44 }
45 .block .foot {
46     font-size16px;
47     line-height14px;
48     text-shadow0 1px 0 #FFFFFF;
49     margin15px 0 0;
50 }
51 .block .head_a, .block .head_b, .block .head_c {
52     border-bottom1px solid #D1D1D1;
53     border-radius: 5px 5px 0 0;
54     box-shadow: 0 1px 0 #FFFFFF inset;
55     margin-20px -20px 10px;
56     padding13px 15px 11px;
57 }
58 .block .foot_a, .block .foot_b, .block .foot_c {
59     border-radius: 0 0 5px 5px;
60     border-top1px solid #D1D1D1;
61     box-shadow: 0 1px 0 #FFFFFF inset;
62     margin10px -20px -20px;
63     padding13px 15px 11px;
64 }
65 .block .head_a, .block .foot_a {
66     background: -webkit-linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
67     background: -moz-linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
68     background: linear-gradient(#F1F1F1#ECEBECrepeat scroll 0 0 transparent;
69     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F1F1F1', endColorstr='#ECEBEC',GradientType=0 );
70 }
71 .block .head_b, .block .foot_b {
72     background: -webkit-linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
73     background: -moz-linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
74     background: linear-gradient(#55A6F1#3F96E5repeat scroll 0 0 transparent;
75     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#55A6F1', endColorstr='#3F96E5',GradientType=0 );
76     box-shadow: 0 1px 0 #3F96E5 inset;
77     color#FFFFFF;
78     text-shadow0 -1px 0 rgba(0000.3);
79 }
80 .block .head_c, .block .foot_c {
81     background: -webkit-linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
82     background: -moz-linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
83     background: linear-gradient(#5B5D63#4D5055repeat scroll 0 0 transparent;
84     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#5B5D63', endColorstr='#4D5055',GradientType=0 );
85     box-shadow: 0 1px 0 #4D5055 inset;
86     color#FFFFFF;
87     text-shadow0 -1px 0 rgba(0000.3);
88 }
89 .block_b .head, .block_c .head,
90 .block_b .foot, .block_c .foot,
91 .block_b > div, .block_c > div {
92     color#FFFFFF;
93     text-shadow0 -1px 0 rgba(0000.3);
94 }

Finally, we need is to define styles for our ‘contact us’ form:

01 /* forms */
02 .main form fieldset {
03     backgroundnone repeat scroll 0 0 #F1F1F1;
04     border1px solid #CCCCCC;
05     border-radius: 5px 5px 5px 5px;
06     box-shadow: 0 1px 0 #FFFFFF;
07     padding15px;
08 }
09 .main form legend {
10     color#999999;
11     font-size18px;
12     padding0 15px;
13 }
14 .main form p {
15     margin-bottom10px;
16     overflowhidden;
17 }
18 .main form input, .main form select, .main form textarea {
19     background-color#F9F9F9;
20     border1px solid #CCCCCC;
21     border-radius: 4px 4px 4px 4px;
22     box-shadow: 0 1px 0 rgba(0000.05inset0 1px 0 #FFFFFF;
23     color#999999;
24     padding6px;
25     resize: none;
26     text-shadow0 1px 0 #FFFFFF;
27 }
28 .main form input[type="text"], .main form input[type="password"], .main form select, .main form textarea {
29     min-width200px;
30 }
31 .main form textarea {
32     margin-top10px;
33 }
34 .main form input[type="text"]:focus, .main form input[type="password"]:focus, .main form select:focus, .main form textarea:focus {
35     backgroundnone repeat scroll 0 0 #FFFFFF;
36     color#444444;
37     outlinemedium none;
38     text-shadownone;
39 }
40 .main form button, .main form input[type="button"], .main form input[type="submit"] {
41     background: -webkit-linear-gradient(to bottom#F9F9F9#F7F7F7repeat scroll 0 0 transparent;
42     background: -moz-linear-gradient(to bottom#F9F9F9#F7F7F7repeat scroll 0 0 transparent;
43     background: linear-gradient(to bottom#F9F9F9#F7F7F7repeat scroll 0 0 transparent;
44     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F9F9F9', endColorstr='#F7F7F7',GradientType=0 );
45     border-color#E0E0E0 #E0E0E0 #CDCDCD;
46     border-image: none;
47     border-radius: 4px 4px 4px 4px;
48     border-stylesolid;
49     border-width1px;
50     box-shadow: 0 1px 0 #FFFFFF inset;
51     color#444444;
52     cursorpointer;
53     padding6px 10px;
54 }
55 .main form button:hover, .main form input[type="button"]:hover, .main form input[type="submit"]:hover {
56     background: -webkit-linear-gradient(to bottom#59A8F3#479CEBrepeat scroll 0 0 transparent;
57     background: -moz-linear-gradient(to bottom#59A8F3#479CEBrepeat scroll 0 0 transparent;
58     background: linear-gradient(to bottom#59A8F3#479CEBrepeat scroll 0 0 transparent;
59     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#59A8F3', endColorstr='#479CEB',GradientType=0 );
60     border-color#3990DB #3990DB #2F78B7;
61     border-stylesolid;
62     border-width1px;
63     box-shadow: 0 1px 0 rgba(2552552550.2inset;
64     color#FFFFFF;
65     text-shadow0 -1px 0 rgba(0000.3);
66 }
67 .main form button:active, .main form input[type="button"]:active, .main form input[type="submit"]:active {
68     background: -webkit-linear-gradient(to bottom#3F96E5#55A6F1repeat scroll 0 0 transparent;
69     background: -moz-linear-gradient(to bottom#3F96E5#55A6F1repeat scroll 0 0 transparent;
70     background: linear-gradient(to bottom#3F96E5#55A6F1repeat scroll 0 0 transparent;
71     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#3F96E5', endColorstr='#55A6F1',GradientType=0 );
72     border-color#3990DB #3990DB #2F78B7;
73     border-stylesolid;
74     border-width1px;
75     box-shadow: 0 1px 0 rgba(2552552550.2inset;
76     color#FFFFFF;
77     text-shadow0 -1px 0 rgba(0000.3);
78 }

If you want to put something into a footer, you can use next styles for footer:

01 /* footer block */
02 .footer {
03     background: -webkit-linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
04     background: -moz-linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
05     background: linear-gradient(#F7F7F7#F4F4F4repeat scroll 0 0 padding-box transparent;
06     filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#F7F7F7', endColorstr='#F4F4F4',GradientType=0 );
07     border-color: rgba(0000.1) rgba(0000.1) rgba(0000.2);
08     border-image: none;
09     border-radius: 5px 5px 5px 5px;
10     border-stylesolid;
11     border-width1px;
12     box-shadow: 0 1px 0 #FFFFFF inset;
13     color#666666;
14     font-size22px;
15     font-weightbold;
16     line-height31px;
17     margin0 auto 20px;
18     overflowhidden;
19     padding20px;
20     positionrelative;
21     text-aligncenter;
22     text-shadow0 1px 0 #FFFFFF;
23     width960px;
24 }

Live Demo

Conclusion

That’s all. I hope that we have just made a real nice example for our growing experience. I’m sure that it will be very useful for you. Good luck and welcome back.

Rate article