Monday, 16 July 2012

Beginners Can Learn Web Design Online



Learn web design online and you save both time and money while making a smart investment in yourself. Whether you are looking to learn a new skill that will allow you to earn a good income or whether you are looking to learn how to create your own website for your personal or professional use. Getting the training that you need to master this craft is the right first step to take.


When you choose to learn web design online you are choosing the most cost effective way to increase your professional knowledge, skills and abilities. Everyone knows that having a high quality web design is a crucial part of having an attractive and appealing website.


Without an attractive, functional and search engine friendly web design a website is certain to fail. This is one of the main reasons why it is so important that you learn these skills for yourself.


By choosing to learn web design online you will be able to learn the disciplines, technologies and tools needed to be able to create your own personally designed web pages. And if you plan on having your own website then you will be able to make any and all changes or improvements that may be needed to help you grow your business and increase your income.


Many website owners may start an online business by paying someone else to design or create their website for them and end up wishing that they taken the time to learn these key online skills themselves.


It can become a financial nightmare to always have to pay someone else to make the changes or improvements that you need made on your website to grow your business. However when you take the time to learn web design online, this can be a skill that you can benefit from many times over.


Even if you are planning to work as a website developer for a company or as a freelancer, there will always be a need for talented people with well developed web design knowledge, skills and abilities.


As a result of choosing to learn web design online you will also be able to enjoy the following benefits:


1.) You will be able to reduce your cost of learning by as much as 80% over what a traditional institution might cost you.


2.) You will be able to learn at your own pace. This means that you can focus as little or as much time as you need to thoroughly learn, practice and absorb the material so that you fully understand everything being covered.


3.) You won’t have to deal with the extra hassles associated with taking classes at a traditional institution, things like getting up early in the morning to get dressed, rush through breakfast, pack a lunch, commute to class, and then deal with the commute home from class.


All of these things can take a big chunk of your time, which will only extend the amount of time it will take you to learn the design skills that you are interested in. By choosing to learn web design online you really are creating a win/win situation by saving both time and money.




You can find more information and tips for beginners on learn web design online at http://www.webmastercourse.com.



Article Source: http://EzineArticles.com/?expert=Bob_Pardue



Article Source: http://EzineArticles.com/6721699

Build an Awesome CSS Slider With Four Overlays

screenshot

Today’s project is a fun one. We’re going to build a standard CSS image slider with a twist: the visible image area will be divided into four distinct sections, each with a hidden message that is revealed when the user hovers over it.


The ultimate effect is pretty awesome and I think you’re going to like it a lot. Along the way we’ll play with some animations, transitions, positioning contexts and a lot more. Let’s dive in and get started!



Like the article? Be sure to subscribe to our RSS feed and follow us on Twitter to stay up on recent content.


Sneak Peek


If you’d like to sneak a look at the finished product before we build it, check out the link below.


Demo: Click here to launch the live demo.


Props to “How Do You Roll”


My inspiration for today’s tutorial comes from the sushi place where I plan on eating dinner tonight. I stopped by their website for directions and instantly wanted to see if I could replicate the effect on the home page. The restaurant is called How Do You Roll, feel free to go check out their awesome site.


HTML


Let’s get this project started! As always, the first thing we want to do is outline our basic HTML structure. This slider is comprised of one big image area that’s split into four vertical columns. Consequently, we require one wrapper div with a “slider” class and four inner divs, each with a “panel” class.




<div class="slider">
<div class="panel"></div>
<div class="panel"></div>
<div class="panel"></div>
<div class="panel"></div>
</div>



</ br>


This is our basic structure, but we need to flesh it out a little with some content. I want each panel to serve as both a source of information and a link. So the user should be able to hover, see what the panel is all about, and click to proceed to a different page. To accomplish this, we’ll toss in an h2 and a paragraph and wrap the whole dang thing in an anchor. It seems like a weird way to use an anchor, but it’s perfectly valid in HTML5.




<a href="#">
<div class="panel">
<h2>One</h2>
<p>Lorem ipsum dolor sit amet...</p>
</div>
</a>



