Let's look at each CSS property clear, clip-path,
columns, content, and counter with detailed explanations and examples.
1. clear (Managing Floats)
The clear property is used to control how elements behave around floated elements.
It prevents elements from wrapping around floated elements.
Values
| Values | Description |
| none | Default, allows floating elements next to it. |
| left | Prevents elements from floating on the left side. |
| right | Prevents elements from floating on the right side. |
| both | Prevents elements from floating on both sides. |
Example: Clearing Floats
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Clearing Floats Example</title>
<style>
.container {
width: 300px;
border: 2px solid black;
}
.floated {
float: left;
width: 100px;
height: 100px;
background: lightblue;
margin-right: 10px;
}
.clearfix::after {
content: "";
display: block;
clear: both;
}
</style>
</head>
<body>
<div class="container clearfix">
<div class="floated">Floated</div>
<p>This paragraph will wrap around the floated div if `clear` is not applied.</p>
</div>
</body>
</html>
The .clearfix class forces the container to wrap around floated elements.
2. clip-path (Clipping an Element)
The clip-path property allows you to define a shape (circle, polygon, ellipse) to clip an element to
Example: Clipping an Image into a Circle
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Clearing Floats Example</title>
<style>
.clipped-image {
width: 200px;
height: 200px;
clip-path: circle(50%);
}
.clip-triangle {
clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.clip-ellipse {
clip-path: ellipse(50% 30%);
}
</style>
</head>
<body>
<div class="container clearfix">
<img class="clipped-image" src="https://www.mindstick.com/Images/businessImages/business-help.jpg" alt="Clipped Image">
<img class="clip-triangle" src="https://www.mindstick.com/Images/businessImages/business-help.jpg" alt="Clipped Image">
<img class="clip-ellipse" src="https://www.mindstick.com/Images/businessImages/business-help.jpg" alt="Clipped Image">
</div>
</body>
</html>
Output
Note:
- It works best with images and block elements.
3. columns (CSS Multi-Column Layout)
The Columns property splits text into multiple columns.
Example: Creating a Two-Column Layout
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Clearing Floats Example</title>
<style>
.multi-column {
columns: 2;
column-gap: 20px;
column-rule: 2px solid gray;
}
</style>
</head>
<body>
<div class="multi-column">
<p>This text will be split into two columns. This text will be split into two columns. This text will be split into two columns. This text will be split into two columns. This text will be split into two columns. </p>
</div>
</body>
</html>
Column Properties
| Property | Description |
| column-count | Number of columns. |
| column-width | Sets the width of each column. |
| column-gap | Space between columns. |
| column-rule | Line between columns. |
Note:
- Responsive designs can adjust columns dynamically.
4. content (CSS Generated Content)
The content property is used with the ::before and
::after pseudo-elements to insert content.
Example: Add icon before text on button
.button::before {
content: "🔹 ";
}
<button class="button">Click Me</button>
Adding Quotes Dynamically
.quote::before {
content: "“";
}
.quote::after {
content: "”";
}
<p class="quote">This is a quote.</p>
Note:
- Useful for adding decorative content without modifying the HTML.
5. counter (CSS Counters)
The counter property is used to create automatic numbering.
Example: Auto-Numbering Sections
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>CSS Counter Example</title>
<style>
.section {
counter-increment: section;
}
.section::before {
content: "Section " counter(section) ": ";
font-weight: bold;
}
</style>
</head>
<body>
<div class="multi-column">
<div class="section">Introduction</div>
<div class="section">Main Content</div>
<div class="section">Conclusion</div>
</div>
</body>
</html>
Note
- Great for automatically numbering lists, sections or custom pagination.
Also, read: CSS Properties Explained: offset, opacity, order, outline, and overflow
Leave Comment