samedi 5 mai 2012

Make arrows and triangles with CSS only - no images


So today I wanted to make an arrow like the one below but I wanted to do this with CSS and not using a background image.

As you'll know you can now make rounded corners using CSS3, but what about triangles and arrows like the one above?
The answer is to use a trick with element borders.  Essentially when you make a big border on a tiny box they intersect in a triangle like this image.

Then all you do is make three sides transparent so you see a triangle. This triangle is then added using the :after pseudo-element to stick it onto a div box with the text inside.

Here is the CSS code for a div tag with an id="arrow" just like my blue one above.

#arrow {background-color: #3366cc; height: 30px; position: relative; width: 130px;color:#FFF;}
#arrow:after {content: ' '; height: 0; position: absolute; width: 0; border: 15px solid transparent; border-left-color: #3366cc;left: 100%;top: 0px;}

For a more detailed explanation go to yuiblog.com - which has a much more detailed explanation than mine - and some exciting examples - great stuff Nate Cavanaugh!

Check the web devil archives for CSS3 rounded corners using the search box on the top left or click on the CSS3 label on the right.

Aucun commentaire:

Enregistrer un commentaire