- CSS Tutorial
- CSS Introduction
- CSS Syntax
- CSS Comments
- CSS Selectors
- CSS Fonts
- CSS Colors
- CSS Backgrounds
- CSS Box Model
- CSS Borders
- CSS Margins
- CSS Padding
- CSS Text
- CSS Images
- CSS Links
- CSS Lists
- CSS Tables
- CSS Outline
- CSS Icons
- CSS Display
- CSS max-witdh
- CSS Position
- CSS z-index
- CSS Overflow
- CSS Float
- CSS Align
- CSS Opacity
- CSS Navigation Bar
- CSS Dropdowns
- CSS Forms
- CSS Units
- CSS !important
- CSS Specificity
- CSS Combinators
- CSS inline-block
- CSS Hover
- CSS Cursors
- CSS Selectors
- CSS Type Selector
- CSS Class Selector
- CSS ID Selector
- CSS Attribute Selector
- CSS Pseudo-class Selector
- CSS Pseudo-element Selector
- CSS Universal Selector
- CSS Advanced
- CSS Text Formatting
- CSS Gradients
- CSS Shadow
- CSS Rounded Corners
- CSS Text Effects
- CSS 2D Transform
- CSS 3D Transform
- CSS Border Images
- CSS Inherit
- CSS Transitions
- CSS Animations
- CSS Box Sizing
- CSS Tooltip
- CSS Masking
- CSS Pagination
- CSS Styling Images
- CSS object-fit
- CSS object-position
- CSS Buttons
- CSS Multiple Columns
- CSS Variables
- CSS Flexbox
- CSS Grid
- CSS Media Queries
CSS Images
In CSS, images are much more than just static content. They are the visual backbone of modern web design. By using CSS properties, you can transform a basic image into a responsive, stylized element that adapts to any screen size. Whether you are building a profile card, a hero banner, or a gallery, understanding how to manipulate images with code is essential for every developer.
- Displaying Images: There are two main ways to put an image on a page: the HTML
<img>tag and the CSSbackground-imageproperty.
Generally, use the <img> tag for content that is essential to the page (like a product photo) and CSS background-image for decorative elements (like a subtle texture behind text).
<!-- Use HTML for content images -->
<img src="profile.jpg" alt="User profile picture">
/* Use CSS for decorative backgrounds */
.hero-banner {
background-image: url('landscape.jpg');
background-size: cover;
background-position: center;
width: 100%;
height: 400px;
}
alt attribute for your <img> tags. This is critical for screen readers (accessibility) and helps your SEO ranking.
- Image Size: Controlling dimensions is the first step in styling. You can set specific pixel values or use relative units like percentages.
.thumbnail {
width: 150px;
height: 150px;
}
width and height to fixed values that don't match the image's original proportions, the image will look "squashed" or "stretched."
- Image Positioning: CSS allows you to move images around or place them exactly where you need them using layout properties.
A common real-world scenario is overlaying an icon on top of a product image. To do this, we use position: relative on the parent container and position: absolute on the image itself.
.card {
position: relative;
width: 300px;
}
.badge-icon {
position: absolute;
top: 10px;
right: 10px;
width: 40px;
}
object-fit: cover; when you have fixed dimensions but want the image to fill the area without losing its aspect ratio. It works like magic for profile pictures of different sizes!
Image Borders: Borders and rounded corners can make an image feel more integrated into your design. The border-radius property is frequently used to create circular or "pill-shaped" images.
.avatar {
border: 4px solid #f0f0f0;
border-radius: 50%; /* Makes the image a perfect circle */
}
- Image Opacity: You can control how "see-through" an image is. This is great for "hover" effects where an image fades in or out when a user moves their mouse over it.
.gallery-item {
opacity: 0.7;
transition: opacity 0.3s ease;
}
.gallery-item:hover {
opacity: 1.0; /* Becomes fully visible on hover */
}
- Image Filters: CSS filters allow you to perform image processing directly in the browser. You can turn an image grayscale, blur it, or adjust its brightness without needing Photoshop.
.blurry-background {
filter: blur(5px) brightness(0.8);
}
.gray-photo {
filter: grayscale(100%);
}
- Image Sprites: This technique involves putting several small icons into one single large image file. By moving the
background-position, you "window" into the specific icon you want to show.
.icon {
background-image: url('all-icons.png');
display: inline-block;
width: 32px;
height: 32px;
}
.facebook-icon { background-position: 0 0; }
.twitter-icon { background-position: -32px 0; }
- Responsive Images: In the modern mobile-first world, your images must look good on both a 4-inch phone and a 27-inch monitor. The
max-widthproperty is the standard way to ensure images never overflow their container.
img {
max-width: 100%; /* Never get wider than the parent container */
height: auto; /* Keep the original aspect ratio */
}
loading="lazy" attribute in your HTML. It tells the browser to wait to download the image until the user scrolls near it, making your website load much faster.
By combining these CSS techniques, you have full control over the visual experience of your website. From simple borders to complex responsive layouts, CSS transforms static images into dynamic parts of your user interface.