Home  >  Article  >  Web Front-end  >  CSS uses Sprites technology to achieve rounded corners

CSS uses Sprites technology to achieve rounded corners

不言
不言Original
2018-06-28 11:17:391978browse

This article mainly introduces the effect of using CSS Sprites technology to achieve rounded corners. It has a certain reference value. Now I share it with you. Friends in need can refer to it.

Using CSS Sprites technology to draw circles Corner, to put it simply, is to make a circle on a picture, define 4 p's, and take a corner of the picture as the background for each p. Let's look at the specific implementation method.

First of all, let’s briefly talk about what Sprites is. Sprites is a web image application processing method. It allows you to include all the scattered pictures involved in a page into one big picture, so that when the page is accessed, the loaded pictures will not be displayed one by one as before. . For the current popular network speed, the loading time required for a single image not exceeding 200KB is basically the same, so there is no need to worry about this issue.

Step one: Create our Sprite

Use tools such as PS to synthesize the picture as shown in the picture (distinguished by a red line of one pixel)

CSS uses Sprites technology to achieve rounded corners

Step 2: Write HTML code

First, we will give the container p a .roundedBox class:

<p class="roundedBox"></p>

Now, we must add four more p's, which will be used when creating fillets in the future. Then a class .corner must be loaded for each, and a class identified to specify the position of their grid.

<p class="roundedBox">
    <strong>My content in roundedBox Type 1</strong>
    <p class="corner topLeft"></p>
    <p class="corner topRight"></p>
    <p class="corner bottomLeft"></p>
    <p class="corner bottomRight"></p>
</p>

Step 3: Write CSS styles

Absolutely positioned elements are usually positioned according to their relatively positioned parent elements. If the parent element cannot be defined, then it will go to the most recently relatively positioned parent element, up to the body tag.

Let us first define all the rounded corners

All rounded corners must be defined with absolute positioning, and the height and width must be specified. The width and height of my rounded corners are both 17px.

CSS uses Sprites technology to achieve rounded corners

.corner{position:absolute;width:17px;height:17px;}

Now let’s define the p container style:

.roundedBox {position:relative;}

Anything defined with the class .roundedBox Within an element, absolutely positioned elements will be positioned relative to this element, not the tag body. We also have to set some padding values. If not set, the rounded corners will cover our text, which is definitely not the effect we want. Important: The top and bottom padding values ​​must be equal to the height of the fillet. The left and right padding values ​​must be equivalent to the width of the fillet. As you already know, my fillet width and height are equal, therefore, the padding values ​​​​of the four corners are also equal:

.roundedBox {position:relative; padding:17px; margin:10px 0;}

Let's make a separate definition for no rounded corners

We will set the absolute positioning of each rounded corner and position the background image (according to our sprite):

.roundedBox {position:relative; padding:17px; margin:10px 0;}
.corner {position:absolute; width:17px; height:17px;}
.topLeft {top:0; left:0; background-position:-1px -1px;} 
.topRight {top:0; right:0; background-position:-19px -1px;} 
.bottomLeft {bottom:0; left:0; background-position:-1px -19px;}
.bottomRight {bottom:0; right:0; background-position:-19px -19px;}

Finally, match a background color to #type1 so that it can be integrated into the sprite Rounded corners:

#type1 {background-color:#CCDEDE;}
#type1 .corner {background-image:url(../image/corners.gif);}

All codes:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<style type="text/css">
.roundedBox {position:relative; padding:17px; margin:10px 0;}
.corner {position:absolute; width:17px; height:17px;}
.topLeft {top:0; left:0; background-position:-1px -1px;}
.topRight {top:0; right:0; background-position:-19px -1px;}
.bottomLeft {bottom:0; left:0; background-position:-1px -19px;}
.bottomRight {bottom:0; right:0; background-position:-19px -19px;}
#type1 {background-color:#CCDEDE;}
#type1 .corner {background-image:url(../image/corners.gif);}
</style>
</head>
<body>
<p class="roundedBox" id="type1">
    <strong>My content in roundedBox Type 1</strong>
    <p class="corner topLeft"></p>
    <p class="corner topRight"></p>
    <p class="corner bottomLeft"></p>
    <p class="corner bottomRight"></p>
</p>
</body>
</html>

The above is the entire content of this article, I hope it will be helpful to everyone's study, For more related content, please pay attention to the PHP Chinese website!

Related recommendations:

CSS3 three-dimensional deformation to realize three-dimensional blocks

About 20 loading animation effects produced by CSS3

How to implement the animation effect of tilting and rotating simultaneously in CSS3

# #

The above is the detailed content of CSS uses Sprites technology to achieve rounded corners. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn