CSS random uniform distribution

CSS Random and Uniform Distribution

In web design, we often need to randomly distribute elements to achieve more beautiful and interesting effects. This article will introduce how to use CSS to achieve random and uniform distribution, including implementing random distribution in grid layouts, implementing random distribution in Flex layouts, and using CSS animations to achieve random movement of elements.

Achieving Random Distribution in Grid Layout

In grid layout, we use the grid-template-columns and grid-template-rows properties to define the number of columns and rows in the grid, and then use the grid-column and grid-row properties to specify the column and row in which an element is located. Here’s a simple example showing how to achieve random distribution in a grid layout:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>Random Distribution in Grid Layout</title> 
<style> 
.grid-container { 
display: grid; 
grid-template-columns: repeat(3, 1fr); 
grid-template-rows: repeat(3, 100px); 
gap: 10px; 
} 

.grid-item { 
background-color: #3498db; 
color: #fff; 
padding: 10px; 
text-align: center; 
} 

.grid-item:nth-child(odd) { 
grid-column: span 2; 
} 

.grid-item:nth-child(even) { 
grid-row: span 2; 
} 
</style> 
</head> 
<body> 
<div class="grid-container"> 
<div class="grid-item">Item 1</div> 
<div class="grid-item">Item 2</div> 
<div class="grid-item">Item 3</div> 
<div class="grid-item">Item 4</div> 
<div class="grid-item">Item 5</div> 
<div class="grid-item">Item 6</div> 
<div class="grid-item">Item 7</div> 
<div class="grid-item">Item 8</div> 
<div class="grid-item">Item 9</div> 
</div> 
</body> 
</html> 

Output:


CSS random uniform distribution

In the above example, we use the grid-template-columns and grid-template-rows properties to define a 3×3 grid layout. Then, we use the grid-column and grid-row properties to achieve random distribution of elements. In this example, odd-numbered elements span two columns, and even-numbered elements span two rows.

Achieving Random Distribution in Flex Layout

Flex layout is a commonly used layout method. We can use properties such as flex-direction, justify-content, and align-items to control the arrangement of elements. Here’s a sample code showing how to implement random distribution in Flex Layout:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>Random Distribution in Flex Layout</title> 
<style> 
.flex-container { 
display: flex; 
flex-wrap: wrap; 
justify-content: space-around; 
align-items: center; 
} 

.flex-item { 
background-color: #e74c3c; 
color: #fff; 
padding: 10px; 
margin: 5px; 
} 

.flex-item:nth-child(odd) { 
order: 1; 
} 

.flex-item:nth-child(even) { 
order: -1; 
} 
</style> 
</head> 
<body> 
<div class="flex-container"> 
<div class="flex-item">Item 1</div> 
<div class="flex-item">Item 2</div> 
<div class="flex-item">Item 3</div> 
<div class="flex-item">Item 4</div> 
<div class="flex-item">Item 5</div> 
<div class="flex-item">Item 6</div> 
<div class="flex-item">Item 7</div> 
<div class="flex-item">Item 8</div> 
<div class="flex-item">Item 9</div> 
</div> 
</body> 
</html> 

Output:

CSS Random Uniform Distribution

In the example above, we use the flex-wrap: wrap property to achieve line wrapping, and then use the order property to achieve random distribution of elements. Odd-numbered elements have an order value of 1, while even-numbered elements have an order value of -1, thus achieving a random distribution of elements.

Using CSS Animation to Achieve Random Movement of Elements

In addition to static random distribution, we can also use CSS animation to achieve random movement of elements. Here’s a sample code showing how to use CSS animation to create random movement of elements:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
<meta charset="UTF-8"> 
<meta name="viewport" content="width=device-width, initial-scale=1.0"> 
<title>Random Movement with CSS Animation</title> 
<style> 
@keyframes move { 
0% { transform: translate(0, 0); } 
25% { transform: translate(100px, 0); } 
50% { transform: translate(100px, 100px); } 
75% { transform: translate(0, 100px); } 
100% { transform: translate(0, 0); } 
} 

.animated-item { 
width: 50px; 
height: 50px; 
background-color: #2ecc71; 
animation: move 5s infinite; 
} 
</style> 
</head> 
<body> 
<div class="animated-item"></div> 
</body> 
</html> 

Output:

CSS random uniform distribution

In the above example, we defined a keyframe animation named move to move an element between different positions. We then applied this animation to an element, causing it to move randomly around the page.

Through the code examples above, we can see how to use CSS to achieve random uniform distribution, including random distribution in grid layouts, random distribution in Flex layouts, and random movement of elements using CSS animations. These techniques can help you create more interesting and unique effects in web design.

Leave a Reply

Your email address will not be published. Required fields are marked *