Kawałek Kodu

Co tu się odskryptala?! Czyli programistyczne porady na luzie

Typowo męska logika, czyli fraktal Sierpińskiego.

Może już widziałeś ten piękny graficzny wzór, choć nie wiesz, że miałeś do czynienia z fraktalem. Fraktal to obiekt nieskończenie powtarzalny, albo samopodobny. Oznacza to, że w jego fragmencie jest zawarta całość. Mamy do czynienia z nimi nie tylko w formie komputerowej grafiki, ale również w otaczającym świecie (choć nie są to nieskończenie powtarzalne konstrukcje). Fraktalem jest kalafior czy brokuł, którego kawałek wyglądem przypomina całość. Banknoty niestety nie są fraktalami. Drzewo jest fraktalem. Wygląda na to, że cały wszechświat jest również fraktalem, którego odwzorowanie możemy znaleźć w żywej komórce.

Z fraktalami nieodłącznie wiąże się rekurencja. Dzięki niej powstaje trójkąt Sierpińskiego, kiedy to w duży trójkąt wrysowujemy odwórcony mniejszy, a pozostałe trzy miejsca są zapełniane w ten sam sposób jak duży. I tak dopóki starczy sił albo czasu.
Ale nie zawsze się wiąże. Możemy skorzystać z innej cechy liczb jaką jest możliwość ich reprezentacji binarnej i operacji logicznych na nich. W ten sposób możemy stworzyć fraktal Sierpińskiego oparty na trójkącie prostokątnym.

Czytaj dalej

Wyżymanie HTML, czyli gumowa kostka w CSS.

Kiedy poznawałeś wciągający świat transformacji 3D w CSS pewnie trafiłeś na efekt obracającego się sześcianu. Dziś możliwości CSS trochę spowszedniały, a my aby nie stać w miejscu zrobimy skok jednocześnie w przyszłość i przeszłość. Pokażę Ci odzworowanie retroefektu zwanego rubber vectors, korzystając z aktualnych możliwości transformacji 3D. Przy zderzeniu przeszłości i przyszłości zobaczysz coś niedzisiejszego. Właściwie to już widziałeś na powyższym wideo, ale za chwilę będziesz mógł cieszyć się tym oglądając na żywo.

Jak skręcić kostkę (nie swoją)?

Idea efektu jest dosyć prosta. Polega na rysowaniu kostki w standardowy sposób, natomiast co linię pokazujemy klatkę animacji o jeden (lub więcej) późniejszą. Musimy w tym celu mieć X buforów na poszczególne klatki animacji. Pierwszą klatkę rysujemy na pierwszym buforze, podczas kolejnej kopiujemy go (i wszystkie za nim) o jeden niżej, a klatkę rysujemy znów na pierwszym. Pobierając kolejne linie z coraz to "późniejszych" buforów sprawiają one wrażenie "ciągnięcia się" za tymi powyżej.

Czytaj dalej

Milion pięćset sto dziewięćset, czyli o liczeniu w CSS.

Zdarza się, że stworzyliśmy ekstra formularz ankiety i chcemy poinformować użytkownika korzystającego z niego o ilości zaznaczonych odpowiedzi czy też o ilości prawidłowych odpowiedzi. A to wszystko na bieżąco. Możemy to zrobić bez użycia JavaScript. Nie będzie trzeba dodawać obsługi zdarzeń, liczyć zaznaczonych, ustawiać w jakimś elemencie obliczonej wartości.

Wykorzystamy do tego CSS-owy licznik, a dokładnie zmienną, której wartością możemy sterować przy pomocy kombinacji HTML+CSS.

Zacznijmy od przykładu wykorzystania licznika do numerowania elementów listy. Co prawda można wykorzystać natywną numerację, ale ma on jednak mniejsze możliwości stylowania. Czyli na razie checkbox'y odkładamy na bok.

Czytaj dalej

Einstein w formie, czyli jak "rozbić" formularz na dwa.

Konstruując formularz HTML zawsze mamy do dyspozycji niezliczoną pulę....pól, list, ptaszków, guzików, nawet przycisków. Co jednak z tego, że dodamy kilka przycisków skoro i tak każdy z nich kieruje formularz po zatwierdzeniu na ten sam adres. Adres oczywiście w atrybucie action formularza.

Można kombinować z ustawianiem wartości dla pól hidden podczas klikania w przycisk submit. Można co gorsza próbować ustawiać inny parametr action formularza przed zatwierdzeniem.

Czytaj dalej

Masz cela jak baba z wesela, czyli :target z przesunięciem.

Stworzyłeś wspaniałą stronę typu one-page. Nagłówek jest przyklejony do górnej krawędzi, a nawigacja oparta o hashe bez użycia JavaScript. Wygląda fajnie i nowocześnie, ale kliknięcie w link nawigacji powoduje przesunięcie na samą górę, a więc header skutecznie przykrywa fragment tej sekcji strony.

Jak zmusić stronę, aby ustawiała się pod nagłówkiem, czyli z przesunięciem o zadaną ilość pikseli?

Jest kilka rozwiązań tego problemu. Tu przedstawię jedną, nie wiem czy najprostszą, ale prostą.

Czytaj dalej

Brrrrr, czyli jak uniknąć <br/>

Tak jak współżycie bajkowego Pawła i Gawła było burzliwe, tak problematyczne może być ustawienie dwóch wycentrowanych elementów jeden pod drugim.

Niech za przykład posłuży poniższa struktura. Mamy tu element HEADER, a w nim nawigację (NAV) oraz zdjęcie (IMG), np. logo.

<header>
  <nav>
    <a href="#">menu 1</a>
    <a href="#">menu 2</a>
    <a href="#">menu 3</a>
    <a href="#">menu 4</a>
  </nav>

  <img src="http://kawalekkodu.pl/bl-themes/skeleton/img/kawalek_kodu.png" />
</header>

+

header {
  text-align: center;
}

nav {
  background: #ff0;
}
Czytaj dalej