Before CSS3, if you wanted to achieve the effect of a box with rounded corners, you had to write a markup like this:
<div id="box">
<div id="box-top-right">
<div id="box-bottom-left">
<div id="box-content">
</div>
</div>
</div>
</div>
with the following styles:
#box {
width: 250px;
background: #d16c00 url("img/topleft.gif") no-repeat 0 0;
color: #fff;
}
#box #box-top-right {
background: transparent url("img/topright.gif") no-repeat 100% 0;
}
#box #box-bottom-left {
background: transparent url("img/bottomleft.gif") no-repeat 0 100%;
}
#box #box-content {
background: transparent url("img/bottomright.gif") no-repeat 100% 100%;
padding: 10px;
}
You can see the result here. Of course all this markup is rather redundant and non-semantical. CSS3 makes life a lot simpler by allowing an element to get multiple background images. To begin, all the markup now needed is simply this:
<div id="box"></div>
Then we add a single CSS rule:
#box {
width: 240px;
background-color: #d16c00;
background-image: url("img/topleft.gif"), url("img/topright.gif"), url("img/bottomleft.gif"), url("img/bottomright.gif");
background-repeat: no-repeat;
background-position: 0 0, 100% 0, 0 100%, 100% 100%;
color: #fff;
padding: 10px;
}
As you can see, the background-image and background-position properties now accept up to four values, so that we can add and position four different background images. You can see the final result here.