Archiwum z kategorii 'HTML'

Rozszerzenie CustomizeGoogle w wersji 0.76 - dziurawe!

Przeglądając dziś wyniki wyszukiwania w Google za pomocą Firefoksa, ku mojemu zdziwieniu wyskoczyło mi na ekran okienko Avasta:

kon-trojanski-wtf2

Pierwsza myśl to, Google podrzuca złośliwy kod, chwila szperania w wynikach wyszukiwania, przegląd treści jaka jest przesyłana do strony z wynikami wyszukiwania i sprawca się znalazł.

Rozszerzenie Customize Google pozwala na dostosowanie do potrzeb użytkownika m.in. wyniki wyszukiwania Google. Dodatkowo pozwala na włączenie w wynikach pokazywania favicony danej strony, której wynik jest pokazywany.
Rozszerzenie działa w taki sposób, że podczas wczytywania wyników z Google, sprawdza czy dana strona posiada plik favicon.ico i jeśli tak jest to pokazuje obrazek obok tytułu danego wyniku. A co jeśli nie znajdzie?

Wtedy próbuje przeszukać domyślną stronę wejściową wyniku zapewne pobierając tylko dane z nagłówka, ale co jeśli do nagłówka dorzucimy kawałek złośliwego kodu?
Zostanie on uruchomiony i po cichu wstrzyknięty do naszego systemu, a miejsce przygotowane na faviconę danego wyniku wypełnione zostanie domyślnym obrazkiem ikony, po tym jak już zostaniemy zainfekowani.

Drugim sposobem jest przekierowanie na stronę zawierającą niebezpieczny kod.

Heh, nie trzeba daleko szperać i łazić po sieci aby zainfekować komputer. Wystarczy dziurawe rozszerzenie i i zaznaczona w ustawieniach opcja wyświetlania favicony:

kon-trojanski-wtf5

Oczywiście najszybszym rozwiązaniem jest - wyłączenie opcji wyświetlania ikon.

Na koniec zainfekowany wynik (co ciekawe nie był oznaczony napisem, ta witryna może uszkodzić Twój komputer)

kon-trojanski-wtf4

Profesjonalnie wykonana strona internetowa! … “Za grosze… ;)”

Niemożliwe? A możliwe, możliwe…

Jak co roku, druga niedziela stycznia to czas Wielkiej Orkiestry Świątecznej Pomocy do której i ja postanowiłem się w tym roku przyłączyć zbiórki, wspierając sztab w Brzegu i wystawić na aukcje to co umiem robić najlepiej :D, czyli pisanie zwycięzcy aukcji stronę internetową.

Heh, można powiedzieć: Masz firmę, nie masz strony weź udział w aukcji…

Do 11 stycznia 2009 roku możesz wziąć udział w aukcji internetowej, dzięki której możesz stać się posiadaczem / posiadaczką profesjonalnie i nowocześnie wykonanej strony WWW przez firmę Create WWW.

allegro-wosp-createwww

Poniżej krótki opis aukcji, więcej…

* Co wchodzi w skład usługi:
- zaprojektowanie i wykonanie strony internetowej firmy lub osoby prywatnej,
- strona będzie posiadała do 5 podstron (2 lub 3 opisowe do wykorzystania w dowolnej formie + moduł newsów i podstrona kontakt z formularzem służącym do komunikacji z właścicielem owej strony, dodatkowo istnieje możliwość skorzystania z dodania 1 dowolnego modułu - np: galerii lub księgi gości…)
- panel administracyjny strony,
- wybór wyglądu z pośród kilkudziesięciu gotowych szablonów lub możliwość projektu indywidualnego wyglądu strony po dostarczeniu materiałów do jego wykonania (po wykonaniu projektu indywidualnego możliwe są do wykonania 2 (dwie) jego poprawy wg. uwag zwycięzcy licytacji)
- domena z rozszerzeniem .pl lub com.pl (1 rok)
- hosting strony (1 rok),
- gwarancja wykonania strony wg. najnowszych standardów W3C,
- gwarancje poprawnego działania we wszystkich przeglądarkach

I jak warto nie warto? Zwycięzca aukcji przekaże wylicytowaną kwotę na konto WOŚP, a tym samym wykonam mu stronkę o wartości znacznie przekraczającej kwotę na jaka jest wystawiona aukcja :P

Warto też dodać że jest to jedyna taka aukcja z pośród, tych które są wystawione w dziale Internet serwisu
http://aukcje.wosp.org.pl

createwww1

Aby zachęcić do wzięcia udziału w aukcji zapraszam do obejrzenia realizacji do tej pory wykonanych stron firmy przez firmę Create WWW.

Jak odtwarzać muzykę na stronie, aby po każdym przejściu na podstronę nie zaczynała grać od początku?

Muzyka na stronie - temat dość kontrowersyjny. Jako, że sam nie polecam stosowania jakiegokolwiek zagnieżdżania muzyki na stronie www, to czasem nie da rady obejść wymagań klienta i pomimo własnych uprzedzeń trzeba tą muzykę na stronę wstawić.
Jeśli już wstawiamy muzykę na stronę, to jedna bardzo ważna zasada - nie katujmy użytkownika danej strony tym, że w momencie gdy przechodzi on na jedna z podstron serwisu musi on słuchać zagnieżdżonego fragmentu muzyki po raz kolejny od początku!

W sieci można znaleźć kilka sposobów (ja znalazłem 3 możliwości) na osiągnięcie płynnego odtwarzania muzyki, pozwalającego na jednoczesne przeglądanie zawartości serwisu. Oto one:
- Zastosowanie ramek -> samo wykorzystanie ramek w tym momencie eliminuje jego wykorzystanie,
- Zrobienie całej strony we Flashu - co mi się kojarzy równie podobnie jak wspomniane ramki,
- Zastosowanie wyskakującego okienka - co jest także złe, ale z trojga złego jeszcze do zaakceptowania, oczywiście licząc się z irytacją użytkownika, który zapewne uwielbia jak mu z boku wyskakują niekontrolowane, niepożądane okna oraz należy się liczyć z tym, że większość użytkowników ma włączoną blokadę wyskakujących niespodzianek.

