неділя, 10 травня 2015 р.

Вставки на стороне сервера - SSI

Що таке SSI? Це особливі мітки з адресою, що дозволяють сервера зливати воєдино кілька файлів формату .html. Саме тому вони й називаються вставки на стороні сервера - при зверненні користувача до сторінки, що містить мітки, сервер автоматично на місце ЦИХ самих міток підставить прописані в мітки файли. Таким чином, необхідність у фреймах відпадає - точно так само зберігаємо в одному файлі наше меню, точно так само будь-яка зміна в цьому файлі буде відображень відразу на всіх сторінках нашого сайту.
Мабуть, єдиний недолік цієї технології - досить відчутна завантаження процесора машини, на якій розташований сайт. Але для проектів початкового і середнього рівня це ще не проблема, а проекти професійні використовують більш витончені технології.
SSI дуже зручні і прості в освоєнні. Незважаючи на те, що в них використано взагалі-то багато всього (і час, і обчислення IP адресу клієнта, отримання від нього даних тощо), початківцям все це абсолютно марно, і я не стану заглиблюватися в нетрі - розповім лише найголовніше, що потрібно знати тим, хто хоче робити сайт без фреймів.
Ось так виглядає SSI вставка в файл, які у нас як би "основний":
<! - # Include virtual = "/ файл.htm" ->
в тезі вставки прописуємо шлях і ім'я файлу, Який будемо вставляти. Природно, вам доведеться цей вставляється файл заздалегідь створити і "обрізати" зайве. Тобто обрізаючи все "вступні теги", типу <HTML> <BODY> і т.п. - Ми залишаємо тільки голе вміст, починаючи, наприклад, з таблиці, в якій все лежить. Початок файлу вкладення буде <table ... ну і т.п. Прописане туди CSS та інші теги - все сміливо Видаляємо, залишитися повинен тільки голий контент в таблицях.
Тепер, щоб перевірити як це працює, нам знадобиться локальний сервер - адже відобразити такі сторінки один браузер не зможе. Забежове вперед і вивчити главу "локальний сервер", після чого повернемося і продовжимо: 0)

... Ну от, їдемо далі ... Запускаємо нашу сторінку в дії, Перевіряємо, чи все працює правильно. Якщо щось не працює - значить ви десь наплутав в шляхах. Це найбільш типова помилка. Слід пам'ятати що сторінка, зібрана на SSI, при збереженні її в браузері стане монолітним "HTML", одним суцільним файлом, де в код замість команди SSI буде вписаний безпосередньо код того файлу, до якого звертався SSI.

середа, 6 травня 2015 р.

Каскадні таблиці стилів - CSS

Коли я освоїв все вищеперелічене (а освоювати довелося, до речі, повністю самостійно - на жаль, на той момент я не набрів на численні сайти з обучалка і сурседамі) то задумався: а чи не можна якось зменшити ті багатоповерхові конструкції, якими були мої перші сайти .
   У пору раннього чайнічества я бувало народжував сторіночки в 200-250 кб (Страшно згадати: 0)) і мої знайомі приходячи на таке "творчість народів півночі" довго матюкалися: чому все так туго вантажиться.
  Як виявилося, через якийсь час, кимось розумним була придумана спеціальна фіча, названа "Каскадні таблиці стилів", в народі CSS, або просто "стилі".
   По суті своїй стилі - це присвоєння групі елементів, промаркованих за типом або присвоєному позначенню ("імені"), яких або складних параметрів, опис яких для кожного з цих елементів ускладнює сторіночку донезмоги ... Та й клопітно воно ..
  Загалом, прописавши якому-небудь елементу СТИЛЬ, ми можемо згодом, маючи хоч сто таких елементів, поміняти вид кожного протягом буквально пари хвилин, змінивши їх СТИЛЬ в одному єдиному файлі.
  Приблизний зміст такого виносного файлу стилю:
A: link {COLOR: # 666666; TEXT-DECORATION: none}
A: visited {COLOR: # 666666; TEXT-DECORATION: none}
A: active {COLOR: # 666666; TEXT-DECORATION: none}
A: hover {COLOR: # 666666; TEXT-DECORATION: underline}
BODY {margin = "5"; SCROLLBAR-FACE-COLOR: #FFFFFF; FONT-WEIGHT: normal; BACKGROUND: #FBFBFB; SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF; SCROLLBAR-SHADOW-COLOR: #FFFFFF; COLOR: # 666666; SCROLLBAR-3DLIGHT-COLOR: #AAAAAA; SCROLLBAR-ARROW-COLOR: # 999999; SCROLLBAR-TRACK-COLOR: #EEEEEE; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; SCROLLBAR-DARKSHADOW-COLOR: # 555555;}
TD {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
DIV {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
P {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
.small {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
.large {FONT-WEIGHT: bold; FONT-SIZE: 11pt; FONT-FAMILY: Arial, Helvetica, sans-serif}
.navigation {BACKGROUND: #FFFFFF}
.navigationcell {BACKGROUND: #FFFFFF}
.micro {FONT-SIZE: 7pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
.z1 {FONT-SIZE: 8pt; COLOR = # 999999; FONT-WEIGHT: bold; text-align: center}
.t3 {FONT-SIZE: 8pt; }
.link {FONT-SIZE: 12; FONT-STYLE: italic}
.txt {text-indent: 8pt; text-align: justify}
.com {text-indent: 10pt; FONT-STYLE: italic; text-align: justify; FONT-SIZE: 10}
.t: link {COLOR: # 777777; FONT-WEIGHT: bold;}
.t: visited {COLOR: # 777777; FONT-WEIGHT: bold; TEXT-DECORATION: none;}
.t: active {COLOR: gray; FONT-WEIGHT: bold; TEXT-DECORATION: none;}
.t: hover {COLOR: black; FONT-WEIGHT: bold; TEXT-DECORATION: none;
FILTER: dropShadow (Color = white, OffX = 1, OffY = 1, Positive = 2); HEIGHT: 10
Ось така фіча приблизно забезпечує сайту той вид, в якому ви його спостерігаєте: 0)
 Розкладемо по цеглинці ... І почнемо зі посилань:
A: link {COLOR: # 666666; TEXT-DECORATION: none}
A: visited {COLOR: # 666666; TEXT-DECORATION: none}
A: active {COLOR: # 666666; TEXT-DECORATION: none}
A: hover {COLOR: # 666666; TEXT-DECORATION: underline}

А: тут означає клас елементів, в HTML званих "посилання", тобто теги виду "<a href ..."
link - позначення линка в спокої, так би мовити, вихідний вид, в якому він постає, коли ми бачимо пагу тільки-тільки після її завантаження.
{} А ось переможе таких дужок в CSS прописується присвоюється елементу стиль, тобто праметри, які будуть автоматично привласнені вибраний елемент.
  Так само у нас тут є колір линка - color: # 666666 - тобто темно-сірий.
  І ще один момент: якщо в коді самої сторінки пишеться font color = "", в той час як в CSS - "color: ім'я кольору;", крапка з комою ставиться після кожної властивості в списку, якщо після нього йде інша властивість. Після останнього ставити не обов'язково, але в принципі можна.
  І оформлення тексту - TEXT-DECORATION. Писати це великими, з великої літери або малими - абсолютно рівнозначно. Тут написано великими виключно для виразності і помітності: 0)
  Отже, в параметрі се у нас значиться "none" - це означає, що нам бродилка покаже лінк у вигляді простого тексту - не синього, як за замовчуванням, і без ідіотського цього підкреслення: 0)
  Визначення "visited" - оформити посилання точно так само як і відвідані вже посилання. Якщо ви помічали раніше - то вони, відвідані, за замовчуванням бродилками обозначаюЦЦа як потемнілі. А у нас буде равнообразно. Бо - нєфіг ...
  Отже: перші два рядки визначили вигляд, в якому лінки знаходяться за початковим станом.
  Але як виділити їх, позначити, що це не просто текст, а все ж посилання?
  Для цього у мене прописані наступні два рядки:
A: active {COLOR: # 666666; TEXT-DECORATION: none}
  "Актив" - це є лінк, виділений мишкою, але з прибраним з нього курсором. Якщо придивлявся іноді, внаслідок кривих рук, міг бачити отакі повисли навколо лінків або картинок "рамочки" виділення - ось це воно і є: 0)
   За тутешньому оформлення воно, знову ж, нічим не відрізняється від попередніх параметрів, тому в самому тексті я його виділяю, як правило, жирним (<b> ось так </ b>).
а от третє ...
A: hover {COLOR: # 666666; TEXT-DECORATION: underline}
hover - якщо мені не зраджує склероз, "ховер" перекладається як "ширяння» (не мізків, а в повітрі!): 0)
  Цей параметр вказує бродилки, як оформити це посилання при зависанні на ній курсору. Тут я залишив їй первісний колір, а виділяти вирішив підкресленням. Слід також звернути увагу на те, що тут уже замість "none" коштує "underline" - що, собсно і є це саме "підкреслення" при наведенні курсора.
  цими чотирма рядками ми разом призначили ВСІМ посиланнях на сторінці, в яку буде включений цей стиль, особливий зовнішній вигляд. Ця установка стосується ВСІХ посилань як таких.
  а уявіть тепер, що було б, якби на кожну посилання писати ось таке? а посилань - 30, 40? економія в 40 разів! : 0) _)
  Дивимося далі:
BODY
{
margin = "5";
SCROLLBAR-FACE-COLOR: #FFFFFF;
FONT-WEIGHT: normal;
BACKGROUND: #FBFBFB;
SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF;
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
COLOR: # 666666;
SCROLLBAR-3DLIGHT-COLOR: #AAAAAA;
SCROLLBAR-ARROW-COLOR: # 999999;
SCROLLBAR-TRACK-COLOR: #EEEEEE;
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; SCROLLBAR-DARKSHADOW-COLOR: # 555555;
}
  BODY - це "тушка сторінки".

  У ній можна познущатись над скроллбар (для тих, хто в танку: така фіча праворуч по вертикалі, за котороую можна тягати вгору-вниз, промативая не вміщується на екрані: 0))
  У даному варіанті у мене написано:
  margin = "5"; - Це відступ в 5 піхелей від краю дії (за замовчуванням набагато більше). Якщо відступ взагалі не потрібен - ставимо значення "нуль": 0)
  SCROLLBAR-FACE-COLOR: #FFFFFF;
  морда особи скроллбар. Тобто розфарбовує найбільшу поверхню заданим кольором. У мене це - в тон сторінці
SCROLLBAR-HIGHLIGHT-COLOR: #FFFFFF;
це відблиск на повзунку і кубиках зі стрілками
SCROLLBAR-SHADOW-COLOR: #FFFFFF;
це "тінь" - продовження "відблиску", (те ж саме, тільки нижня грань і права)
COLOR: # 666666;
це колір взагалі ...
SCROLLBAR-3DLIGHT-COLOR: #AAAAAA;
це тонюсенькая облямівкою навколо кожної детальки
SCROLLBAR-ARROW-COLOR: # 999999;
колір трикутних стрілок вгорі і внизу лінійки
SCROLLBAR-DARKSHADOW-COLOR: # 555555;}
глибока чорна тінь-контур
SCROLLBAR-TRACK-COLOR: #EEEEEE;
колір доріжки ..
Більш наочно все це видно на малюнку:
  Ось власне і все. Таким от нехитрим перекрутити і фарбують в різні кольори ськролли сторінок: 0) Правда, працює це тільки в експлорері.
  Дивимося далі:
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif;
це означає послідовність шрифтів, якими відображається контент сайту. Якщо немає першого, то бродилка використовує другий. Якщо немає другого - третій. Ну а якщо і четвертого нету, то це лінуксоїд без кириличних шрифтів приперся, ну його лісом ..; 0)
тепер осередку таблиць:
TD {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
що таке ТД, я сподіваюся, ви вже запам'ятали, а якщо ні - доведеться перечитати все про таблиці з самого початку.
Отже ... тут прописано - FONT-WEIGHT: normal; - Шрифт нормальної товщини.
FONT-SIZE: 11pt; - Розмір шрифту. Звернути увагу на "pt" - це не в піхелах! це в ПУНКТАХ. Хоча особливо критичних різниць тут немає, просто інші одиниці виміру ..
   Тут можна ставити і просто цифру без приписки в яких воно одиницях. Тоді цифра спрацює як розмір відносний і дозволить юзверя недбалим рухом мишки по масштабованості дії зіпсувати наш великий дізігн нафіг. А це не є гут ... Тому ні відсотків (так, можна і відсотками!), Ні вільних розрядів від -7 до просто 7 ставити не рекомендую. Або, якщо ти вже настільки крутий збоченець, ставити треба скрізь, а потім довго і клопітно рухати масштабність, насолоджуючись, як твою сторінку морщить і плющить по всіх абзаців% 0)
  Ну і, нарешті, це:
FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
це у нас означає теж, що в самій паге "Ім'я шрифту".
  Тільки тут перераховано, на всякий пожежний випадок, аж чотири шрифту, більш-менш здібних замінюватися не сильно псуючи дізігн. Навіщо це треба? На випадок, якщо на ваш хом'як * забреде яке-небудь інтелектуальне убозтво, примудрився угробити у себе на компі ВЕРДАНІ і Ариал. Хоча ці два шрифту щосили зазвичай використовуються Віндою і Вёрдом та й багатьма іншими прогами. Вони найзручніші і легко прочитувані, тому - практично незамінні. Так от, якщо все ж у якого-небудь мудака бракуватиме цих шрифтів, то пага покаже йому те, що прописано далі - Хельветіку або Сан-Серіф: 0) Якщо і цього у нього немає, то бродилка покаже йому, що там у нього стоїть і нехай він цим поперхнеЦЦа ..: 0)
  Цим абзацом ми прописали, що ВЕСЬ текст на паге отражаеЦЦа 11-м розміром шрифтом, одним із зазначених там, вище.
  Їдемо далі:
DIV {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
це обрізання тег шару, який можна використовувати для позначення виділення певної ділянки таблиці або тексту. Ну - ось, припустимо, не треба мені весь текст на сторінці одноманітним - хочу шматок якогось нитка ізвратного кольору і вигляду ... укладаємо його в тег DIV і призначаємо певні параметри. Отримуємо виділення абзацу: 0)
  На даний момент він абсолютно ідентичний основному тексту.
  А ось так пишеться параграф. Він і позначається просто буквою P.
P {FONT-WEIGHT: normal; FONT-SIZE: 11pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
   У ньому у нас знову ж таки абсолютно ідентичні параметри. Але якщо задати інші, то все параграфи стануть виглядати не так як текст основної сторінки. Слід пам'ятати, що всі параграфи, як правило, виділені деяким відступом зверху і знизу від решти тексту. Це легко виправити, але про це пізніше.
  Отже, ми задали параметри відображення всіх основних елементах:
Тексту,
Посиланнях,
Таблицями,
Блокам і
Параграфами.
  Але що робити, якщо треба якийсь малесенький абзац зробити не таким, як інші абзаци? Що робити якщо один або два або більше елементів повинно мати окремий від більшості вид? Возитися з параграфом тут недоречно: 0)
  Тут можна викрутитися таким чином:
  початок нового стилю позначаємо точкою:.
а за нею відразу вписуємо ім'я нашого особливого стилю. Вкладеного, так би мовити, каскаду:
.small {FONT-SIZE: 10pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
  це означає, що теги, в які включено "class =" small ""
, Показуватимуть нам своє текстовий вміст саме в тому вигляді, який прописаний в цьому абзаці. Тобто, на 1pt меншого в даному контексті розміру: 0)
  типовий приклад:
<B> <a href="бла-бла-бла" class=small> текст </a> </ b>
або <p class = small> текст </ p>
або <div class = small> текст </ div>
або
<Td class = small ...
<Table class = small ..

ну і т.п.
  Точно так само всередину тегів можна одночасно і по кілька запихати теги рівняння ... типу align = center (left, right, justify)
Ось ще один клас:
.large {FONT-WEIGHT: bold; FONT-SIZE: 11pt; FONT-FAMILY: Arial, Helvetica, sans-serif}
і ще:
.navigation {BACKGROUND: #FFFFFF}
і ще:
.navigationcell {BACKGROUND: #FFFFFF}
і ще:
.micro {FONT-SIZE: 7pt; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif}
  а навіщо, собсна, нам щоразу писати тег вирівнювання в самій паге по сто разів? Ми ж можемо впендюріть його прямо в стиль!
  Ось таким чином приблизно:
.z1 {FONT-SIZE: 8pt; COLOR = # 999999; FONT-WEIGHT: bold; text-align: center}
  тільки тут він прописується не просто як align =, а як саме як text-align:
АХТУНГ !!! - Звернути увагу, що не через "одно", а саме через двокрапку !!!
.t3 {FONT-SIZE: 8pt; }
а в цьому випадку мені потрібно було просто змінити лише розмір і решта я не прописав ..
що у нас вийшло в цьому випадку?
  Розглянемо приклад взаємодії і взаємовпливу стилів:
(Ще це називаеЦЦа "спадкуванням"):
маємо:
<Div class = "micro">
текст, текст, текст, текст, текст, текст, текст, текст, текст
<P class = "large"> текст, текст, текст, текст ...: 0) </ p>
текст, текст, текст, текст, текст, текст, текст, текст,
</ Div>

Принцип ясний?
(Для тих, хто в танку: - дія стилю распространяеЦЦа на все, що всередині позначеного об'єкта, ЯКЩО внутрішні, вкладені теги, які не забезпечені власним стилем, суперечливими чи доповнюють стиль об'єкта. Стиль перестає діяти відразу по закритті тега, його містить, і в дію вступає стиль об'єкта більш "високого рівня" - того, що навколо вкладеного, або наступного)
  Чимось це все схоже на матрьошку ... Це вам абстрактний образ - для кращого розуміння проблеми: 0)
.link {FONT-SIZE: 12; FONT-STYLE: italic}
  а ось тут у мене стоїть "італік" - це означає, що текст буде схильний модифікації в стилі <i> </ i> - тобто стане похилим: 0)
.txt {text-indent: 8pt; text-align: justify}
.com {text-indent: 10pt; FONT-STYLE: italic; text-align: justify; FONT-SIZE: 10}

  а ось цим я вирішив виділити лінки іншого типу - ті, які в менюшках типу календарів по датам:
.t: link {COLOR: # 777777; FONT-WEIGHT: bold;}
.t: visited {COLOR: # 777777; FONT-WEIGHT: bold; TEXT-DECORATION: none;}
.t: active {COLOR: gray; FONT-WEIGHT: bold; TEXT-DECORATION: none;}

  але в них уже буде змінюватися і колір і товщина букв:
.t: hover {COLOR: black; FONT-WEIGHT: bold; TEXT-DECORATION: none;
  а ось ця приписка є фіча чисто плорерная - тобто в інших браузерах навіть не відобразиться.
FILTER: dropShadow (Color = white, OffX = 1, OffY = 1, Positive = 2); HEIGHT: 10}
   Це називається "фільтр", вбудована в бродилку фіча, що відображає такі спецефекти, як "тінь", "світіння", "переливання" і багато іншого: 0)
  Розглянемо Егон параметри: (Color = колір відкидаємо тіні - білий !, OffX і OffY - це на скільки піхелов тінь буде відстояти від букв - у нас це на піхель вправо і на піхель вліво. Можна до цифири пріпользовать знак "мінус" - це дасть вивернула вліво і вгору від цифири тінь: 0)
  "Посітіве" я, чесно сказати, не пам'ятаю - по-моєму, щільність - поекспериментуйте: 0)
  АХТУНГ !! - Звернути увагу, що субпараметри взяті в () і після них йде - ";" - Крапка з комою. Закриває каскад все той же}
  параметри всередині {} розділяються знову ж таки ";" але після останнього параметра перед самою "}" крапка з комою зовсім не обов'язкові.
  ну, от собсно і все саме основне про CSS. На фільтрах я більш детально зупинятися не буду, оскільки вони придатні в основному тільки для плорера, а отже, серйозного вебоделу нафіг не здалися - при всій приємності немає сенсу возитися з тим, що видно далеко не всім відвідувачам.
  Залишилося тільки пояснити, що замість того, щоб ліпити ось такі "багатотомники" у кожну знову ж пагу, можна зберігати на сайті всього ОДИН єдиний файл, викликати який з кожної потрібної паги. Або - зберігати таких стилів декілька - для зручності або дізігна: на одній паге так, на іншій - отак.
  Підключається воно так: пишемо цю нісенітницю в текстовий файл, прямо в блокноті - це простіше! і зберігаємо на сайті як "імярек.css"
Після цього відкриваємо пагу і в сааамую початку під тегом </ head>
вставляємо ось таке:
  <LINK href = "/ шлях / імярек.css" type = text / css rel = stylesheet>
міняти в цьому рядку можна тільки шлях до файлу стилю та найменування самого файлу.
  Тим, хто в танку: ВСЕ, абсолютно всі імена файлів на вашому сайті повинні бути набрані виключно латиницею, тобто ЛАТИНИЦЕЮ.
    За допомогою стилів можна робити і купу прикрас: наприклад, таблиці не суцільний лінією, а пунктиром або точками:
1
 2

   
У першому випадку у нас застосований вставлений в початок таблиці тег
style = "border: dotted 1pt; border-color: gray;
У другому випадку замість dotted значиться dashed
Після цих тегів ставимо розмір наших точок або тире - і перевіряємо як виглядає.
Цими ж стилями можна перетворити й кнопки, і тег HR -
-------------------------------------------------- ------------------------------
  Завдяки стилям можна навіть посилання підкреслювати пунктиром, як зараз входить у моду.
   А ще, деякі дії дозволяють перемикати стилі, що при грамотному їх написанні може служити своєрідними "скінами" сайту. Змінив стиль - помінялося все - розфарбування, рамки, шрифт і т.п. Дуже зручно і приємно.
  Так, мало не забув ... тег <H1> </ H1>, про який я обіцяв розповісти докладніше, так от: багато пошуковики позитивно сприймають заголовки, прописані в цьому тезі. Причому, чим менше цифра тега, тим вище "пріоритет" цього заголовка. Всього їх 6, с H1 по H6. H6 найдрібніший і більш-менш вписується в дизайн, а ось H1 норовить розтягнутися в казна-які величини
- Ось такими буквами. Але що ж робити? Адже для збільшення находимой нам потрібен цей тег! При всій його нестравності і небажанні вписуватися в дизайн він приносить непогану кількість "очок" користі перед пошукачами. І тут нам допоможуть стилі. Прописуємо в CSS ось такий каскад:
H1 {FONT-SIZE: 10pt; COLOR: # 666666; font-style: normal; line-height: 16px; font-weight: bold; margin: 0px; padding: 0px;}
заголовок
другий заголовок
- Як бачите можна і H1 приборкати так, щоб він відображався не крупніше звичайного тексту і навіть відступів, звичайних для нього, зверху і знизу не буде: 0) За цей параметр відповідає відразу група налаштувань:
line-height: 16px; - Це у нас висота того простору, в якому розташовується рядок. Чи не шрифту, а всього рядка! Тобто поставимо його, наприклад, 10 - отримаємо наползание тексту:
line-height: 30px;
 line-height: 8px;
заголовок
другий заголовок заголовок
другий заголовок
font-weight: bold; - Цей тег робить заголовки виділеними жирним
margin: 0px; - Відступ від верхнього лівого кута комірки
padding: 0px; - Відступ всередині осередку від всіх країв, виробляє майже той самий ефект, що і margin
margin: 0px;
 margin: 30px;
заголовок
другий заголовок заголовок
другий заголовок
Тепер про те, як це все чіпляється до сайту. Зберігається CSS зазвичай в окремому файлі, який броузер і зчитує при відображенні сторінок вашого сайту. Щоб CSS надавав вплив на вміст сторінки, на початку її вставляємо ось такий виклик:
<Link href = "/ шлях / ім'я файла.css" rel = "stylesheet" type = "text / css">
прописати його треба між тегом <html> і тегом <body>. Якщо ж великої потреби в потужній та складної таблиці стилів немає і потрібно лише одноразово підправити якийсь елемент, досить вставити у відповідний тег "style =" параметри "- наприклад ось:
<Table width = "100%" height = "410" border = "0" cellpadding = "14" cellspacing = "0" class = "txt" style = "border: dashed 1pt; border-color: gray; border-top : none; border-bottom: none; ">
Цей рядок заголовка таблиці. Вбудований стиль в ній "прибирає" верхню і праву кордону, залишаючи тільки ліву і праву.

вівторок, 5 травня 2015 р.

Шари в HTML

Ось такий ефект можна отримати, використовуючи шари. Власне, точно такого ж ефекту можна досягти і одним з безлічі фільтрів браузера, але друге рішення буде відображатися правильно тільки в самому браузера.
  Отже, що ж із себе представляє шар?
  Код шару:
  <Div id = "ім'я шару" style = "position: absolute; left: 204px; top: 143px; width: 171px; height: 62px; z-index: 2"> вміст шару </ div>
  id - це індивідуальне ім'я шару, збігатися і повторюватися воно не повинно!
  style - це вид шару, тобто спосіб його відображення. Без цього параметра сам по собі тег div може служити лише способом форматування вкладеного в нього тексту - без головних особливостей, властивих верствам - таких, як розташування поверх чого завгодно.
  left - відстань від лівого краю: може бути як у піхелях, так і у відсотках від загальної ширини екрана.
  top - відстань від верху.
  ну, ширина і висота вам вже відомі, їх не згадую.
  z-index - значення може бути тільки цифрою. Причому, чим менше ця цифра, тим вище знаходиться шар по відношенню до інших верствам.
   Здавалося б, дизайн, побудований на шарах, набагато зручніше і простіше, ніж дизайн на банальних таблицях, але є нюанси, як позитивні, так і негативні.
   У числі позитивних:
  зручність для дизайнера - велика свобода і більше ефектів.
  швидше завантаження і не чекати закриття замикаючого тега.
  зручніше маніпулювати їх вмістом
   негативні сторони:
  складно підлаштовуватися під мінливий дозвіл монітора. І ще складніше робити такий дизайн гнучким - щоб ширина шару змінювалася згідно ширині вікна. Це, звичайно, можна зробити за допомогою вельми громіздкого скрипта, але ... друга перевага зі списку позитивного ми втрачаємо.
  пошуковики ... багато послідовності тегів, як не волають власники пошукових машин - а знаходяться гірше! Висновок - будь простішим, і до тебе потягнуться.
   Такі от пиріжки-печенюшки ..
   Так і залишаться шари елементом чисто декоративним і ніяк не основним. Зате за допомогою шарів виходять приємні такі менюшки - в прикладах скриптів ви зможете знайти багато таких примочок, поки ж ми розглянемо лише основні параметри шарів, як таких.

   Додаткові можливі теги:
   background-color: колір фону
   layer-background-color: колір шару
   border: 1px none - якщо прибрати "ноне", то навколо шару з'явиться бордюрчик 1 піхель завтовшки.

    У верств є багато інших тегів, але, як правило, вони всі призначені для використання поряд з скриптами, тому в них ми поки зариватися не будемо, а вивчимо наступну тему: каскадні таблиці стилів, воно ж - CSS.

неділя, 26 квітня 2015 р.

Фрейми в HTML

  Власне, ця глава пояснює швидше чому не треба користуватися фреймами, ніж те, як ними користуватися.
  Що таке фрейм? Це певна область, в яку вантажиться сторінка. Таким чином те, що ви бачите, збирається з декількох HTMLек. Власне, приблизно те ж здійснює і SSI, і PHP і багато інших мов програмування, скриптів і т.п.
   Фрейми придумані ще на зорі становлення HTML для полегшення створення сторінок великого розміру. Фрейми дозволяли зберігати, наприклад, менюшку в окремому файлі, і разом - НЕ перелопачуючи десятки, сотні і у деяких навіть тисячі html-сторінок заради того, щоб додати або прибрати пункт меню. Дуже зручно, здавалося б ..., але - система фреймірованія чомусь не завжди (я б навіть сказав, - майже ніколи!) Правильно сприймається більшістю пошуковиків. Рейтинг фреймових сторінок в більшості пошукачів менше, ніж точно тих же сторінок, з абсолютно тим же вмістом, але з вбудованим меню без фреймів. Я раз у раз чув з різних сторін суперечливі відгуки на фрейм і вирішив перевірити сам: створив на халявном хостингу десяток різної внутрішньої структури сторінок імені "Васі Пупкіна", зовні абсолютно однакових, але розрізняються внутрішнім пристроєм, і через два місяці їх висіння в Мережі " заміряв "находиме з тих чи інших слів у різних пошукових системах. Але в цій книзі я зібрані дані, аналітику та нюанси збільшення находиме нагромаджувати не стану - спостережень в цій області вдесятеро більшого обсягу, ніж цей скромний підручник. Тому то, хто цікавиться - запасіться терпінням до виходу окремої книги.
   Отже, коротко експеримент зі сторінками показав, що в самому низу списку виявилася сторіночка на фреймах, вище всіх була сторінка на SSI технології та PHP інклюд.
  По суті, ці дві технології, з успіхом замінили застарілі фрейми, показали рівну находиме і зручність. Не кажучи вже про куди більшою простоті використання. Але більшість розбираються в цих питаннях программеров дружно вказали на перевагу PHP перед SSI в плані зручності їх використання для сервера. Не буду поки що вдаватися в деталі. Скажу лише, що якщо є можливість - замість фреймів потрібно використовувати PHP, а якщо ні PHP, то обмежитися SSI. На жаль, більшість халявних хостингів не дають використовувати PHP і SSI. Але останнє все впевненіше входить в "обов'язковий сервіс". SSI можна використовувати, наприклад, на тому ж by.ru де для тих, хто не може або не хоче платити гроші, є прекрасна можливість випробувати свої сили в створенні сторіночок нічого за це не сплачуючи. Хоча, звичайно, будь-який безкоштовний хостинг завжди надає чи 10-15% тих можливостей, що чекають вас у повноцінного, платного хостера. Але про хостинги - уже знову-таки в наступній книзі, присвяченій цілком хостерам і їх розцінками.
   Поки ж настійно раджу не маятися дурью і не юзати фрейми. Це, нарешті, і користувачеві незручно: збережеш сторінку, а там купа якихось файлів, обірвані зв'язки, плутанина в рангах завантаження і шляхах ... помучиться, помучиться, та й плюнеш ...
  Адже, якщо сайт невеликий, п'ять-сім сторінок всього, то фрейми йому не потрібні, простіше вже поміняти в кожному файлі менюху, а якщо сайт більш великий, як правило, його колонка меню все одно не вміститься в межах одного екрану - так навіщо обтяжувати читача необхідністю ще й фрейм гортати, щоб дістатися до нижніх пунктів? Шлях вже меню рухається разом з прокруткою всього сайту. До того ж не кожен може допереть, що і фрейм можна прокрутити вниз за межі екрану.

понеділок, 13 квітня 2015 р.

Спецсимволи

    Спешіал символи. вставляючи в код ці & # чогось там; ви отримаєте у відображенні дії наступні фічі:
ƒ - &#402;
Α - &#913;
­ - &#173;
· - &#183;
¡ - &#161;
¢ - &#162;
ª - &#170;
¸ - &#184;
£ - &#163;
¤ - &#164;
¯ - &#175;
¹ - &#185;
¥ - &#165;
¦ - &#166;
± - &#176;
º - &#186;
§ - &#167;
¨ - &#168;
¬ - &#177;
¬ - &#172;
© - &#169;
® - &#174;
² - &#178;
¼ - &#188;
« - &#171;
» - &#187;
³ - &#179;
½ - &#189;
´ - &#180;
µ - &#181;
¶ - &#182;
¾ - &#190;

Ç - &#199;
È - &#200;
É - &#201;
Ê - &#202;
Ì - &#204;
Í - &#205;
Î - &#206;
Ï - &#207;
Ñ - &#209;
Ò - &#210;
Ò - &#211;
Ò - &#212;
Ö - &#214;
× - &#215;
Ø - &#216;
Ù - &#217;
Û - &#219;
Ü - &#220;
Ý - &#221;
Þ - &#222;
à - &#224;
á - &#225;
â - &#226;
ã - &#227;
å - &#229;
æ - &#230;
ç - &#231;
è - &#232;
ê - &#234;
ë - &#235;
ì - &#236;
í - &#237;
ï - &#239;
ð - &#240;
ñ - &#241;
ò - &#242;
ô - &#244;
õ - &#245;
ö - &#246;
÷ - &#247;
ù - &#249;
ú - &#250;
û - &#251;
ü - &#252;
þ - &#254;
ÿ - &#255;
Ā - &#256;
ā - &#257;
ă - &#259;
Ą - &#260;
ą - &#261;
Ć - &#262;
Ĉ - &#264;
ĉ - &#265;
Ċ - &#266;
ċ - &#267;
č - &#269;
Ď - &#270;
ď - &#271;
Đ - &#272;
Ē - &#274;
ē - &#275;
Ĕ - &#276;
ĕ - &#277;
ė - &#279;
Ę - &#280;
ę - &#281;
Ě - &#282;
Ĝ - &#284;
ĝ - &#285;
Ğ - &#286;
ğ - &#287;
ġ - &#289;
Ģ - &#290;
ģ - &#291;
Ĥ - &#292;
Ħ - &#294;
ħ - &#295;
Ĩ - &#296;
ĩ - &#297;
ī - &#299;
Ĭ - &#300;
ĭ - &#301;
Į - &#302;
İ - &#304;
ı - &#305;
IJ - &#306;
IJ - &#307;
ĵ - &#309;
Ķ - &#310;
ķ - &#311;
ĸ - &#312;
ĺ - &#314;
Ļ - &#315;
ļ - &#316;
Ľ - &#317;
Ŀ - &#319;
ŀ - &#320;
Ł - &#321;
ł - &#322;
ń - &#324;
Ņ - &#325;
ņ - &#326;
Ň - &#327;
ʼn - &#329;
Ŋ - &#330;
ŋ - &#331;
Ō - &#332;
Ŏ - &#334;
ŏ - &#335;
Ő - &#336;
ő - &#337;
œ - &#339;
Ŕ - &#340;
ŕ - &#341;
Ŗ - &#342;
Ř - &#344;
ř - &#345;
Ś - &#346;
ś - &#347;
ŝ - &#349;
Ş - &#350;
ş - &#351;
Š - &#352;
Ţ - &#354;
ţ - &#355;
Ť - &#356;
ť - &#357;
ŧ - &#359;
Ũ - &#360;
ũ - &#361;
Ū - &#362;
Ŭ - &#364;
ŭ - &#365;
Ů - &#366;
ů - &#367;
ű - &#369;
Ų - &#370;
ų - &#371;
Ŵ - &#372;
Ŷ - &#374;
ŷ - &#375;
Ÿ - &#376;
Ź - &#377;
Ż - &#379;
ż - &#380;
Ž - &#381;
ž - &#382;
Γ - &#915;
Δ - &#916;
Θ - &#920;
Λ - &#923;
Σ - &#931;
Φ - &#934;
Ψ - &#936;
Ω - &#937;
Ϋ - &#939;
ά - &#940;
έ - &#941;
ή - &#942;
α - &#945;
β - &#946;
δ - &#948;
ζ - &#950;
ι - &#953;
λ - &#955;
ξ - &#958;
ο - &#959;
σ - &#963;
φ - &#966;
χ - &#967
ψ - &#968;
ώ - &#974;
• - &#8226;
… - &#8230;
′ - &#8242;
‾ - &#8254;
™ - &#8482;
← - &#8592;
↑ - &#8593;
↓ - &#8595;
↔ - &#8596;
↕ - &#8597;
↖ - &#8598;
↘ - &#8600;
↙ - &#8601;
⇒ - &#8658;
⇔ - &#8660;
∂ - &#8706;
∃ - &#8707;
∇ - &#8711
∈ - &#8712;
∏ - &#8719;
∑ - &#8720;
∙ - &#8729;
√ - &#8730;
∞ - &#8734;
∟ - &#8735;
∠ - &#8736;
∣ - &#8739;
∩ - &#8745;
∪ - &#8746;
∫ - &#8747;
∬ - &#8748;
∴ - &#8756;
∵ - &#8757;
∷ - &#8759;
∼ - &#8764;
≠ - &#8800;
≡ - &#8801;
≤ - &#8804;
≥ - &#8805;
≧ - &#8807;
≪ - &#8810;
≫ - &#8811;
≮ - &#8814;
⊂ - &#8834;
⊃ - &#8835;
⊆ - &#8838;
⊇ - &#8839;
⊥ - &#8869;
◊ - &#9674;
○ - &#9675;
◎ - &#9678;
◐ - &#9680;
◑ - &#9681;
♠ - &#9824;
♡ - &#9825;
♥ - &#9829;
Π- &#338;
ˆ - &#710;
˜ - &#732;
‌ - &#8204;
‍ - &#8205;
† - &#8224;
‡ - &#8225;
€ - &#8364;
ó - &#243;
ø - &#248;
ý - &#253;
¿ - &#191;
Ă - &#258;
Ń - &#323;
Ξ - &#926;
À - &#192;
ć - &#263;
ň - &#328;
Ϊ - &#938;
Á - &#193;
Č - &#268;
ō - &#333;
ΰ - &#944;
 - &#194;
đ - &#273;
Π- &#338;
θ - &#952;
à - &#195;
Ė - &#278;
ŗ - &#343;
ρ - &#962;
Ä - &#196;
ě - &#283;
Ŝ - &#348;
ω - &#969;
Å - &#197;
Ġ - &#288;
š - &#353;
″ - &#8243;
Æ - &#198;
ĥ - &#293;
Ŧ - &#358;
→ - &#8594;
Ë - &#203;
Ī - &#298;
ū - &#363;
↗ - &#8599;
Ð - &#208;
į - &#303;
Ű - &#368;
∀ - &#8704;
Ò - &#213;
IJ - &#308;
ŵ - &#373;
∋ - &#8715;
Ú - &#218;
Ĺ - &#313;
ź - &#378;
∝ - &#8733;
ß - &#223;
ľ - &#318;
ſ - &#383;
∥ - &#8741;
ä - &#228;
∮ - &#8750;
≯ - &#8815;
♣ - &#9827;
é - &#233;
≈ - &#8776;
⊕ - &#8853;
  - &#8194;
î - &#238;
≦ - &#8806;
● - &#9679;
‰ - &#8240;



    Ну ось таблицю символів рекомендую випатрати і зберігати в темному сухому місці авось згодиться. Хто не зрозумів, для чого потрібно, пояснюю - потрібно в основному для понту тим, хто намагається досягти "абсолютної крутизни", тобто служать ознакою типу профессіоналізЬма, ну і все таке. А крім того, цими символами можна побалуватися збоченням найхимерніших смайликів у багатьох чатах. Юзайте на здоров'я.

неділя, 29 березня 2015 р.

Картинки в HTML

Картинки вставляються тегом <img src = "/ шлях до картинки / назва картинки. Розширення картинки">.
  Тег цей не "контейнерний", тому в закриваючої частини не потребує. Розташовуючи цей тег всередині класичного гіперпосилання, ми можемо домогтися, щоб при стусанів по картинці здійснювався перехід за посиланням:
Код, використаний у зображенні:
<a href="куда переходимо при нажатті">
<Img src = "картинка.jpg" width = "ширина картинки (необов'язково)" height = "ширина картинки (необов'язково)" hspace = "7" vspace = "7" border = "1" align = "left"> </ a>
    Тобто картинка - не що інше, як звичайна посилання, в яку вставляється код з адресою та параметрами картинки:

   <Img src = "картінка.jpg" width = "ширина картинки (необов'язково)" height = "ширина картинки (необов'язково)" hspace = "7" vspace = "7" border = "1" align = "left">
   
   Всі задіяні в коді теги вам вже без сумніву зустрічалися в попередніх розділах, за винятком хіба що hspace і vspace - ці два тега теж не є обов'язковими, але при їх наявності навколо картинки утворюється відступ у відповідну кількість пікселів від тексту. Погодьтеся, це набагато простіше, ніж вимучувати ці прогалини за допомогою таблиць, прогалин і верств або ж взагалі ліпити текст впритул до картинки ... Навколо картинки за допомогою border = "1" можна спорудити елегантну рамочку, а при необхідності (якщо дуже лінь або по стратегічним задумам) змінити розміри відображення картинки за допомогою все тих же width і height - якщо вказати в них менші розміри, ніж реально у картинки, можна вписати її в будь практично дизайн.
   Навіщо це потрібно? Чому б не обрізати картинку графічним редактором - що набагато більш практично ?!
  Розглянемо мінуси заниження розмірів картинки за допомогою HTML:
  - Картинка зберігає свої реальні розміри і, відповідно, вага - навіть якщо ви зробите огромадное картинку в мег вагою, розмірами з поштову марку, грузиться вона буде всіма своїми мегамі.
  - Картинка втратить багато деталей, що в деяких випадках перетворює її в щось незрозуміле.
  тепер плюси заниження розмірів:
  - Картинку можна вписати в дизайн, пожертвувавши парою сантиметрів, а при копіюванні її на гвинт вона збереже свої розміри.
  Це потрібно в рідкісних випадках, коли ви вивішуєте картинку розмірами більшими, ніж роздільна здатність монітора відвідувача. І картинку в дизайн впишемо і збережеться вона на все 2040 на скільки там належить.

   Тепер - рідко де використовувана, але цілком приємна технологія накладення на одну картинку декількох посилань, - в залежності від тієї області, на яку тикаємо і здійснюється перехід. У чомусь ця технологія економічна і зручна, в чомусь, як і всякий інструмент, - непрактична і незручна. Але оцінку можна ставити тільки в кожному конкретному випадку. Тому я все ж зупинюся на неї докладніше:
   Береться зображення:
  Натиснувши на ліву половинку, переходимо на Google.ru, натиснувши на праву - переходимо на мій сайт.
   Як це реалізовано?
   Читаємо код:
перша частина включається в тег картинки:

<Img src = "наша картинка.jpg" usemap = "# Map">
далі, де-небудь внизу, або на самому початку сторінки, але в межах тега <body> додаємо власне "карту посилань", як називається ця технологія:

<Map name = "Map">
<Area shape = "rect" coords = "2,2,60,74" href = "посилання на Google.ru">
<Area shape = "rect" coords = "61,4,112,76" href = "посилання на мій сайт">
</ Map>

Примітка: жирним виділено те, що повинно бути присутнім обов'язково, звичайним текстом - змінні параметри.
    Природно, ми можемо додати до цих двох областях і третій рядок, і четверту, і скільки завгодно. Принцип читання цього коду дії, як звичайно, зверху вниз. Тому, якщо ваші області трішки перекриваються, то та, що прописана в першому рядку, лежатиме "зверху", ніж та, що прописана рядком нижче.
   Як задаються координати? Координати задаються відраховуючи від лівого верхнього кута картинки по пикселу в напрямку лівого верхнього кута і правого нижнього кута. У нашому випадку, у першій картинки відступ 2 пікселя зліва і зверху у 1 контрольної точки, а правий нижній кут, відповідно, відстоїть від лівого верхнього кута картинки на 60 зліва і 74 пікселя зверху. Алгоритм зрозумілий? Для тих, хто не допер, повторюся: координати лівого верхнього кута задається області щодо лівого верхнього кута картинки + координати правого нижнього кута області щодо все того ж верхнього лівого кута картинки. (Здорово! Навіть я зрозумів!) Звичайно, вручну це все вираховувати довго і клопітно. Набагато простіше скористатися однією зі спеціальних програм, що автоматизують всі рутинні процедури. Ось наприклад, в DreamWeaver MX є така функція у вигляді простого "розтягування" області над картинкою і призначення їй посилання. Ніяких цифр при цьому вводити не потрібно - програма вважає все сама. Від вас вимагається лише РОЗУМІТИ що діється в коді і вміти розпізнати цю фічу в коді інших сторінок, якщо коли-небудь вам буде потрібно розібратися в пристрої інших сайтів.
   Координатні карти можуть бути не обов'язково квадратними - можна задати область-коло або довільну область зі складним зламаним контуром.
   Розглянемо роботу з окружністю:
    Повозивши курсором над цією картинкою, ви можете побачити, що область всередині лупи, крізь яку дивиться око веде на один сайт, а вся інша (за рідкісними "просвітами") - веде на інший сайт.
   У першому випадку зона задана колом, у другому - многоугольником. Дивимося код:
   <Img src = "наша картінка.jpg" usemap = "# Map2"> - рядок тега картинки змінюється тільки в імені карти координат. Вважаю, вже все додумалися, що однакові імена елементів в межах однієї сторінки неприпустимі. Це стосується, до речі кажучи, і якорів.
   А ось у винесених окремо координатних тегах у нас зміни помітніші:
   <Map name = "Map2">
        <Area shape = "circle" coords = "84,28,26" href = "http://google.ru/">
       <Area shape = "poly" coords = "65,3,51,41,78,58,109,48,110,71,7,75,4,6,34,5" href = "http://srez.ru/" >
</ Map>

  Перша строка, як ви вже напевно здогадалися, не що інше, як той самий коло (в тезі area shape зазначено "circle", що по-англійськи буде "окружність"). Координати у неї вираховуються за методом визначення центру кола - це перші дві цифри, а третя цифра - це радіус нашої окружності. Саме радіус, а не діаметр! (Для тих, хто в танку пояснюю - радіус, це відстань від центру кола до її краю. Центр в свою чергу - це та точка, яка рівновіддалена від будь-якої точки на краю кола)

  Другий рядок коду - це наша багатокутна область, заповнює більшу частину вільного простору навколо кола. У тезі area shape у неї значиться "poly", що означає багатокутник. Координати тут обчислюються парами цифр (відстань від лівого і відстань від верхнього країв). Кожній точці відповідають дві координати. Точок може бути скільки-завгодно велика безліч, але зловживати не варто - "зрубують" кути, спрощуйте систему - немає чого нагромаджувати жуткоплавние вигини тільки для краси. Повірте, приблизною розмітки на швидку руку тут цілком вистачить. Як тільки точок стає більше трьох, наш потенційний багатокутник стає трикутником. Посилання, йому призначена, буде спрацьовувати між точками. Якщо додати ще одну точку (четверту), але розставити їх так, щоб ці самі точки як би перетинали власні з'єднувальний лінії, то фігура може перетворитися на подобу двох трикутників, зрощених кутами:
  На цьому про картинки поки що все:)

понеділок, 16 березня 2015 р.

Таблиці в HTML

      Таблиці в HTML є одним з найнеобхідніших елементів і самими універсальними засобами форматування картинок і тексту. Є, звичайно, і альтернативні способи, такі як шари наприклад, але це громіздко, тяжко і незручно ... Справа в тому, що всяка бродилка бачить шари по своєму, і для більш менш пристойного відображення шарів необхідно писати довгий і нудний скрипт, да і той не панацея ... У той час, як таблиці, хоч у деяких нюансах нерідко і розходяться, але розбіжність-то мінімально.
  Отже, код найпростішої таблиці 2х2 осередки:
<Table width = "200" border = "1" cellspacing = "0" cellpadding = "0">
початок таблиці містить:
width - ширина (у нас 200 піхелей),
border - товщина облямівки / бордюру нашої таблиці (у нас 1 піхель)
cellspasing - відстань між осередками,
cellspadding - відступ від кордонів осередку всередині неї.
решті код:
    <Tr>
          <Td> 1 </ td>
          <Td> 2 </ td>
   </ Tr>
   <Tr>
          <Td> 3 </ td>
         <Td> 4 </ td>
   </ Tr>
</ Table>

додавши в код сегмент:
<Tr>
          <Td> 3 </ td>
         <Td> 4 </ td>
   </ Tr>
ми отримаємо третій рядок з двома стовпчиками.
 <Table width = "200" border = "1" cellpadding = "0" cellspacing = "0">
<Tr>
    <Td rowspan = "2"> 1 </ td>
     <Td> 2 </ td>
</ Tr>
<Tr>
     <Td> 3 </ td>
</ Tr>
<Tr align = "center">
     <Td> 4 </ td>
     <Td> 5 </ td>
</ Tr>
</ Table>
виділення жирним в коді відповідає зафарбовані сірим кольором у таблиці.
всі відміну такого побудови таблиць залючается в появі параметра rowspan = "2"
цифра в якому відповідає кількості "подстрок", тобто буквально те, скільки рядків злилося в цьому осередку:

 <Table width = "200" border = "1" cellpadding = "0" cellspacing = "0">
<Tr>
     <Td> 1 </ td>
     <Td rowspan = "2"> 3 </ td>
</ Tr>
<Tr>
    <Td> 2 </ td>
    <Tr align = "center">
    <Td> 4 </ td>
    <Td> 5 </ td>
</ Tr>
</ Table>
  Якщо в симетричною таблиці ми читаємо зліва-направо, то тут відбувається те ж саме, тільки чому ж у коді попереду 2-ки коштує осередок з цифрою 3? Все дуже просто - буквально код розшифровується, як "осередок 1", "осередок 3, що складається з ДВОХ подстрок", осередок 2, другий рядки. Але фізично осередок 3 належить до ПЕРШОЇ рядку! Адже HTML читається саме через підрядник - зліва-направо; 0)
  А що буде, якщо поставити після 3-ки ще таку ж комірку? 3b наприклад?
3 січня 3b
2
4 Травня
 <Table width = "200" border = "1" cellpadding = "0" cellspacing = "0">
  <Tr>
      <Td> 1 </ td>
      <Td rowspan = "2"> 3 </ td>
      <Td rowspan = "2"> 3b </ td>
  </ Tr>
  <Tr>
      <Td> 2 </ td>
  <Tr align = "center">
      <Td> 4 </ td>
      <Td> 5 </ td>
  </ Tr>
</ Table>
   Так, так - в тій комірці теж досить прописати rowspan = "2".
  А що, якщо в правій колонці нам треба три осередки?
3 січня 3b
2 3c
3d
 <Table width = "200" border = "1" cellpadding = "0" cellspacing = "0">
  <Tr>
      <Td> 1 </ td>
      <Td rowspan = "3"> 3 </ td>
      <Td> 3b </ td>
  </ Tr>
  <Tr>
      <Td rowspan = "2"> 2 </ td>
      <Td> 3c </ td>
  </ Tr>
  <Tr>
      <Td> 3d </ td>
  </ Tr>
</ Table>
 
  Читаємо код: Осередок 1 (звичайна)> осередок 3 (складається з трьох злитих воєдино рядків)> осередок 3b (теж звичайна); тут у нас починається другий рядок. Починається вона з осередку №2, що позначається як "осередок, що складається з двох рядків, тобто злитих по вертикалі осередків", а осередки 3с і 3d - абсолютно звичайні комірки. Для упрочщенія розуміння рядки в таблиці на прикладі позначені різними тонами, тобто кожен тон відповідає рядку. Це трохи складно усвідомити з наскоку, але це досить важливо - розуміти черговість зчитування та принцип побудови, так що напружтеся і постарайтеся: 0) Від глибини розуміння процесу залежатиме вміння користуватися всіма перевагами таблиць, а не 10-15% якими користується більшість.
   Якщо ж у нас є в наявності яейкі, суміщені по горизонталі, то замість тега rowspan використовується тег colspan, естетсвенно, в тій комірці, яка займає площу декількох.):
1
2 Березня
   Так само слід окремо запам'ятати, що параметри, що вставляються в тег відкриття рядки (<tr>) IE не сприймаються !!! Ось, не хоче він їх бачити і враховувати і все тут! Некотрие бачить, а деякі - ні в яку. Тому призначати теги будемо тільки самим осередкам або всієї таблиці відразу.
    Розглянемо, як задаються розміри таблиць:
   Ми можемо задати ширину всієї таблиці в цілому єдиної цифрою. Це може бути, як 100% (тобто від краю до краю доступного простору), так і чітка ширина в пікселях (на прикладі - 200):
У коді це пишеться так:
<Table width = "200" border = "1" cellpadding = "0" cellspacing = "0"> Або так:
<Table width = "100%" border = "1" cellpadding = "0" cellspacing = "0">
За замовчуванням * (тобто якщо у значенні ширини після цифри не йде знак відсотка (%)), число, вказане в лапках, буде розцінюватися як пікселі. Головна відмінність в тому, що якщо розмір вказаний жорстко, у точках, то при звуженні вікна таблиця "упреться" краями в тег, в який вона вкладена і не дасть йому "звузитися", якщо той має ширину, задану відносно, тобто у відсотках від доступної ширини. Для більшої наочності розгляньте цей приклад.
ширину ми задаємо, вставляючи в тег початку таблиці параметр
width = "число ширини (можна у відсотках)"
так само можна задати і вертикальний розмір -
height = "число ширини (тільки в пікселях!)"
  Майте на увазі, що звужує таблиця розтягується по вертикалі. І цим треба користуватися. НЕ потрібно намагатися підігнати текст під жорстко-фіксовану таблицю - це ламерізм. У таблиці є кілька видів вирівнювання вмісту щодо країв таблиць:
align = "left" align = "middle" align = "right"
valign = "top" valign = "middle"
align = "center" valign = "bottom"
align = "right"
в кожному осередку зазначений тип застосованого в ній вирівнювання, але крім них існує ще й параметр justify. Це вирівнювання по ширині з обох країв. На більшості сторінок причому, що дивно, навіть на тих, які роблять здавалося б професійні команди, присутній такий ламерізм як відсутність вирівнювання по правому краю:
... В кожній комірці вказано тип застосованого в ній вирівнювання, але крім них існує ще й параметр justify.
  Це вирівнювання по ширині з обох країв. На більшості сторінок причому, що дивно, навіть на тих, які роблять здавалося б професійні команди, присутній такий ламерізм як відсутність вирівнювання по правому краю:
зверніть увагу на правий край - нерівно, неохайно, некрасиво ... і читати противно якщо це вибудувано парою-трійкою стовпців, як у багатьох інтернет "газет" і "журналів". Здавалося б - ну і подумаєш?!. проте швидкість і простота сприйняття реально вище, коли око перескакує на початок наступного рядка з завжди однакового місця, ніж коли рядки закінчуються +/- 1 см від краю. Особливо це стосується великих і довгих текстів.
  Саме тому я всім раджу не забувати про цей важливий і потрібний тег. Адже і сторінка стане куди красивіше, вишикувавшись рівними стовпчиками, а не чимось на манер втратила половину зубців гребінця: 0)
тож .. теги вирівнювання. Як правильно їх прописувати і з чим вони пов'язані? Згадуємо принцип успадкування * тегів, про який йшла мова у "введенні".
  Призначаючи будь-якої частини або всієї таблиці бажане властивість, слід уявляти, як воно вплине на розташовану в таблиці інформацію:
вирівнювання про лівому краю
без параметрів
 
тег вирівнювання <centre> </ centre>, застосований на цю клітинку, на вкладену таблицю жодним чином не впливає - тільки на текст.

всередині осередку застосований
параметр "вирівнювання
справа ", але йому
протистоїть тег
рівняння по середині -
як бачимо тег
вирівнювання по центру
отримує пріоритетне
вплив, як би "забиваючи"
старший тег.
в цей же час тег рівняння на центр абсолютно не впливає на вирівнювання всередині таблиці іншої таблиці або картинки - тег <centre> </ centre> впливає тільки на текст.
 
 
застосований тег вирівнювання по Левме краю, як в комірці, так і у вигляді стандартного <centre>
на початок таблиці вставлений тег вирівнювання по правому краю.
а текст, як бачите, може і обтікати таблицю з країв, і прилягати до того краю, за яким вирівнюються.
Примітка: вікно при перегляді вищенаведеного прикладу має бути відчинене ширше - інакше вирівнювання можна не помітити (якщо вкладені таблиці упрутся в краю основної таблиці).
  За допомогою таблиць можна здійснити самий хитромудрий дизайн, розташувати вміст практично як завгодно .. Ось приклад типової організації сайту:
логотип і банер
меню
конкретно у мого сайту структура трохи складніше:
меню
1
   
банер
менюшка 2
вміст
менюшка 2
банер
   меню
3
 
   Основна таблиця з двома вертикальними роздільниками, в ній вкладено ще кілька таблиць, на малюнку вони виділенням чорною облямівкою. Вдивіться в структуру в цілому - вона поділена на вертикальні області, в яких "плавають" таблиці блоків - лівій частині, центральної частини та правій частині сторінки.
  Навіщо такі складнощі? Дуже просто - якщо зробити структуру у вигляді:
лого-тип?
банер текст текст текст текст текст текст текст
меню? вміст
  Як бачимо з прикладу, єдиної таблицею наш дизайн не вийде - адже "распирающий" одну з комірок текст спотворить весь дизайн: 0 (
   Ось саме тому і потрібно користуватися вкладеними в одну велику таблицю декількома таблицями-блоками. Крім того, це відкриває додаткові можливості по розмітці всього цього господарства.
   Наприклад у нас є кут таблиці з менюшка. Від краю треба відступити ендцать міліметрів, щоб букви не торкалися краю екрана. Як це зробити? Способів є багато.
  Наприклад, ставимо в комірці головної таблиці вирівнювання по правому краю, а в таблиці, яку туди вкладаємо, ставимо вирівнювання по лівому. Ось що у нас виходить:

логотип
1 пункт
2 пункт
3 пункт
4 пункт
5 пункт
 Ширина лівої колонки - 130 піхелей, ширина вкладеної таблиці - 110.
  В результаті маніпуляцій з вирівнюванням маємо відступ від лівого краю 20 піхелей (різницю в ширині стовпчика і вкладеної таблиці)
  Регулюємо ширину вкладеної таблиці. Чим вона ширше, тим її лівий край і, ессно, текст в ній, ближче до краю екрана.
 
пункт 1
пункт 2
пункт 3
пункт 4
пункт 5
 А можна зробити і такий ефект - теж виглядає цілком пристойно.
   Але (більш правильно!) Щоб покращити сприйняття тексту, насамперед раджу скористатися в основній таблиці відступом від країв (тег cellpadding), завдяки чому у вас залишаться елегантні поля. Щоб таблиця не псувала виду своєї рамкою, раджу основну таблицю робити "невидимої" за допомогою тега border (призначте "бордер = нуль" і рамки таблиці буде не видно). Також не забувайте користуватися тегом "justify", який, щоб не пхати його в текст безпосередньо, можна вписати в конкретний осередок - <td align = "justify"> <td>.
   Як бачимо - таблиці дозволяють зробити практично будь-який ефект, крім накладення - в цьому у шарів велику перевагу, але про них пізніше ... Власне, про таблиці на цьому не закінчується, просто інші області ставляться скоріше до маніпуляцій стилями і шарами.
   Але наостанок уточнимо всі параметри, якими можна маніпулювати в таблицях:
 
   вирівнювання: width і height - пишуться послідовно або поодиноко. Транскрипція приблизно <td width = "число" height = "число"> </ td>
Параметри задаються цілим числом, або ж цілим числом з%, тобто = "100%" - вирівняти по ширині від стінки до стінки.
           
      
      
 <Table width = "100" border = "0" height = "100" cellspacing = "4" cellpadding = "0" bgcolor = "# 999999">
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
</ Table>
 
або ось так:
      
      
      
 <Table width = "100" border = "0" height = "100" cellspacing = "4" cellpadding = "0" bgcolor = "# 999999">
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
<Tr bgcolor = "# CCCCCC">
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
<Td> & nbsp; </ td>
</ Tr>
</ Table>

цікаво, да? Тепер уточнимо значення використаних тегів:
bgcolor = "код з шести цифр виду # 000000" - задає фон комірці, або таблиці - залежно, куди вставлений цей параметр.
bordercolor = "# FFFFFF" - колір бордюру (рамки)
  Ну і про маніпуляції з cellspacing і cellpadding не забуваємо: 0) поваріюруйте їх розміри.      
  Такий спосіб куди простіший, ніж підставляння картинок - адже всяко меншу кількість коду HTML, ніж у найменшій картинці. Правда є один нюанс - все раз завантажені з сайту картинки кешируются у вас в комп'ютері і якщо, наприклад, таких картинок-куточків у вас добрий десяток, це не означає, що одна і та ж картинка буде грузиться десять разів. Навпаки, вона завантажиться одного разу і розставити по всіх потрібних місцях. З таблицею це реалізувати куди складніше, особливо, якщо ваш хостинг не має ні SSI ні PHP. Так що взагалі-то в більшості випадків простіше все-таки користуватися картинками зі сторонами піскселов по 5-10.
  Так, ще дрібна, але корисна фіча - наприклад, нам потрібно вписати текст одним рядком, і щоб таблиця підлаштувалася під ширину цієї самої рядка. Але найчастіше, якщо у таблиці не визначений розмір або визначений свідомо менший, ніж у вашій рядки, цю саму рядок бродилка перенесе в другу. Щоб не дозволити такого перенесення, потрібно в тег комірки вставити слово nowrap. Ніяких параметрів йому прописувати не потрібно, просто виділити з обох боків пропусками. Рядок в такій комірці буде завжди пряма. Пам'ятайте тільки, що вона буде "розпирати" дизайн при спробі стиснути вікно до більш вузьких розмірів. Раджу перевірити, як це буде виглядати і пам'ятати про цей нюанс.