This guide covers the essential CSS properties that every beginner must understand in order to style and structure web pages effectively.
CSS Colors
In CSS, colors can be defined using:
Predefined color names (e.g.,
red,blue,green).HEX values (e.g.,
#ff0000).RGB values (
rgb(255, 0, 0)).HSL values (
hsl(0, 100%, 50%)).RGBA / HSLA values (with transparency support).
Where You’ll Use These Most
Color names → quick prototypes, simple styles.
HEX values → brand colors, UI themes, professional projects.
RGBA / HSLA → overlays, shadows, hover effects, gradients with transparency.
Example:
h1 {
color: red;
}
div {
background-color: rgb(255, 0, 0); /* red */
}
div {
background-color: rgba(255, 0, 0, 0.5); /* semi-transparent red */
}
h2 {
color: hsl(0, 100%, 50%); /* red */
}
h2 {
color: hsla(0, 100%, 50%, 0.3);
}Properties Where Colors Apply
Text color →
colorBackground color →
background-colorBorder color →
border,border-colorOutline color →
outline-colorShadow effects →
box-shadow,text-shadowGradients → (backgrounds, buttons, etc.)
CSS Backgrounds
The background properties allow you to add visual effects behind elements.
Key Properties
background-color– sets the background color.background-image– sets an image as background.background-repeat– defines repetition (repeat,no-repeat,repeat-x,repeat-y).background-attachment– defines if the background scrolls (scroll,fixed,local).background-position– sets the starting position of a background image.background– shorthand for all the above.
Example with Code
/* 1. Background Color */
div {
background-color: lightblue;
}
/* 2. Background Image */
div {
background-image: url("pattern.png");
}
/* 3. Background Repeat */
div {
background-image: url("stars.png");
background-repeat: no-repeat;
}
/* 4. Background Attachment */
body {
background-image: url("wallpaper.jpg");
background-attachment: fixed;
}
/* 5. Background Position */
div {
background-image: url("logo.png");
background-repeat: no-repeat;
background-position: center top;
}
/* 6. Background Shorthand */
div {
background: url("banner.jpg") no-repeat center top fixed;
}What are CSS Borders?
Borders define the boundary of an element.
Properties
border-style– e.g., solid, dashed, dotted, double, none.border-width– thickness (px, em, etc.).border-color– color of the border.border– shorthand for all.
Shorthand Example
.box1 {
border: 3px dashed red; /* width style color */
}Rounded Borders with border-radius
/* 1. Simple rounded corners */
.box1 {
border: 2px solid black;
border-radius: 10px;
}
/* 2. Fully rounded (circle/ellipse) */
.circle {
width: 100px;
height: 100px;
border: 3px solid blue;
border-radius: 50%;
}
/* 3. Different radius for each corner */
.box2 {
border: 2px solid green;
border-radius: 10px 20px 30px 40px;
}What Are CSS Margins?
Margins are the empty space around the outside of an element’s box, pushing it away from other elements.
How to Set Margins
Individual sides
.box {
margin-top: 20px;
margin-right: 10px;
margin-bottom: 30px;
margin-left: 15px;
}Shorthand (All in one line)
.box {
margin: 20px 10px 30px 15px;
}Order: Top → Right → Bottom → Left (clockwise).
Margin Values
auto→ lets browser decide (often used for centering).length→ fixed size (10px,2rem).%→ percentage of parent’s width.inherit→ takes parent’s margin.
Example: Centering an Element
.box {
width: 300px;
margin: 0 auto;
}What is CSS Padding?
Padding creates space inside the element, between the content and the border.
Individual sides:
padding-top: 10px;
padding-right: 15px;
padding-bottom: 20px;
padding-left: 25px;Shorthand:
/* 1. Two values → top/bottom, left/right */
padding: 10px 20px;
/* Top & Bottom = 10px
Left & Right = 20px */
/* 2. Three values → top, left/right, bottom */
padding: 10px 15px 20px;
/* Top = 10px
Left & Right = 15px
Bottom = 20px */
/* 3. Four values → top, right, bottom, left (clockwise) */
padding: 5px 10px 15px 20px;
/* Top = 5px
Right = 10px
Bottom = 15px
Left = 20px */
Value types: px, em, %, inherit.
Styling Links (States)
Links can be styled based on interaction states:
:link→ unvisited.:visited→ visited.:hover→ when hovered.:active→ when clicked.
Order Rule
:hovermust come after:linkand:visited.:activemust come after:hover.
/* HMTL*/
<a href="https://example.com">Visit Example</a>
/* CSS*/
/* Unvisited link */
a:link {
color: blue;
text-decoration: none;
}
/* Visited link */
a:visited {
color: purple;
}
/* Hovered link (comes after :link and :visited) */
a:hover {
color: orange;
text-decoration: underline;
}
/* Active link (comes after :hover) */
a:active {
color: red;
}CSS Styling Lists
<ul>→ unordered (bullets).<ol>→ ordered (numbers).
List Properties
list-style-type→ Defines the type of bullet or number.
Example values:disc,circle,square,decimallist-style-image→ Uses a custom image as the list marker.
Example value:url("star.png")list-style-position→ Sets whether the marker is inside or outside the content flow.
Example values:inside,outsidelist-style→ Shorthand to set type, image, and position in one line.
Example:circle inside
Example Code
<h3>Unordered List Example</h3>
<ul class="custom-list">
<li>HTML</li>
<li>CSS</li>
<li>JavaScript</li>
</ul>
<h3>Ordered List Example</h3>
<ol class="custom-ordered">
<li>Frontend</li>
<li>Backend</li>
<li>Database</li>
</ol>/* Unordered list with custom style */
.custom-list {
list-style-type: square; /* Bullet shape */
list-style-position: inside; /* Marker inside */
}
/* Ordered list with shorthand */
.custom-ordered {
list-style: decimal outside; /* Numbers outside */
}
/* Example of using an image as list marker */
.custom-list li {
list-style-image: url("star.png");
}
The CSS display Property
Controls how an element behaves in layout.
Block-level → new line, full width (
<div>,<h1>–<h6>,<p>).Inline → no new line, only necessary width (
<span>,<a>,<img>).
What Are the Different Position Values in CSS?
The position property defines how elements are placed on a webpage.
static→ default, normal flow.relative→ relative to itself.absolute→ relative to nearest ancestor.fixed→ relative to viewport.sticky→ switches between relative & fixed.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Position Example</title>
<style>
.box {
width: 120px;
height: 120px;
margin: 15px;
color: white;
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
}
/* 1. static (default) */
.static {
background: steelblue;
position: static; /* Normal document flow */
}
/* 2. relative */
.relative {
background: seagreen;
position: relative;
top: 20px; /* Moves 20px down from its normal place */
left: 20px; /* Moves 20px right */
}
/* 3. absolute */
.absolute-container {
position: relative; /* Parent for absolute positioning */
height: 200px;
border: 2px dashed gray;
margin: 20px 0;
}
.absolute {
background: tomato;
position: absolute;
top: 20px; /* 20px from top of container */
right: 20px; /* 20px from right of container */
}
/* 4. fixed */
.fixed {
background: purple;
position: fixed;
bottom: 20px; /* Always 20px from viewport bottom */
right: 20px; /* Always 20px from viewport right */
}
/* 5. sticky */
.sticky {
background: orange;
position: sticky;
top: 0; /* Sticks to top when scrolling */
}
</style>
</head>
<body>
<h2>CSS Position Examples</h2>
<div class="box static">Static</div>
<div class="box relative">Relative</div>
<div class="absolute-container">
<div class="box absolute">Absolute</div>
</div>
<div class="box sticky">Sticky (Scroll me)</div>
<p style="height: 1000px;">
Keep scrolling to see how <b>sticky</b> and <b>fixed</b> behave differently.
</p>
<div class="box fixed">Fixed</div>
</body>
</html>How Does the CSS z-index Property Work?
Controls stack order of positioned elements.
Higher
z-index= on top.Lower (or negative) = behind.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS z-index Example</title>
<style>
.container {
position: relative;
height: 250px;
border: 2px dashed gray;
margin-top: 20px;
}
.box {
width: 150px;
height: 150px;
position: absolute; /* z-index only works on positioned elements */
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
color: white;
}
.box1 {
background: steelblue;
top: 30px;
left: 30px;
z-index: 1; /* Below box2 */
}
.box2 {
background: tomato;
top: 60px;
left: 60px;
z-index: 2; /* On top of box1 */
}
.box3 {
background: seagreen;
top: 90px;
left: 90px;
z-index: 0; /* Behind both */
}
</style>
</head>
<body>
<h2>CSS z-index Example</h2>
<p>Higher <code>z-index</code> = appears on top.</p>
<div class="container">
<div class="box box1">z-index: 1</div>
<div class="box box2">z-index: 2</div>
<div class="box box3">z-index: 0</div>
</div>
</body>
</html>How it works:
box2(z-index: 2) is on top.box1(z-index: 1) is below it.box3(z-index: 0) is behind both.
This creates a stacking order like layers in Photoshop.
Why Is the CSS max-width Property Important?
Defines the maximum width of an element.
Crucial for responsive layouts.
Code Example:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>max-width Example</title>
<style>
/* Problem: Fixed width (not responsive) */
.fixed-box {
width: 600px;
background: lightcoral;
color: white;
padding: 20px;
margin: 10px auto;
}
/* Solution: max-width (responsive) */
.responsive-box {
max-width: 600px; /* Will shrink on smaller screens */
background: seagreen;
color: white;
padding: 20px;
margin: 10px auto;
}
</style>
</head>
<body>
<h2>CSS max-width Example</h2>
<div class="fixed-box">
I use <b>width: 600px;</b> → On small screens, I overflow.
</div>
<div class="responsive-box">
I use <b>max-width: 600px;</b> → I resize nicely on small screens.
</div>
</body>
</html>Why it matters:
width: 600px;→ Forces the element to always be 600px wide (not mobile-friendly).max-width: 600px;→ Makes it responsive. It never grows bigger than 600px, but will shrink on smaller screens.
CSS Table Borders
Use
bordershorthand →border: 2px solid black;.
Collapsing Borders
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Table Borders Example</title>
<style>
table {
width: 60%;
margin: 20px auto;
border-collapse: collapse; /* Merge borders */
}
th, td {
border: 2px solid black; /* Table border */
padding: 10px;
text-align: center;
}
th {
background: lightblue;
}
</style>
</head>
<body>
<h2>CSS Table Borders Example</h2>
<table>
<tr>
<th>Language</th>
<th>Level</th>
</tr>
<tr>
<td>HTML</td>
<td>Beginner</td>
</tr>
<tr>
<td>CSS</td>
<td>Intermediate</td>
</tr>
</table>
</body>
</html>border-collapse: collapse; → Ensures borders don’t double up.
Final Note
Practice > Reading
Start implementing each CSS property on small HTML examples. Observe changes instead of memorizing.
At first, you may feel confused — that’s normal.
With consistent practice, you’ll gain confidence and start combining properties creatively for real-world layouts.
Join the conversation
Sign in to share your thoughts and engage with other readers.
No comments yet
Be the first to share your thoughts!
