BrainSellers - Frank Fuchs Mediendesign
Faked Random with CSS and the „Cicada Principle“
Inspired by Alex Walkers article The Cicada Principle and Why It Matters to Web Designers, I thought of ways to use this not only for background images, but for anything where you want to fake random.
so I came up with …
„Randomly“ Rotated Images
You have to turn on JavaScript to view that gallery.
As Alex describes in his "cicada principle", you have very few common multiples with prime numbers. So I used the :nth-child selector to rotate every 2nd, 3rd, 5th, 7th … image. But because that doesn't manipulate the first few pictures enough to make it look random, I brought another layer of prime numbers to it. :nth-child(3n+2), :nth-child(5n+3), :nth-child(7n+5) …
I made a more detailed description in this article (only in german). But I guess you'll understand my method by simply looking at the example code below.
Code Example
the HTML
<ul class="pictures"> <li><a href="fullImage.jpg" title"…"><img src="thumbnail.jpg" alt="…" /></a></li> <li><a href="fullImage.jpg" title"…"><img src="thumbnail.jpg" alt="…" /></a></li> … <li><a href="fullImage.jpg" title"…"><img src="thumbnail.jpg" alt="…" /></a></li> </ul>
And the CSS
.pictures li:nth-child(2n+1) {
-moz-transform: rotate(-2deg);
-webkit-transform: rotate(-2deg);
-o-transform: rotate(-2deg);
-ms-transform: rotate(-2deg);
transform: rotate(-2deg);
}
.pictures li:nth-child(3n+2) {
-moz-transform: rotate(1deg);
-webkit-transform: rotate(1deg);
-o-transform: rotate(1deg);
-ms-transform: rotate(1deg);
transform: rotate(1deg);
}
.pictures li:nth-child(5n+3) {
-moz-transform: rotate(-3deg);
-webkit-transform: rotate(-3deg);
-o-transform: rotate(-3deg);
-ms-transform: rotate(-3deg);
transform: rotate(-3deg);
}
.pictures li:nth-child(7n+5) {
-moz-transform: rotate(6deg);
-webkit-transform: rotate(6deg);
-o-transform: rotate(6deg);
-ms-transform: rotate(6deg);
transform: rotate(6deg);
}
.pictures li:nth-child(11n+7) {
-moz-transform: rotate(4deg);
-webkit-transform: rotate(4deg);
-o-transform: rotate(4deg);
-ms-transform: rotate(4deg);
transform: rotate(4deg);
}