Jak wstawić znak wodny w HTML na stronie?

Wstawianie znaku wodnego najczęściej praktykuje się w różnego rodzaju grafikach i zdjęciach, gdzie trzeba oznaczyć obraz nazwą autora lub logo firmy, która wykonała dane dzieło. Ale co jeśli chce ktoś umieścić taki znak wodny, pod tekstem na swojej stronie www? Można to w prosty zrobić za pomocą tandemu HTML+CSS.

Na początek potrzebny Ci będzie plik graficzny, który chcesz wrzucić pod tekst. Ważne żeby to był plik z przezroczystością (png lub gif). Jeśli będzie na białym tle, to również może być, ale tylko pod warunkiem że tło na stronie również jest białe. W innym przypadku będzie to źle wyglądało.

W naszym przypadku użyjemy tej grafiki:

przykładowa grafika pod znak wodny

Następnie trzeba zdefiniować w CSS tak, aby powyższy obrazek stworzył tło pod blokiem tekstowym. Do tego wystarczy użyć reguły background-image. Poniżej pełen listing HTML+CSS w którym pomocniczo, dodane jest jeszcze kilka innych reguł:

<html>
<head>
<style type="text/css">
p {
	border: medium solid back;
	font-size: 30px;
	background-color: #F5F5F5;
	background-image: url(znak-wodny.png);
	background-size: contain;
	background-repeat: round;
}
</style>
</head>
<body>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</p>
</body>
</html>

Pogrubioną czcionką zaznaczyłem fragment kodu, odpowiedzialnego za działanie skryptu. W efekcie uzyskasz takie coś:

przykład wstawiania znaku wodnego w html i css

Jak widać trochę obrazek gryzie się z tekstem, bo powinien być trochę bladszy i najlepiej w jasnoszarym kolorze. Ale tutaj bardziej chodzi o pokazanie na przykładzie.

Teraz wyjaśnię poszczególne linijki:

background-color: #F5F5F5; – ustalanie koloru tła akapitu, w przykładzie lekko szary
background-image: url(znak-wodny.png); – tutaj najważniejsza linijka w której wstawiasz lokalizację pliku graficznego na serwerze, który posłuży jako tło czyli znak wodny
background-size: contain; – tutaj ustala się wielkość obrazu, można ustawić ręcznie w jakim rozmiarze ma się wyświetlać, albo wybrać jedne z gotowych przełączników:
contain – skalowanie do największego rozmiaru, który zmieści się w obrębie pola tekstowego (z zachowaniem proporcji)
cover – skalowanie do najmniejszego rozmiaru
auto – wyświetlanie w pełnym rozmiarze
background-repeat: round; – ustawianie powtórzeń obrazka oraz jego orientacja:
repeat-x – powtarzanie, orientacja w poziomie, może być urwany
repeat-y – powtarzanie, orientacja w pionie, może być urwany
repeat – powtarzanie w obu kierunkach, urwany
space – dostosowanie aż do wypełnienia obszaru, bez urywania, rozłożenie równomierne
round – skalowanie w taki sposób żeby nie urywać
no-repeat – bez powtarzania

Oczywiście opcji jest jeszcze więcej, można je znaleźć w oficjalnej dokumentacji CSS. Chociaż użycie powyższych instrukcji w zupełności wystarczy, aby umieścić dowolny plik graficzny na stronę w postaci znaku wodnego.


Jak zrobić kilka linków na jednym obrazku? [HTML]

Webmasterzy dość często umieszczają linki w obrazkach na stronie, dzięki czemu grafika zdaje się aktywnym hiperłączem. Gdy ktoś w nią kliknie, przenosi się na wcześniej zdefiniowaną w linku podstronę lub stronę zewnętrzną. Ale czy można dodać kilka takich odnośników na jednym obrazku w HTMLu? Jak najbardziej można, i nazywa się to mapowanie obrazu od nazwy znacznika <map>, który jest za to odpowiedzialny.

Dzięki temu że znacznik <map> definiuje się w języku HTML, to wszystko dzieje się po stronie przeglądarki użytkownika, a nie serwera na którym stoi strona www. Za jego pomocą ustala się ile, jakie i w którym miejscu obrazka, mają być aktywne odnośniki do innych podstron.

Teraz zróbmy taką mapę na przykładzie prostej grafiki, zawierającej trzy kwadratowe ikonki. Tak żeby każda z ikonek była aktywnym linkiem.

Poniżej kod źródłowy:

<img src="grafika.png" usemap="#mapalinkow" alt="mapa hiperłączy" />

<map name="mapalinkow">
<area href="index.html" shape="rect" coords="49,46,178,170" alt="Strona główna" />
<area href="podstrona1.html" shape="rect" coords="265,46,392,170" alt="Podstrona 1" />
<area href="podstrona2.html" shape="rect" coords="471,46,598,170" alt="Podstrona 2" />
</map>