</ br>


Now that we have an overall structure and the individual panel formation figured out, we put it all together and we have all the HTML that we’ll need for this project.




<div class="slider">
 
<a href="#">
<div class="panel">
<h2>One</h2>
<p>Lorem ipsum dolor sit amet...</p>
</div>
</a>
 
<a href="#">
<div class="panel">
<h2>Two</h2>
<p>Lorem ipsum dolor sit amet...</p>
</div>
</a>
 
<a href="#">
<div class="panel">
<h2>Three</h2>
<p>Lorem ipsum dolor sit amet...</p>
</div>
</a>
 
<a href="#">
<div class="panel">
<h2>Four</h2>
<p>Lorem ipsum dolor sit amet...</p>
</div>
</a>
 
</div>



</ br>


Starter Styles


To kick off our CSS, let’s get some of the generic stuff out of the way. First I threw in a little universal reset to get us all on the same page. Replace this with a better reset or normalization technique if you’re using this in a real project.


I also added a background texture and reset the link styles for the slider, just for good measure.




* {margin: 0; padding: 0;}
 
body {
background: #eee url(subtlenet2.png); /*http://subtlepatterns.com/?p=1341*/
}
 
.slider a {
text-decoration: none;
color: fff;
}



</ br>


Slider CSS


Now it’s time to style the slider div. Basically, we want to set a specific size for it, then give it a background image that is the same size. Then we’ll add some margins to center it, some border-radius to round the corners and a box-shadow to set it apart from the background a bit.


The big thing that you might miss in this chunk is the overflow:auto line. This is important because we want our panels to take on the rounded corner effect that we’re applying to the parent slider div.




.slider {
height: 400px;
width: 800px;
background: url(http://lorempixum.com/800/400/sports/8);
border-radius: 20px;
overflow: hidden;
margin: 50px auto;
 
-webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
}



</ br>


Progress Check


At this point, you should have a big image with rounded corners and a drop shadow along with a bunch of ugly, messy text, which we’ll fix in the next step!


screenshot

Panel CSS


Our slider container is looking sharp, now it’s time to put the panels in order. Given that our container is 800px by 400px, each panel needs to be set at 200px by 400px, meaning that each panel will occupy the full height and one quarter of the width. From there we just need to float them to the left and they’ll line up just like we want.


The interesting part here is that I’ve set the color and background to transparent, which makes the panels invisible. This is because we only want them to show up on hover. The default state should indeed be hidden.


The final step here is to add the CSS for a transition so that the panels fade into place when the user hovers. Notice that I actually declared two separate transitions separated by a comma (one for the color and one for the background-color).




.panel {
width: 200px;
height: 400px;
background: transparent;
color: transparent;
float: left;
overflow: hidden;
 
-webkit-transition: color 0.5s ease, background-color 0.5s ease;
-moz-transition: color 0.5s ease, background-color 0.5s ease;
-o-transition: color 0.5s ease, background-color 0.5s ease;
-ms-transition: color 0.5s ease, background-color 0.5s ease;
transition: color 0.5s ease, background-color 0.5s ease;
}



</ br>


Panel Typography


Next, it’s time to get the typography in order. Admittedly, I didn’t do this with the panels set to invisible but instead gave the elements a color, styled them and then reverted them back to hidden.


Make sure you style both the paragraph and the h2. I made the header big, bold and moved down from the top quite a bit. Both the header and the paragraph also get a set width of 150px, which makes it easy to center them in the space despite the left alignment.




.panel h2 {
font: bold 35px/1.5 Helvetica, Verdana, sans-serif;
width: 150px;
margin: 55px auto 0 auto;
}
 
.panel p {
font: 200 11px/1.5 Helvetica, Verdana, sans-serif;
width: 150px;
margin: 0 auto;
}



</ br>


Panel Hover


When the user hovers over one of our panels, I want it to become visible again. I do this by giving the background and text a color. I set the background to black, with a little transparency to let the underlying image show through, and the paragraph to white.




.panel:hover {
background: #000; /*for old browsers*/
background: rgba(0,0,0,0.8);
color: #fff;
}



</ br>


Progress Check


You should now have fully functioning panels! If this is all you were looking to achieve, you can stop here, no further work necessary. Even without the next step, it’s still a great effect.


screenshot

Animate The Background


This last step is completely optional, and mind you it won’t work at all on older browsers, but the original inspiration for this piece had an image slider in the background. We have a static image back there and we’re now going to go back and animate it.


To do this, we need to go back to the slider declaration block and add a few things. For starters, turn your single background into four background images, with the last being the same as the first so everything loops nicely.


Next, make sure that you set the background images to have no repeat and copy the position values shown below, which will line up the images in one long horizontal row.




.slider {
height: 400px;
width: 800px;
background: url(http://lorempixum.com/800/400/sports/8), url(http://lorempixum.com/800/400/sports/2), url(http://lorempixum.com/800/400/sports/3), url(http://lorempixum.com/800/400/sports/8);
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0px;
background-repeat: no-repeat;
border-radius: 20px;
overflow: hidden;
margin: 50px auto;
 
-webkit-animation: slider 15s infinite;
-moz-animation: slider 15s infinite;
-ms-animation: slider 15s infinite;
-o-animation: slider 15s infinite;
animation: slider 15s infinite;
 
-webkit-box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
box-shadow: 2px 2px 8px rgba(0,0,0,0.5);
}



</ br>


As you can see, I also threw in the animation CSS. First we name our animation (slider), then set the duration and number of iterations. To finish off the entire project, we need to define how that animation will work with keyframes. The code for this is confusing so let’s outline each step.



  • Step One: First background image visible

  • Step Two: Move everything to the left 800px, second background image visible

  • Step Three: Move everything to the left 800px, third background image visible

  • Step Four: Move everything to the left 800px, fourth background image visible (which is the same as the first image)


To split this up, we need to start at 0% and end at 100%, which leaves two steps in between. The easy solution is to make steps two and three at 33% and 66%. The math isn’t perfect, but it’s close enough. Notice how the images move over each time, bringing the next background into view.



  • 0%: background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;

  • 33% background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;

  • 66%: background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;

  • 100%: background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;


Now, this alone is going to make the slideshow constantly move, which we don’t want. What we want instead is for each slide to stay still for a few seconds before advancing. This is accomplished by adding in a few redundant steps so that the slides don’t advance until 10% before the next step.



  • 0%: background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;

  • 23%: background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;

  • 33% background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;

  • 56% background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;

  • 66%: background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;

  • 90%: background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;

  • 100%: background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;


Now that we’ve got the processed outlined, we can make it happen with CSS. This requires a ton of code for the various browsers but it’s the only way we can pull it off so we’ll just have to live with it.




@keyframes "slider" {
0% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
23% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
33% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
56% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
66% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
90% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
100% {
background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;
}
 
}
 
@-moz-keyframes slider {
0% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
20% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
33% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
56% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
66% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
90% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
100% {
background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;
}
 
}
 
@-webkit-keyframes "slider" {
0% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
20% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
33% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
56% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
66% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
90% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
100% {
background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;
}
 
}
 
@-ms-keyframes "slider" {
0% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
20% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
33% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
56% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
66% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
90% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
100% {
background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;
}
 
}
 
@-o-keyframes "slider" {
0% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
20% {
background-position: 0px 0px, 800px 0px, 1600px 0px, 3200px 0;
}
33% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
56% {
background-position: -800px 0px, 0px 0px, 800px 0px, 1600px 0;
}
66% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
90% {
background-position: -1600px 0px, -800px 0px, 0px 0px, 800px 0;
}
100% {
background-position: -3200px 0px, -1600px 0px, -800px 0px, 0px 0;
}
 
}



</ br>


See It In Action!


We’re all finished! Now it’s time to have one last look at the demo.


Demo: Click here to launch the live demo.


screenshot

Conclusion


I hope you enjoyed building this fun little slider as much as I did. I love how it represents a slight tweak on an old idea. It’s quite practical and really allows you to take your sliders one step further.


Leave a comment below and let us know what you think. Have you seen a slider split up like this before? How would you make it better?

Pull Off Awesome Scroll Effects With Stroll.js

screenshot

Scrolling effects are all the rage these days. As the user moves down the page, content does more than move up the screen, it comes alive and becomes more interesting. Unfortunately, there’s no easy way to pull these effects off with pure CSS. If you don’t know JavaScript, you’re out of luck.


That’s where Stroll.js comes in. It’s a super easy to implement library that makes applying mind-boggling scroll effects a breeze. All you have to do is paste in a couple of brief lines of JavaScript, the rest is all handled with HTML and CSS. Keep reading and I’ll show you how it works.



Like the article? Be sure to subscribe to our RSS feed and follow us on Twitter to stay up on recent content.


Meet Stroll.js


Stroll.js is a neat little JavaScript library that brings a bunch of eye-catching animations to the scroll action on list items. The idea is that you have a group of items in a scrollable list and you use Stroll.js to make browsing that list more interesting.


screenshot

The project home page (shown above) has a bunch of demos that you can try out to see the types off effects that are included. The animations themselves are actually built with simple CSS3 transformations so you should easily be able to add to and customize the library with your own ideas.


Let’s Build a Demo!


Every time I come across a cool project like Stroll.js, I immediately want to dive in, kick the tires and see how it all works. Reading boring documentation is all well and fine, but I really can’t get a feel for something like this until I try it myself. That’s what we’re going to be doing today.


Demo: Click here to launch.


HTML


To start off, we know we’re going to need a list because that’s what Stroll.js is all about: animating list scrolls. The list items on the demo were just a simple line of text, but I want to push it much further to see how Stroll.js handles it. We’ll make each list item contain an image, headline and paragraph.


If you use Zen Coding like I do, type the following into your HTML editor (otherwise, just type out the next part manually).




ul>li>img+h2+p



</ br>


As you can see, we started with an unordered list, then gave it a list-item child, which contains the three elements we just said that we wanted. When you hit tab or whatever shortcut your editor uses, this will expand into the following HTML:




<ul>
<li>
<img src="" >
<h2></h2>
<p></p>
</li>
</ul>



</ br>


If we dig around in the documentation, we can see that the type of effect that occurs is based on the class applied to the unordered list. To start, I’ll go with the “flip” effect. Also, the JavaScript will target the list’s parent item, so we’ll need to add one of those.




<div id="main">
<ul class="flip">
<li>
<img src="" >
<h2></h2>
<p></p>
</li>
</ul>
</div>



</ br>


Next, we’ll need to flesh out the content within the list item. I’ll toss in an image, headline and some placeholder paragraph text.




<div id="main">
<ul class="flip">
<li>
<img src="http://lorempixum.com/200/200/city/1">
<h2>Headline One</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
</ul>
</div>



</ br>


Finally, we’ll expand our list to include a total of eight list items. This doesn’t seem like a lot but they’ll be nice and large so we’ll have plenty of room for scrolling.




<div id="main">
<ul class="flip">
<li>
<img src="http://lorempixum.com/200/200/city/1">
<h2>Headline One</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/2">
<h2>Headline Two</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/3">
<h2>Headline Three</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/4">
<h2>Headline Four</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/5">
<h2>Headline Five</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/1">
<h2>Headline Six</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/1">
<h2>Headline Seven</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
<li>
<img src="http://lorempixum.com/200/200/city/8">
<h2>Headline Eight</h2>
<p>Lorem ipsum dolor sit...</p>
</li>
</ul>
</div>



</ br>


Progress Check


You should have all your content on the page at this point. It’ll look like a big mess right now but we’ll fix that in the next step with CSS.


screenshot

CSS


Now that we’ve got our content in order, it’s time to prettify it with some CSS styling. This will be accomplished with four distinct categories of styles: basic, images, typography and list.


Basic


There’s nothing special here, just a lazy man’s reset and a background color for the body. Obviously, in a real project you’ll implement a more detailed and specific reset but for demo purposes there’s no reason to dive into something that deep.




/*Basic Styles*/
* {margin: 0px; padding: 0px;}
 
body {
background: #333;
}



</ br>


Images


For the image styles, we’ll add a margin of 20px to give them some breathing room and a border-radius of 50% (look ma, no browser prefixes!) to make the thumbnails perfectly round. Also, we’ll float the images left so that the text appears along side them rather than under them.




/*Images*/
img {
float: left;
margin-right: 20px;
border-radius: 50%;
}



</ br>


Typography


For the type, we need to define our h2 and paragraph styles. I used shorthand to give the header a bold, sans-serif treatment and the paragraph a normal weight, serif treatment. Also notice that the paragraph has a slightly lighter color to help differentiate the two visually.




/*Type*/
h2 {
margin-top: 25px;
font: bold 30px Helvetica, Arila, sans-serif;
color: #000;
}
 
p {
font: 13px/1.5 Georgia, Times, serif;
color: #757575;
}



</ br>


List


Now it’s time for the biggest chunk of CSS, the final piece that will make our list items look perfect. Set the position to relative, the width to 800px and the height to 510px. Then apply some margins and padding and be sure the list-style is set to none.


The thing that you really have to get right is the overflow. Set the overflow-x to hidden and the overflow-y to scroll that way your list will actually be scrollable.




/*List Styles*/
ul {
position: relative;
width: 800px;
height: 510px;
margin: 50px auto;
padding: 0;
list-style: none;
overflow-x: hidden;
overflow-y: scroll;
}



</ br>


Now that we have the unordered list styles worked out, it’s time to drill down and set the list-item styles. Once again, set the position (relative), height (200px), and padding (20px). Then set the colors for the background and type, set the overflow to auto and the z-index to two.


The tricky part here is that second selector. I’m using nth-child(odd) to vary the color of every other list-item, which helps each stand out from the next. This isn’t supported well on IE, but neither is Stroll.js so we’ll use it anyway. However, always remember that you can use Selectivizr to increase your selector support. Ultimately, if the scrolling effects aren’t widely supported, it’s no big deal (they’re pure eye candy), but you should make the other visual styling as cross-browser as possible.




ul li {
position: relative;
height: 200px;
padding: 20px;
background: #eee;
color: #252525;
z-index: 2;
overflow: auto;
}
 
ul li:nth-child(odd) {
background: #fff;
}



</ br>


Progress Check


Most of our work is done! Our list looks fantastic, all that’s left to do is bring it to life with a tiny bit of JavaScript. It won’t hurt a bit, I promise.


screenshot

JavaScript


Now, I promised when we started this project that you didn’t need to know JavaScript to proceed. However, here I am throwing JavaScript at you! What gives? The truth is, you do need a tiny bit of JS, but a copy and paste action will work just fine and it’s easy to customize for your project.


Toss this code in at the end of the body in your HTML.




<script src="js/stroll.min.js"></script>
<script>
stroll.bind( '#main ul' );
</script>



</ br>


See? That wasn’t so bad. All you have to do to customize it is make sure that you target the right ID. We used “#main” in our project today, but feel free to change this for your own uses.


It’s Alive!


With that we’re all finished! All we have to do to change the effect is apply a different class on the unordered list. For the demo, I used the flip, curl and tilt effects.


Demo: Click here to launch.


screenshot

What Do You Think?


Thinking about how to make scroll events more interesting opens up a whole new realm of interesting design possibilities. As with any effect, these can be used for good or evil. Taking them too far or abusing them will result in a dizzying page that no one will want to use. Use Stroll.js sparingly and it will have a much greater effect.


Leave a comment and let us know what you think of Stroll.js. Do you like scrolling animations or would you prefer that developers stop finding new places to stick more animations? Let us know!

Visit The Online God Father

148964_Primary