Web Front-end
CSS Tutorial
How to add a background image to a button in CSS (detailed explanation and examples)
How to add a background image to a button in CSS (detailed explanation and examples)
You can add beautiful pictures to articles here with buttons, allowing you to easily change the style of the page. You can use a gradient background; the button's background can change the color of the button; you can use overflow: hidden and remove the mask.

Here, use top, left, right, and bottom to adjust the height and width to cover the button, plus the gradient and transparency mentioned above. We divide the mask into upper and lower parts. The upper one uses a gradient background, and the lower one only needs to use a solid color. (In fact, it can also be achieved with one mask, but there is no way to make the border of the mask gradient, so use two ). The code is like this: The CSS code is as follows:
.mask-t, .mask-b {
position: absolute;
-moz-box-sizing: border-box;
-wekit-box-sizing: border-box;
box-sizing: border-box;
}
.mask-t {
top: 1px;
left: 1px;
right: 1px;
bottom: 50%;
-moz-border-radius: 5px 5px 0 0;
-webkit-border-radius: 5px 5px 0 0;
border-radius: 5px 5px 0 0;
background: -moz-linear-gradient(270deg,
rgba(117, 117, 117, .4) 10%,
rgba(94, 94, 94, .4) 30%
);
background: -webkit-gradient(
linear,
left top,
left bottom,
from(rgba(117, 117, 117, .4)), to(rgba(94, 94, 94, .4))
);
border: 1px solid rgba(255, 255, 255, .4);
border-bottom: none;
}
.mask-b {
top: 50%;
left: 1px;
right: 1px;
bottom: 0;
-moz-border-radius: 0 0 5px 5px;
-webkit-border-radius: 0 0 5px 5px;
border-radius: 0 0 5px 5px 0 0;
background: rgba(0, 0, 0, .3);
border: 1px solid rgba(255, 255, 255, .3);
border-top: none;
}Actually, I don’t fully understand how to use CSS3 gradient, so I won’t explain it here for fear of making a mistake. When doing this, I followed the examples in the official documentation.
Gecko: https://developer.mozilla.org/index.php?title=en/CSS/-moz-linear-gradient
WebKit: http://webkit. org/blog/175/introducing-css-gradients/
OK, the mask layer is done, now let’s make the button. The button layer must provide positioning for the mask, and set the size and color of the button. For the sake of beauty, we add rounded corners and shadows to it, which is also the content of CSS3. The following is the code: The CSS code is as follows:
.button {
position: relative;
background: red;
width: 160px;
height: 40px;
line-height: 40px;
-moz-border-radius: 5px;
-webkit-border-radius: 5px;
border-radius: 5px;
-moz-box-shadow:0 1px 3px rgba(0, 0, 0, .5);
-webkit-box-shadow:0 1px 3px rgba(0, 0, 0, .5);
box-shadow:0 1px 3px rgba(0, 0, 0, .5);
}Change the background of .button to change the color of the button. Note that the border-radius of the button should be set to be the same as that of the mask layer. I tried to add overflow: hidden to the button and then remove the border-radius of the mask. Despite this, the four corners of the mask are still displayed. Why? Please ask experts for guidance. Next, there is the text part of the button. This layer should be above the mask layer so that the text can be clearly displayed. Like the mask layer, set absolute positioning, and set the height and width to 100%. Since our text layer is behind the mask layer in the document flow, there is no need to set z-index. The code is as follows: The CSS code is as follows:
.text {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
text-align: center;
color: #FFF;
text-decoration: none;
}At this point, our button is ready. The advantage of this button is that it does not use pictures, reduces the number of HTTP connections, and of course reduces traffic. The disadvantage is that this button is of little use now, because IE does not support CSS3 so far. Although there are filters, it is not as fast as using pictures. I wish IE will be eliminated soon.
Recommended learning: CSS video tutorial
The above is the detailed content of How to add a background image to a button in CSS (detailed explanation and examples). For more information, please follow other related articles on the PHP Chinese website!
Hot AI Tools
Undress AI Tool
Undress images for free
Undresser.AI Undress
AI-powered app for creating realistic nude photos
AI Clothes Remover
Online AI tool for removing clothes from photos.
Clothoff.io
AI clothes remover
Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!
Hot Article
Hot Tools
Notepad++7.3.1
Easy-to-use and free code editor
SublimeText3 Chinese version
Chinese version, very easy to use
Zend Studio 13.0.1
Powerful PHP integrated development environment
Dreamweaver CS6
Visual web development tools
SublimeText3 Mac version
God-level code editing software (SublimeText3)
How to use CSS gradients for backgrounds
Aug 17, 2025 am 08:39 AM
CSSgradientsprovidesmoothcolortransitionswithoutimages.1.Lineargradientstransitioncolorsalongastraightlineusingdirectionsliketobottomorangleslike45deg,andsupportmultiplecolorstopsforcomplexeffects.2.Radialgradientsradiatefromacentralpointusingcircleo
How to create a dotted border in CSS
Aug 15, 2025 am 04:56 AM
Use CSS to create dotted borders, just set the border attribute to dotted. For example, "border:3pxdotted#000" can add a 3-pixel-wide black dot border to the element. By adjusting the border-width, the size of the point can be changed. The wider borders produce larger points. You can set dotted borders for a certain side, such as "border-top:2pxdottedred". Dotted borders are suitable for block-level elements such as div and input. They are often used in focus states or editable areas to improve accessibility. Pay attention to color contrast. At the same time, different from dashed's short-line style, dotted presents a circular dot shape. This feature is widely used in all mainstream browsers.
How to create a glassmorphism effect with CSS
Aug 22, 2025 am 07:54 AM
To create a glass mimicry effect of CSS, you need to use backdrop-filter to achieve background blur, set a translucent background such as rgba(255,255,255,0.1), add subtle borders and shadows to enhance the sense of hierarchy, and ensure that there is enough visual content behind the elements; 1. Use backdrop-filter:blur(10px) to blur the background content; 2. Use rgba or hsla to define the transparent background to control the degree of transparency; 3. Add 1pxsolidrgba(255,255,255,0.3) borders and box-shadow to enhance the three-dimensionality; 4. Ensure that the container has rich backgrounds such as pictures or textures to present a blurred penetration effect; 5. It is compatible with old browsers
How to change the list style in CSS
Aug 17, 2025 am 10:04 AM
To change the CSS list style, first use list-style-type to change the bullet or numbering style. 1. Use list-style-type to set the bullet of ul to disc, circle or square, and the number of ol is decimal, lower-alpha, upper-alpha, lower-roman or upper-roman. 2. Remove the tag completely with list-style:none. 3. Use list-style-image:url('bullet.png') to replace it with a custom image. 4. Use list-style-position:in
How to change the cursor in CSS
Aug 16, 2025 am 05:00 AM
Usebuilt-incursortypeslikepointer,help,ornot-allowedtoprovideimmediatevisualfeedbackfordifferentinteractiveelements.2.ApplycustomcursorimageswiththecursorpropertyusingaURL,optionallyspecifyingahotspotandalwaysincludingafallbacklikeautoorpointer.3.Fol
How to implement a dark mode theme with CSS
Aug 22, 2025 am 09:55 AM
There are two main ways to implement dark mode: one is to use prefers-color-scheme media to query automatically to adapt system preferences, and the other is to add manual switching function through JavaScript. 1. Use prefers-color-scheme to automatically apply dark themes according to the user system. There is no need for JavaScript, just define the styles in the media query; 2. To achieve manual switching, you need to define light-theme and dark-themeCSS classes, add toggle buttons, and use JavaScript to manage the theme status and localStorage to save user preferences; 3. You can combine both to read localSt first when the page is loaded.
How to use grid-template-areas in CSS
Aug 22, 2025 am 07:56 AM
Thegrid-template-areaspropertyallowsdeveloperstocreateintuitive,readablelayoutsbydefiningnamedgridareas;eachstringrepresentsarowandeachwordacolumncell,withgrid-areanamesonchildelementsmatchingthoseinthetemplate,suchas"headerheaderheader"for
How to add a box shadow in CSS
Aug 18, 2025 am 11:39 AM
To add box shadows, use box-shadow attribute; 1. The basic syntax is box-shadow: horizontal offset vertical offset blur radius expansion radius shadows in color; 2. The first three values are required, the rest are optional; 3. Use rgba() or hsla() to achieve transparent effect; 4. The positive expansion radius expands shadows and the negative value is reduced; 5. Multiple shadows can be added by commas separation; 6. Overuse should be avoided to ensure that visibility is tested on different backgrounds; this attribute is well supported by the browser, and reasonable use can improve the design texture.