I tak, najpierw zdefiniowałem w znaczniku <img> to, że grafika ma być zmapowana i nadałem jej nazwę usemap="#mapalinkow". Dopiero niżej znajduje się właściwa struktura mapy, która tworzy trzy różne hiperłącza na grafice.

Poniżej przykład działania (najedź kursorem myszki):

mapa hiperłączy Strona główna Podstrona 1 Podstrona 2

Jak widzisz, każdy z żółtych kwadracików tworzy obszar obrazu z aktywnym odsyłaczem do różnych podstron, natomiast szare pole wokoło jest zwykłą częścią grafiki.

Wróćmy jeszcze do listingu. Zauważ że do stworzenia odnośników, nie użyłem elementu <a> tylko <area> ze znacznikami shape i coords.

Atrybut shape="rect" oznacza że obszar ma być prostokątny, natomiast w coords określasz jego dokładny zakres za pomocą czterech liczb całkowitych, oddzielonych przecinkiem. Liczby te, są wymiarami elementu od krawędzi obrazka, wyrażone w pikselach:

mapowanie linków na obrazku wymiary

coords="49,46,178,170"

Pierwsza liczba 49 – odległość pomiędzy lewą krawędzią obrazka a lewą krawędzią kwadratu
Druga liczba 46 – odległość pomiędzy górną krawędzią obrazka a górną krawędzią kwadratu
Trzecia liczba 178 – odległość pomiędzy lewą krawędzią obrazka a prawą krawędzią kwadratu
Czwarta liczba 170 – odległość pomiędzy górną krawędzią obrazka a dolną krawędzią kwadratu

Jeśli chciałbyś ustawić na grafice obszar kołowy, używasz wtedy atrybutu circle, natomiast jeśli kształt miałby być wielokątny trzeba użyć atrybutu poly.

No i na koniec ostatnia ciekawa opcja. Jeśli chciałbyś aby pozostała część zdjęcia (w naszym przypadku wszystko wokoło na szaro), również gdzieś odnosiła, możesz na końcu użyć atrybutu default:

<area href="reszta.html" shape="default" alt="Strona defaultowa" />

Jak widzisz mapowanie obrazu dość łatwo zrobić w HTMLu. Jedyną wadą tego rozwiązania jest to, że na pierwszy rzut oka nie widać na zdjęciu, że posiada ono w sobie 3 niezależne linki. Jest to widoczne dopiero po najechaniu kursorem myszki. Dlatego warto ten fakt odnotować na swojej stronie internetowej lub zaznaczyć graficznie na zdjęciu.


Jak zrobić rozwijany tekst w HTML

Ten artykuł początkuje cykl porad na naszym blogu, odnośnie ciekawych rozwiązań programistycznych. Mogą się one przydać każdemu webmasterowi, podczas tworzenia stron internetowych. W końcu nie każdy z nas żyje tylko hostingiem.

Dziś problem, którego rozwiązania szuka wielu początkowych projektantów stron www. A mianowicie jak zrobić element strony, który po kliknięciu będzie rozwijał więcej tekstu. Najprościej zrobić to w HTML (+ CSS), więc tym językiem posłużę się w przykładzie.

Rozwijany tekst najprościej zrobić, za pomocą znaczników HTML <details> i <summary>. Pierwszy znacznik odpowiedzialny jest za stworzenie w dokumencie odpowiedniej sekcji, którą użytkownik strony może rozwijać, aby zobaczyć większą ilość tekstu domyślnie niewidoczną. Znacznik <summary> jest uzupełnieniem tego głównego i odpowiada za tytuł sekcji, czyli to co jest widoczne. Po kliknięciu w ten tytuł, rozwija się reszta. Tyle teorii. A teraz jak to wygląda w praktyce.

Poniżej przykładowy listing rozwijanego tekstu w ramce:

<html>
<head>
<style>
details {border: solid thin green; padding: 10px; width: 500px}
details > summary { font-weight: bold}
</style>
</head>
<body>
<details>
<summary>Tytuł rozwijanego tekstu w HTML</summary><br>
Dalsza treść rozwiniętego opsu.<br><br>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.<br>
</details>
</body>
</html>

Specjalnie dałem kod w pełnej strukturze HTML, aby było dobrze widoczne w jakiej sekcji dodać style, które będą definiować wygląd rozwijanego tekstu. Natomiast pogrubioną czcionką, zaznaczone są konkretne znaczniki, które za to odpowiadają.


Wynik powyższego kodu:

Tytuł rozwijanego tekstu w HTML
Dalsza treść rozwiniętego opsu.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

Jak widać domyślnie widoczny jest tylko tekst z zawartości elementu <summary>, który po kliknięciu otwiera resztę treści umieszczonej w elemencie <details>. Oczywiście wygląd i wymiary, można dowolnie modyfikować pod swoje potrzeby w sekcji <style></style>.

Warto też dodać że w znaczniku <details> można dodać atrybut open.

<details open>

Dzięki temu tekst od razu będzie domyślnie rozwinięty, dopiero kliknięcie w tytuł, będzie go zamykało.