Przeglądając kilka tygodni temu artykuły w serwisie Nettuts, jeden przykuł moja uwagę. Może nie tyle on co powstały w jego wyniku przykład wykorzystania jQuery do animowanego wczytywania zawartości podstron w jakimś tam serwisie.

Działa on w bardzo prosty sposób. Wchodząc na stronę, wczytana zostaje jej zawartość, w momencie gdy chcemy przejść na podstronę, doczytywana jest tylko treść z określonego diva, czyli wszystko nad tym divem nie jest ponownie wczytywane podczas “przeładowania” strony.

Pojawia się więc możliwość umieszczenia np. odtwarzacza z nieszczęsną muzyką powyżej zawartości, która doczytuje podstrony wykorzystując jQuery.

Przykład: http://medeco.p9.pl/ex/muzyka/

Pomimo znalezienia owego sposobu na wyżej opisany problem (bo opisany przeze mnie sposób w 95% przypadków może z powodzeniem zastąpić wspomniane powyżej) oraz pomimo tego, że nie trzeba stosować prehistorycznego kodu lub robienia całej strony we Flashu, to nie udało mi się wykorzystać go do celu w jakim go wymyśliłem :/.
Powodem było/jest to, że strona jaką ostatnio robiłem i, na której musiałem zastosować muzykę, posiada na każdej podstronie inne tło definiowane w body (czyli w części gdzie nie dochodzi do doczytania podstrony), co nie pozwala na wykorzystanie rozwiązania.
Może ktoś ma jakiś pomysł jak zmienić dodatkowo tło podstrony bez przeładowania? Chyba, że znacie jeszcze inne sposoby na ww. problem?

W każdym bądź razie może komuś się przyda powyższy pomysł na użycie muzyki na stronie :).

Przegląd możliwości języka HTML 5

W skrócie:
Internet jest stale rozwijany, każdego dnia widzimy tworzone nowe i coraz lepsze strony WWW, wykorzystujące możliwości HTML-a do granic możliwości. Język HTML 4 istnieje już niespełna dekadę i programiści poszukujący co raz to nowszych rozwiązań rozwoju Sieci, są blokowani przez ograniczenia języka oraz przeglądarek.

Aby dać twórcom stron większe pole manewru i możliwości, oraz uaktywnić bardziej interaktywne i pasjonujące strony internetowe oraz aplikacje - HTML 5 wprowadza i zwiększa tym samym możliwości pisania WWW.

Pracę nad piątą wersją HTML-a rozpoczęto w 2004 r. i na dzień dzisiejszy obecnie jest realizowany wspólnie przez W3C HTML WG oraz WHATWG. Wiele bardzo ważnych firm uczestniczy projektach w W3C (włączając w to przedstawicieli czterech głównych producentów przeglądarek: Microsoft, Mozillę, Operę i Apple) oraz wiele różnych organizacji i firm o różnym profilu działania.

Zauważyć jednak należy, że specyfikacja jest wciąż opracowywana i jeszcze długa droga przed do przebycia, aby ją ukończyć. Być może omówione za chwilę możliwości w tym artykule - będą mogły zostać zmienione. Artykuł ten stanowi krótkie wprowadzenie do istniejących głównych możliwości - takimi jakimi one są w bieżącym szkicu specyfikacji.

Struktura
HTML 5 wprowadza cały zestaw nowych elementów, które robią strukturę strony o wiele prostszą. Wiele stron w HTML 4 zawierają pospolitą strukturę (m.in. nagłówki, stopki i kolumny). Na dzień dzisiejszy zawieramy je w znacznik/elementy div wraz z nadanymi identyfikatorami (id) lub klasami (class).

structure-div.gif
Diagram ilustrujący typowy dwu kolumnowy układ strony przy użyciu znaczników div wraz z atrybutami id i class. Zawiera nagłówek, stopkę, poziomy pasek menu poniżej nagłówka. Głowna zawartość zawiera artykuł i pasek boczny po prawej stronie.

Użycie elementów div jest tak duże, ponieważ w bieżącej wersji HTML 4 jest brak niezbędnej i dokładnej semantyki dla opisu tych części. W języku HTML 5 zajęto się tym poprzez wprowadzenie nowych elementów, które reprezentują różne sekcje strony.

structure-html5.gif
Elementy div zostały zastąpione poprzez nowe elementy: header, nav, section, article, aside i footer.

Znaczniki strony powinny wyglądać podobnie jak w przykładzie poniżej:

<body>
  <header>...</header>
  <nav>...</nav>
  <article>
    <section>
      ...
    </section>
  </article>
  <aside>...</aside>
  <footer>...</footer>
</body>

Jest wiele korzyści z używania tych elementów. Kiedy używamy w połączeniu z elementami nagłówka (h1 do h6), wszystkie dostarczone w ten sposób znaczniki są zagnieżdżone na odpowiednim poziomie nagłówka, wyłączając sześć poziomów możliwych z poprzedniej wersji języka HTML. Specyfikacja zawiera szczegółowy algorytm do generowania zarysu, który uwzględnia strukturę tych elementów i nadal pozostaje kompatybilny wstecz z poprzednimi wersjami. Użyte może być poprzez autorskie narzędzia lub przeglądarki do generowania zawartości, aby pomóc użytkownikowi poruszać się po dokumencie.

Na przykład, następujący znacznik struktury wraz z zagnieżdżonymi elementami section i h1:

<section>
  <h1>Poziom 1</h1>
  <section>
    <h1>Poziom 2</h1>
    <section>
      <h1>Poziom 3</h1>
    </section>
  </section>
</section>

Zwróćcie uwagę, że dla lepszej kompatybilności z bieżącymi przeglądarkami, jest także możliwe zrobienie użytku z innych elementów nagłówka (h2 do h6) stosując odpowiednio w miejsce elementów h1.

Poprzez identyfikację celu danej sekcji na stronie, przy zastosowaniu określonych elementów podziału strony, technologia wspierająca może być pomocna użytkownikowi do łatwego przechodzenia po stronie. Na przykład, w prosty sposób można przeskoczyć nad sekcją menu lub szybko przeskoczyć z jednego artykułu do drugiego bez potrzeby wprowadzania przez autora odpowiedniego odnośnika. Autorzy również korzystają ponieważ zastępując wiele elementów div w dokumencie z jednym z kilku oddzielnych elementów, może pomóc w robieniu kodu źródłowego czystszym łatwiejszym dla autora.

Element header przedstawia nagłówek sekcji. Nagłówki mogą zawierać więcej, niż tylko sekcje przykładu dla nagłówka, to rozsądnie byłoby header obejmować pod nagłówkami.

<header>
  <h1>Podgląd HTML 5</h1>
  <p class="byline">By Lachlan Hunt</p>
</header>

<header>
  <h1>Przykładowy blog</h1>
  <h2>Wstaw znaczniki liniowe.</h2>
</header>

Element footer reprezentuje stopkę dla sekcji, to stosującej. Stopka zwykle zawiera informacje o swojej sekcji, takie jak kto napisał stronę, odnośniki do powiązanych dokumentów, prawo autorskie, i podobne.

<footer>© 2007 Przykład Inc.</footer>

Element nav reprezentuje sekcję odnośników nawigacji/menu. Jest on odpowiedni dla każdej nawigacji strony lub zawartości tabeli.

<nav>
  <ul>
    <li><a href="/">Home</a></li>
    <li><a href="/products">Products</a></li>
    <li><a href="/services">Services</a></li>
    <li><a href="/about">About</a></li>
  </ul>
</nav>

Element aside, który jest zawartością styczną do zawartości strony i jest zazwyczaj wykorzystywany do oznaczenia pasków bocznych.

<aside>
  <h1>Archives</h1>
  <ul>
    <li><a href="/2007/09/">September 2007</a></li>
    <li><a href="/2007/08/">August 2007</a></li>
    <li><a href="/2007/07/">July 2007</a></li>
  </ul>
</aside>

Element section przedstawia ogólny fragment dokumentu albo aplikacji, taki jak rozdział, na przykład:

<section>
  <h1>Chapter 1: The Period</h1>
  <p>It was the best of times, it was the worst of times,
     it was the age of wisdom, it was the age of foolishness,
     it was the epoch of belief, it was the epoch of incredulity,
     it was the season of Light, it was the season of Darkness,
     ...</p>
</section>

Element article przedstawia niezależny fragment dokumentu, strony albo miejsca. Jest to odpowiednie dla zawartości takich jak wiadomości albo artykuły na blogu, postu na forum albo indywidualnych komentarzy.

<article id="comment-2">
  <header>
    <h4><a href="#comment-2" rel="bookmark">Comment #2</a>
        by <a href="http://example.com/">Jack O'Niell</a></h4>
    <p><time datetime="2007-08-29T13:58Z">August 29th, 2007 at 13:58</time>
  </header>
  <p>Kolejny wspaniały artykuł!</p>
</article>

Audio i wideo
W ostatnich latach, wideo i audio w Internecie stały się coraz bardziej widoczne i witryny jak YouTube, Viddler, Revver, MySpace oraz tuzin innych - czynią je łatwymi dla każdego, kto chce opublikować swoje wideo i audio. Jednakże, od bieżącego języka HTML nie otrzymujemy koniecznego sposobu, aby z powodzeniem zagnieździć i kontrolować multimedia, funkcjonalność wielu takich witryn opiera się na technologii Flash. Pomimo, że można wbudować multimedia używając różnych wtyczek (takich jak QuickTime, Windows Media, itd.), Flash jest obecnie tylko powszechnie rozpowszechnioną stosowaną wtyczką, która dostarcza kompatybilne rozwiązanie z odpowiednim API dla programistów.

Jak świadczony przez różnych opartych o Flash odtwarzaczach medialnych, autorzy interesują się dostarczaniem własnych zaprojektowanych interfejsów użytkownika, które ogólnie pozwalają użytkownikom na odtwarzanie, przerywanie, zatrzymywanie oraz na regulację głosu. Planowane jest dostarczenie podobnej funkcjonalności w przeglądarkach poprzez dodanie natywnej obsługi dla zagnieżdżonych audio i video oraz dostarczeniu API DOM skryptom do kontroli nagrania.

Nowe elementy video i audio czynią to prostymi. Zarówno Opera i WebKit posiadają swe finalne wersję wraz z częściową obsługą elementu video.

Najprostszy sposób, aby zagnieździć video jest zastosowanie elementu video i pozwolić przeglądarce dostarczyć domyślny interfejs użytkownika. Atrybut controls jest typem logicznym, który określa gdzie chcielibyśmy lub nie chcielibyśmy włączyć lub wyłączyć domyślny UI.

<video src="video.ogv" controls poster="poster.jpg"
width="320" height="240">
    <a href="video.ogv">Pobierz film</a>
</video>

Opcjonalny atrybut poster służy do określenia obrazka, który będzie wyświetlony w miejsce video przed tym jak zacznie być odtwarzane. Jest więcej formatów, które obsługują własną ramkę zdjęcia, takie jak MPEG-4, który to dostarcza alternatywnego rozwiązanie, które może pracować indywidualnie z formatu video.

To jest właśnie proste osadzić audio do strony używającej element audio. Większość z atrybutów jest wspólna między elementami video, a audio, pomimo że z oczywistych względów, elementowi audio brakuje width, height i atrybutów poster.

<audio src="music.oga" controls>
    <a href="music.oga">Pobierz piosenkę</a>
</audio>

HTML 5 dostarcza element source dla określenia alternatywnego pliku audio lub video, które ma wybrać przeglądarka opierając się na jego typie lub obsłudze kodeka. Atrybut media możemy użyć do określenia wartości atrybutu, który może opierać się na jakiś ograniczeniach urządzenia oraz atrybucie type dla określenia typu. Zwróć uwagę, że kiedyś używasz elementu source, atrybut src musi zostać pominięty w ich elemencie rodzica video lub audio lub alternatywne elementy source zostaną zignorowane.

<video poster="poster.jpg">
    <source src="video.3gp" type="video/3gpp"
    media="handheld">
    <source src="video.ogv" type="video/ogg;
    codecs=theora, vorbis">
    <source src="video.mp4" type="video/mp4">
</video>
<audio>
  <source src="music.oga" type="audio/ogg">
  <source src="music.mp3" type="audio/mpeg">
</audio>

Dla twórców, którzy chcą odrobinę więcej kontroli nad interfejsem użytkownika, tak że oni mogą sprawiać, że to pasuje do ogólnego projektu strony internetowej, rozległe API dostarcza kilku metod oraz zdarzeń pozwalającym skryptów kontrolować odgrywane media. Najprostsze metody do wykorzystania są to play(), pause() i ustawiając currentTime, aby przewinąć do początku. Następujący przykład ilustruje wykorzystanie tego.

<video src="video.ogg" id="video"></video>
<script>
  var video = document.getElementById("video");
</script>
<p><button type="button" onclick="video.play();">Play</button>
   <button type="button" onclick="video.pause();">Pause</button>
   <button type="button" onclick="video.currentTime = 0;">
   << Rewind</button>

Dłuższy opis atrybutów znajduje się w aktualnej wersji specyfikacji.

Dokument
To co zapewne wszystkich ciekawi najbardziej to możliwości jakie da nam nowy język HTML 5, który posiada składnię kompatybilną z językiem HTML 4 i dokumentami XHTML1 opublikowanymi w Sieci. Dokumenty stosujące wspomnianą składnie muszą być podawane przeglądarce jako text/html.

HTML 5 szczegółowo definiuje reguły parsowania składni (wraz z obsługą błędów), które są bardziej kompatybilne z popularnymi implementacjami. User Agent będzie postępował według tych reguł z zasobami, które posiadają Typ MIME text/html.

Przykład dokumentu podporządkowującego się składni HTML:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

XML jest inną składnią jaka może być stosowana dla języka HTML 5. Składnia ta jest kompatybilna z dokumentami XHTML1. Dokumenty stosujące tą składnię powinny być/wymagają podawane przeglądarce wraz z typem MIME XML oraz wymagają umieszczenia w przestrzeni nazw http://www.w3.org/1999/xhtml.
Poniżej mamy przykład dokumentu HTML 5 podporządkowującego się składni XML. Zwracamy szczególną uwagę, że dokumenty XML muszą posiadać typ MIME XML, czyli takie jak: application/xhtml+xml lub application/xml.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

Wpis powstał w oparciu o artykuł “A Preview of HTML 5” ze strony A List Apart. We wpisie wykorzystałem dwie zawarte grafiki, które pomagają opisać nowe elementy HTML 5

Kurs WWW - HTML + CSS w 40h - możliwe?

No w końcu się odbędzie kurs WWW na jaki się zapisałem jeszcze w październiku. Zapisując się poinformowano mnie, że to będzie HTML + podstawy JavaScriptu, teraz doszły jeszcze arkusze stylów.

Nie wiem jak to w ogóle może być możliwe przeprowadzenie kursu w 40 godzin o takim materiale, do tego kurs kończy się egzaminem, po którym Ministerstwo Edukacji wystawia certyfikat, że się zostało projektantem stron WWW. O ile oczywiście zaliczy się końcowy egzamin.
Jeśli do tej pory odbywały się takie kursy, to już wiadomo, skąd się biorą potworki w Sieci. Może i tym razem przedstawię materiał kursu bo zmienił się on od pierwotnie zakładanego:

 CZAS TRWANIA:
40 godzin
Kurs realizowany jest w systemie codziennym od poniedziałku do piątku w godz. od 9.00 do 13.00.

   CO UMOŻLIWIA KURS:
- uzyskanie kwalifikacji projektanta stron www, potwierdzonych zaświadczeniem o ukończeniu kursu na druku Ministerstwa Edukacji Narodowej.

   PROGRAM KURSU obejmuje m.in.:
1. Wprowadzenie - 1 godz.
- podstawy działania sieci Internet
- wprowadzenie do technologii WWW i HTML
2. Przeglądarki WWW - 1 godz.
3. HTML - 10 godz.
- struktura dokumentu
- czcionki
- bloki
- odsyłacze
- wykazy
- tabele
- style
- ramki
- formularze
4. Kaskadowe Arkusze Stylów (CSS) - 14 godz.
a) Vademecum CSS
- formatowanie tekstu
- tło
- obramowanie
- margines
- listy
- pozycjonowanie
- kursor
- pasek przewijania
b) Przykładowe projekty
5. Umieszczanie stron na serwerze WWW - 4 godz.
6. Java Script - wprowadzenie - 2 godz.
7. Wstawianie gotowych elementów Java Script do ston WWW - 2godz.
8. Tworzenie elementów multimedialnych w technologii Flash -6 godz.

W porównaniu to tego co miałem mieć na początku to usunięto punkt o poznaniu narzędzi do tworzeniu WWW, a dodano sporo, CSS + przegląd projektów w nim zrobionych. Cały czas nie mogę aż się nadziwić :D prędkości tego kursu, zapewne odbije się to strasznie na jakości nauczania jak i późniejszych efektów w postaci stron WWW.
Oby późniejsi projektanci nie stali się fachowcami od ramek, co najgorsze to strona samego kursu jest wykonana za pomocą ramek :|
ramki.gif

Spoglądając w źródło przypomniał mi się post Pawła Wimmera nt. ramek, i oby Pawle nadal spoczywały w spokoju, bo jak na tym kursie zaczną je wskrzeszać to będzie ROTFL x 1000. Według mnie nie powinno się ich już uczyć, jedynie można by było wspomnieć, że istnieją w dokumentacji ale na tym bym pozostał. Jeszcze jestem ciekaw, czy pójdą na łatwiznę wybierając tabele do rozmieszczenia elementów na stronie czy pokuszą się o divy i zastosowanie CSS-a. Można tu teraz się tak zastanawiać bo może po to właśnie rozszerzyli kurs aby były te divy (choć to raczej byłoby marzeniem).
Co do wycofanego omówienia programów do budowy WWW to myślę, że słuszna decyzja - sądząc po źródle kursu:

meta.gif

Mam mnóstwo pytań bez odpowiedzi, ale to już niebawem się zmieni - o wynikach tego kursu napisze na pewno!

CSS - 35 praktycznych zastosowań!

Chcąc pokazać jakie ma możliwości CSS, postanowiłem, że stworzę listę użytecznych fragmentów kodu CSS, jakie można znaleźć w Sieci:

- Podmienianie obrazka za pomocą CSS
css-1.gif

- Lista linków z czarnym tłem po najechaniu na odnośnik - przykład
css-2.gif

- Wyskakujące okienka w CSS :)
css-4.gif

- Cudzysłowy w CSS-ie
css-3.gif

- Miniatury
css-5.gif

- Kalendarz w postaci listy
css-6.gif

- Menu zachowujące się jakby było zrobione we Flashu
css-7.gif

- Drukowanie strony WWW - artykuł opisujący jak za pomocą CSS, można przekształcić stronę internetową w dokument nadający się do druku (który nie zawiera zbędnych części strony, a właściwą treść).

- Powiększenie treści za pomocą CSS-a.

- Utworzenie gwiazdek do głosowania w CSSie (nowszy przykład)
css-8.gif

- Kilka sposobów na ostylowanie odwiedzonych odnośników
css-9.gif

- Oznaczanie odwiedzonych odnośników - przykład
css-18.gif

- Oznaczenie odnośników odnoszących się do *.pdf
css-10.gif

- Pasek postępu w CSS - używa wartości procentowych
percentimage_back.png

- Odnośniki pozwalające użytkownikowi na decyzję czy się chce daną stronę otworzyć w oknie w jakim się teraz znajduje, czy chce się otworzyć w nowym oknie.
css-11.gif

- Kontrolki formularza
css-12.gif

- Tło jako drobna krateczka
css-13.gif

- Obramowanie w pudełkach / przypomina wiersze w tabeli - przykład przedstawia jak postępować w 5 krokach, na koniec osiągając podobny efekt jak jest poniżej
css-14.gif

- Przyciski z zaokrąglonymi rogami
css-15.gif

- Kontrolki formularza: przyciski
css-16.gif

- Wiersze tabeli bardziej czytelne niż pozostałe wiersze
css-17.gif

- Bardzo proste, dostosowane pod względem dostępności odnośniki zewnętrzne.

- Przypisy - przykład
css-19.gif

- Mapa strony za pomocą CSS-a - przykład
css-20.gif

- Wiadomości ostrzeżeń w CSS
css-21.gif

- Dodawanie do odnośników obrazków będących ikonami za pomocą CSSa
css-23.gif

- Zaokrąglone rogi w CSS
css-24.gif

- Pudełko z zaokrąglonymi rogami oraz z wcięciem
css-26.gif

- Częściowa przeźroczystość
css-27.gif

- Podpis obrazków
css-28.gif

- Kolorowanie wierszy - sprawia, że w naszych tabelach staje się wszystko czytelne i ładnie wyglądające, ponieważ co drugi wiersz jest tego samego koloru.

- Efekt gradientu w tekście za pomocą CSSa- demo
css-29.gif

- Ładne cytowanie treści
css-30.gif

- Zmiana stylu listy wyliczeniowej
css-31.gif

- Zaawansowane menu w CSS - przykład
css-32.gif

Tym razem tylko 35 bajerków na stronę, następnym razem postaram się zwiększyć ich liczbę. Warto mieć w jednym miejscu zebrane przykłady, dla których można wykorzystać możliwości drzemiące w CSS-ie.

Różnice pomiędzy językami HTML 4 oraz HTML 5 - cz. II

Na początek: jest to dalsza część wczorajszego opisywania różnic pomiędzy językami HTML 4 oraz HTML 5 :)

Nieobecne elementy:
Poniższych elementów nie ma w HTML 5, ponieważ efekt ich działania dotyczy wyglądu aplikacji (prezentacji) i lepiej jest je wyświetlać za pomocą języka CSS:

  • basefont
  • big
  • center
  • font
  • s
  • strike
  • tt
  • u

Poniższych elementów nie także ma w języku HTML 5, ponieważ ich stosowanie miało zły wpływ na usability i dostępność aplikacji dla użytkownika końcowego.

  • frame
  • frameset
  • noframes

Poniższe elementy nie są dołączone, ponieważ były wykorzystywane bardzo rzadko, tworząc zamieszanie lub mogą zostać zastąpione przez inne podobne elementy:

  • acronym - nie został dołączony ponieważ tworzy on zbyt wiele nieporozumień. Można w zamian stosować abbr dla skrótów (ang. abbreviations).
  • applet - stał się przestarzały względem object.
  • isindex
  • dir - stał się przestarzały względem ul.

Brakujące atrybuty:
Niektóre atrybuty języka HTML 4 nigdy więcej nie będą dostępne w wersji piątej.

  • atrybut accesskey w a, area, button, input, label, legend i textarea.
  • atrybuty rev i charset w link i a.
  • atrybuty shape i coords w a.
  • atrybut longdesc w img i iframe.
  • atrybut target w link.
  • atrybut nohref w area.
  • atrybut profile w head.
  • atrybut version w html.
  • atrybut name w map, img, object, form, iframe, a (w zamian można zastosować id).
  • atrybut scheme w meta.
  • atrybuty archive, classid, codebase, codetype, declare i standby w object.
  • atrybuty valuetype i type w param.
  • atrybuty charset i language w script.
  • atrybut summary w table.
  • atrybuty headers, axis i abbr w td i th.
  • atrybut scope w td.

W dodatku, HTML 5 nie posiada atrybutów odpowiedzialnych za wygląd na stronie (prezentacji), które były w wersji 4. Zostały one przeniesione do arkusza CSS, będącego właściwym miejscem na definiowanie wyglądu strony:

  • atrybut align w caption, iframe, img, input, object, legend, table, hr, div, h1, h2, h3, h4, h5, h6, p, col, colgroup, tbody, td, tfoot, th, thead, tr i body.
  • atrybuty alink, link, text i vlink w body.
  • atrybut background w body.
  • atrybut bgcolor w table, tr, td, th i body.
  • atrybut border w table, img i object.
  • atrybuty cellpadding i cellspacing w table.
  • atrybuty char i charoff w col, colgroup, tbody, td, tfoot, th, thead i tr.
  • atrybut clear w br.
  • atrybut compact w dl, menu, ol i ul.
  • atrybut frame w table.
  • atrybut frameborder w iframe.
  • atrybut height w iframe, td i th.
  • atrybuty hspace i vspace w img i object.
  • atrybuty marginheight i marginwidth w iframe.
  • atrybut noshade w hr.
  • atrybut nowrap w td i th.
  • atrybut rules w table.
  • atrybut scrolling w iframe.
  • atrybut size w hr, input i select.
  • atrybut style we wszystkich elementach z wyjątkiem font.
  • atrybut type w li, ol i ul.
  • atrybut valign w col, colgroup, tbody, td, tfoot, th, thead i tr.
  • atrybut width w hr, table, td, th, col, colgroup, iframe i pre.

API
HTML 5 wprowadza kilka API, które pomagają w tworzeniu aplikacji internetowych. Mogą być one stosowane razem z nowymi elementami wprowadzonymi do aplikacji:

Rozszerzenia do HTMLDocument

HTML 5 poszerzył interfejs HTMLDocument z DOM Level 2 HTML. Interfejs jest teraz zaimplementowany na wszystkich obiektach implementujących interfejs Document.

  • getElementsByClassName() - aby wybrać elementy poprzez ich nazwę klasy. Sposób w jaki jest zdefiniowana ta metoda pozwala jej na pracę z jakąkolwiek zawartością z atrybutami class i obiektem Document, taki jak SVG i MathML.
  • innerHTML
  • activeElement oraz hasFocus
  • getSelection()
  • designMode i execCommand(), które są często stosowane do edycji dokumentów.

Rozszerzenia do HTMLElement

Interfejs HTMLElement posiada także kilka dostępnych rozszerzeń w języku HTML 5:

  • getElementsByClassName()
  • innerHTML
  • classList
Dzisiejszy post jest dokończeniem poprzedniego wpisu.

Czytaj także:

Różnice pomiędzy językami HTML 4 oraz HTML 5

Jak już wspomniałem post wcześniej, w3c wydało specyfikację języka HTML 5 (WD). Artykuł poniżej porównuje wersje 4 i 5 języka HTML. Porównanie zostało opracowane na podstawie dokumentu Konsorcjum W3C.

UWAGA: HTML 5 jest wciąż szkicem roboczym specyfikacji!

Kompatybilność wstecz!
Pierwszym dużym plusem języka HTML 5 jest to, że jest zdefiniowany w sposób umożliwiający kompatybilność wstecz.

Składnia:
To co zapewne wszystkich ciekawi najbardziej to możliwości jakie da nam nowy język HTML 5, który posiada składnię kompatybilną z językiem HTML 4 i dokumentami XHTML1 opublikowanymi w Sieci. Dokumenty stosujące wspomnianą składnie muszą być podawane przeglądarce jako text/html.

HTML 5 szczegółowo definiuje reguły parsowania składni (wraz z obsługą błędów), które są bardziej kompatybilne z popularnymi implementacjami. User Agent będzie postępował według tych reguł z zasobami, które posiadają Typ MIME text/html.

Przykład dokumentu podporządkowującego się składni HTML:

<!doctype html>
<html>
  <head>
    <meta charset="UTF-8">
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

XML jest inną składnią jaka może być stosowana dla języka HTML 5. Składnia ta jest kompatybilna z dokumentami XHTML1. Dokumenty stosujące tą składnię powinny być/wymagają podawane przeglądarce wraz z typem MIME XML oraz wymagają umieszczenia w przestrzeni nazw http://www.w3.org/1999/xhtml.
Poniżej mamy przykład dokumentu HTML 5 podporządkowującego się składni XML. Zwracamy szczególną uwagę, że dokumenty XML muszą posiadać typ MIME XML, czyli takie jak: application/xhtml+xml lub application/xml.

<?xml version="1.0" encoding="UTF-8"?>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Przykładowy dokument</title>
  </head>
  <body>
    <p>Przykładowy paragraf</p>
  </body>
</html>

Kodowanie znaków
W kwestii kodowania mamy ważne trzy główne ustawienia:

  • Sposób przesłania. Na przykład; poprzez użycie nagłówka HTTP o zawartości Content-Type.
  • Użycie BOM
  • Użycie elementów meta z określonym atrybutem charset, który określa kodowanie jako pierwszy potomny elementu head. <meta charset="UTF-8"> może być stosowany do określenia kodowania UTF-8. Ten fragment kodu zastąpił nam: <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

Element DOCTYPE
Deklaracją DOCTYPE jest <!DOCTYPE html> i jest on niezależny. Wcześniejsze wersje języka HTML zawierały długie elementy DOCTYPE, a to tylko dlatego, że był on oparty na języku SGML i żądał odniesienie do DTD. W HTML 5 DOCTYPE jest nam tylko potrzebny do ustawienia trybu standardów dla dokumentu napisanego za pomocą składni HTML.

Nowe elementy:
Następujące elementy wprowadzono dla polepszenia struktury:

  • section - przedstawia ogólny dokument. Może być stosowany wraz z h1-h6, aby określić strukturę dokumentu.
  • article - reprezentuje niezależny kawałek zawartości dokumentu, taki jak wprowadzenie wpis na blogu albo artykuł w gazecie.
  • aside - reprezentuje kawałek zawartości, która jest marginalnie powiązany z resztą strony.
  • header - reprezentuje nagłówek sekcji.
  • footer - reprezentuje stopkę sekcji i może zawierać pewne informacje o autorze, prawach autorskich itd.
  • nav - reprezentuje sekcję wewnątrz dokumentu służącą do nawigacji.
  • dialog - służy do wyróżnienia rozmowy, tak jak poniżej:
    <dialog>
           <dt> Costello
           <dd> Look, you gotta first baseman?
           <dt> Abbott
           <dd> Certainly.
           <dt> Costello
           <dd> Who's playing first?
           <dt> Abbott
           <dd> That's right.
           <dt> Costello
           <dd> When you pay off the first baseman...
           <dt> Abbott
           <dd> Every dollar of it.
    </dialog>
  • figure - służy do powiązania podpisu razem z jakąś zagnieżdżoną zawartością, taką jak grafika czy wideo:
    <figure>
           <video src=ogg>…</video>
           <legend>Przykład</legend>
    </figure>

Następnie mamy kilka innych nowych elementów:

  • audio i video dla multimedialnej zawartości. Obydwa dostarczają API więc autorzy aplikacji mogą wprowadzać swój własny interfejs. Elementy source są używane razem z tymi elementami jeśli jest dostępnych wiele strumieni różnych typów.
  • embed - jest stosowany do zagnieżdżania zawartości.
  • m - reprezentuje uruchomiony zaznaczony tekst.
  • meter - reprezentuje pomiar, taki jak użycie dysku.
  • time - reprezentuje datę i czas.
  • canvas - jest stosowany do renderowania dynamicznych grafik mapy bitowej w locie, m.in. wykresy, gry itd.
  • command - reprezentuje polecenie, na które ma wpływ użytkownik poprzez odwołanie się.
  • datagrid - reprezentuje interaktywne przedstawienie listy drzewa lub danych z tabeli.
  • details - reprezentuje dodatkowe informacje albo kontrolki, które użytkownik może uzyskać na żądanie.
  • datalist - razem z nowym atrybutem list użytego dla input, aby utworzyć pola rozwijane (comboboxes):
    <input list=browsers>
    <datalist id=browsers>
           <option value="Safari">
           <option value="Internet Explorer">
           <option value="Opera">
           <option value="Firefox">
    </datalist>
  • Elementy datatemplate, rule i nest dostarczają szablony mechanizmów dla HTML.
  • event-source - jest stosowany do “przechwycenia” zdarzenia wysłanego przez serwer.
  • output - reprezentuje jakiś typ wyjściowy, taki jak formularz kalkulacji wykonany poprzez skrypt.
  • progress - reprezentuje ukończenie zadania, takiego jak pobieranie lub wykonanie serii czasochłonnych operacji.

Atrybut type elementu input posiada teraz następujące nowe wartości:

  • datetime
  • datetime-local
  • date
  • month
  • week
  • time
  • number
  • range
  • email
  • url

Ideą nowych typów jest to, że user agent potrafi dostarczyć UI, takie jak okienko kalendarza lub może zintegrować się z książką adresową użytkownika. Daje to użytkownikowi więcej możliwości do wykorzystania.

Nowe atrybuty:
HTML 5 wprowadza kilka nowych atrybutów w różnych elementach, które aktualnie są częścią języka HTML 4:

  • Atrybut media w elementach a i area
  • Atrybut ping w elementach a i area. Atrybut powinien zawierać listę oddzielonych znakiem spacji identyfikatorów URI, do których ma zostać wysłane powiadomienie, gdy użytkownik kliknie odnośnik. Warto przeczytać…
  • Atrybuty hreflang i rel posiada teraz element area.
  • Element base posiada teraz atrybut target, natomiast z elementów a i area został on wycofany.
  • Atrybut value dla elementu li nie jest już dostępny. To samo dotyczy atrybutu start w elemencie ol.
  • Element meta posiada atrybut charset w krótszej i bardziej przyjaznej formie.
  • Nowy atrybut autofocus może być określony w elementach input (oprócz momentu gdy atrybut type ma wartość hidden), select, textarea i button.
  • Nowy atrybut form dla elementów input, output, select, textarea, button i fieldset pozwalający łączyć kontrolki w więcej, niż na jednym formularzu.
  • Elementy input, button i form posiadają nowy atrybut replace.
  • Elementy form i select (tak jak element datalist) posiadają atrybut data pozwalający automatycznie wypełnić kontrolki formularza.
  • Nowy atrybut required stosowany do elementów input (oprócz momentu, gdy atrybut type ma wartość hidden, image lub jakiś typ przycisku jest jako submit) i textarea. Określa, że użytkownik musi wypełnić wartości formularza.
  • Elementy input i textarea posiadają nowy atrybut inputmode, który wyznacza jakiego rodzaju jest oczekiwana zawartość pola wejściowego.
  • Atrybut disabled w elemencie fieldset, służący do jego całkowitego wyłączenia, co nie było możliwe w HTML 4.
  • Element input posiada kilka nowych atrybutów określonych przymusowo: autocomplete, min, max, pattern i step.
  • input i button także posiadają atrybut template, który zastosowano do szablonów powtórzających się.
  • Element menu ma trzy nowe atrybuty: type, label i autosubmit. Pozwalają na przerobienie menu tak, jak można znaleźć w typowych interfejsach tak samo jak dostarczanie dla menu kontekstowego połączenia z globalnym atrybutem contextmenu.
  • Element style posiada nowy atrybut scoped.
  • Element script posiada nowy atrybut async.
  • Element html posiada nowy atrybut manifest.

Kilka atrybutów z języka HTML 4, teraz zastosujemy do wszystkich elementów. Są one wywołane globalnie: class, dir, id, lang, tabindex i title.

Kilka nowych globalnych atrybutów:

  • Atrybut contenteditable określający, że element posiada obszar do edycji. Użytkownik może zmienić zawartość elementu poprzez manipulacje znacznikiem.
  • Atrybut contextmenu.
  • Atrybut draggable użyty razem z nowym API drag & drop.
  • Atrybut irrelevant określający, że element nie jest już stosowany.
Heh, nawet nie zauważyłem kiedy ten post zrobił się, aż tak długi :]. Aby nie zrobiła się z tego totalny artykuł bez końca - podzielę go na dwie części. W drugiej części znajdzie się pozostała część opisująca różnice między wersjami HTML 4 i 5. 

Przeczytaj również:

HTML 5 - FPWD - został opublikowany!

22 stycznia br. została opublikowany pierwszy publiczny Working Draft specyfikacji języka HTML w wersji 5-ej.

w3c-html5-2.png

Wraz z nią został także opublikowany dokument (posiadający także status WD) omawiający różnice jakie występują pomiędzy językami HTML 4 oraz HTML 5.

w3c-html5.png

  1. HTML 5 (W3C Working Draft 22 January 2008)
  2. HTML 5 differences from HTML 4 (W3C Working Draft 22 January 2008)

Nowe oblicze języka HTML zaczyna nabierać kolorów. To co zawierają ww. dokumenty jest efektem kilku lat pracy najlepszych programistów.

Zapisałem się na… kurs tworzenia stron WWW

Tak, to prawda! Ostatnio będąc we Wrocławiu postanowiłem zapisać się na Kurs WWW. Jako, że webmaster ze mnie dobry (chyba) :P to postanowiłem zapisać się na owy kurs z dwóch powodów:

  • Pierwszym powodem jest to, że po tygodniu będę miał dyplom Ministerstwa Edukacji o ukończeniu takiego kursu, co zapewne się przyda do portfolio,
  • Drugim powodem jest to, że chcę sprawdzić czego właściwie można się na takim kursie nauczyć?!

Działając przez ponad dwa lata w Osiolki.net wiem, że poziom pisanych stron w Polsce nie jest doskonały. Chcąc sprawdzić skąd się to bierze wpadłem na ww. pomysł ;). Także dziś rano (tzn. w niedziele) pojechałem zapisać się na kurs który potrwa, bagatela 30 godzin! Jak by nie patrzeć w 30 h to raczej nikt nie będzie umiał pisać stron. Ale z drugiej strony, może się mylę. Kurs odbędzie się w Prominet Collage i oferuje następujący program:


CEL KURSU:
- błyskawiczne i profesjonalne zdobycie wiedzy z zakresu tworzenia stron WWW,
- poznanie wybranych zastosowań i narzędzi informatycznych z danego zagadnienia.
Kurs prowadzony jest w formie warsztatów podczas których każdy z uczestników wykona własną działającą stronę WWW.

CZAS TRWANIA:
30 godzin
Kurs realizowany jest w systemie codziennym od poniedziałku do piątku w godz. od 9.00 do 13.00.

CO UMOŻLIWIA KURS:
- uzyskanie kwalifikacji projektanta stron www, potwierdzonych zaświadczeniem o ukończeniu kursu na druku Ministerstwa Edukacji Narodowej.

PROGRAM KURSU obejmuje m.in.:
1. Wprowadzenie - 1 godz.
- podstawy działania sieci Internet
- wprowadzenie do technologii WWW i HTML
2. Przeglądarki WWW - 1 godz.
3. HTML - 10 godz.
- struktura dokumentu
- czcionki
- bloki
- odsyłacze
- wykazy
- tabele
- style
- ramki
- formularze
4. Przegląd programów wspomagających tworzenie stron - 4 godz.
5. Umieszczanie stron na serwerze WWW - 4 godz.
6. Java Script - wprowadzenie - 2 godz.
7. Wstawianie gotowych elementów Java Script do ston WWW - 2godz.
8. Tworzenie elementów multimedialnych w technologii Flash -6 godz.

Zostałem poinformowany, że kurs zacznie się około 15 listopada, z miłą chęcią zdam relację z jego przebiegu. Przynajmniej na własnej skórze dowiem się jak się uczy przyszłych webmasterów w szkołach oraz na jakich metodach się to robi. Aż mnie ciekawi, czy od razu zostanie podjęta walka z divami, czy dla uproszczenia pozostanie wytłumaczone jak robić strony w tabelkach :/, albo nie daj Boże na ramkach (grr… zgroza).

Następna strona »