Css техніки, знання яких не вистачає новачкам
CSS - проста, потужна і легка для використання техніка. Але, не дивлячись на свою простоту, в ній ховається чимало можливостей. Якщо запитати будь-якого дизайнера, то він скаже, що основне джерело проблем з кодом і їх рішень ховається в CSS.
Всі дизайнери в певній точці їх кар'єри проходять через процес виявлення дивних моментів у відображенні інформації, пошуку рішень і відкриття трюків і технік, які можуть зберегти для них втрачені на розлади годинник.
В даному уроці зібрані разом найбільш розчаровують і вимогливі до часу вузькі місця CSS і, що більш важливо, шляхи їх обходу (з прикладами). Можливо, інформація допоможе зберегти кілька ваших волосся від передчасного посивіння.
Скидання і браузерная несумісність
Не всі браузери однакові. Насправді, кожен браузер відрізняється від інших. Які значення стоять за замовчуванням для полів, відступів, розмірів шрифту для елемента
. Ви будете здивовані розміром списку значень. Для обробки різниці між браузерами багато хто починає зі скидання стилів CSS.
На ранніх стадіях використання техніки скидання, дизайнери встановлювали значення тільки для полів і відступів, використовуючи правило глобального скидання:
Але чим більше людей використовували скидання і обговорювали його, тим очевидніше ставав факт, що установка значень тільки для полів і відступів не достатня (і застосування вище наведеного правила для кожного елемента погано позначається на механізмі виведення сторінки). Завдяки роботі Eric Meyer і інших піонерів CSS була створена більш повна колекція правил скидання:
Важливо відзначити, які елементи включені в популярний список скидання CSS. Також важливо знати, що деякі елементи були навмисно виключені із списку:
Дані елементи були виключені через значну різницю в їх крос-браузерному поданні. Легше взагалі не ставити для них ніякого стилю.
Модель прямокутника - поля, відступи і межі
Модель прямокутника є основою для всіх розміток. Вона управляє розмірами і відступами елементів на сторінці. Для того, щоб зрозуміти її потрібно зрозуміти різницю між блоковими елементами і малими елементами.
Блокові елементи за замовчуванням займають всю ширину містить їх елементи і мають висоту line-height. Вони розташовуються один під іншим, верх до низу. З цієї причини вони за умовчанням займають всю містить їх рядок на сторінці Прикладом блокових елементів є:
..
- .
- .
Рядкові елементи. Вони розташовуються один за іншим зліва на право. Коли вони мають контент, то займають місце точно по висоті і ширині контенту. Без контенту вони згортаються і не мають ні ширини, ні висоти. Приклади малих елементів:
. . . . .
Всі блокові елементи HTML мають властивості: height (висота), width (ширина), margin (поле), padding (відступ), і border (межа) (рядкові елементи теж мають такі властивості, але працюють вони по іншому). Width і height - хитрі атрибути, вони вимагають обчислень. Коли дизайнер визначає ширину елемента, він повинен розглядати весь прямокутник в цілому.
У прикладі нижче прямокутник має ширину 260px. Поле, відступ і кордон мають розмір 30px кожен (пам'ятаєте, що 30px на верху, 30 внизу, 30 справа і 30 ліворуч). Таким чином поле займає 60 px ширину прямокутника. Так само як і кордон і відступ займають по 60px кожен. Всі разом поле, відступ і кордон займають 180 px шірірни прямокутника.

Ми знаємо, що загальна ширина прямокутника 260px, але в CSS атрибут width посилається на область контенту всередині прямокутника. Таким чином, для нашого прикладу нам потрібно відняти 180 px (для поля, відступу і кордони) з 260 (загальна ширина прямокутника), що дає нам ширину області контенту рівною 80px. Таким чином наш CSS виглядає ось так:
доповнення
- Всі приклади і правила, які обговорювалися вище для властивості width також актуальні і для властивості height.
- margin може містити від'ємне значення. Використовуйте його обережно.
- пам'ятайте про використання одиниць виміру в моделі прямокутника. Тільки нульові значення (margin: 0;) можуть бути написані без завдання одиниць виміру.
Розміри - висота, ширина, мінімум і максимум
Тепер зрозуміло, як використовувати ширину і висоту в моделі прямокутника. Давайте розглянемо гнучкість розмірів CSS. Нові браузери підтримують min- і max-width (і те ж саме для height), дозволяючи нам креативно використовувати розміри і створювати гнучку розмітку.
Width / height задає простір, яке займає об'єкт. Вони можуть вимірюватися в пікселях (10px), відносних одиницях (10em) і відсотках (10%), а також в інших одиницях виміру. Визначення ширини або висоти елемента примушує його зберігати зазначені розміри незалежно від змісту всередині. Таким чином, якщо контент занадто великий для контейнера, то він буде обрізаний і нижня частина буде прихована (або він буде виглядати справжньою мішаниною).
Min-width і min-height
Min-width і min-height може бути дуже корисним для таких елементів як і
В IE6, "height" діє таким же чином як і "min-height" в нових браузерах, тобто контейнер зростає разом з вмістом (потрібно про це пам'ятати при розробці для IE6).
Max-width і max-height
Якщо ми ставимо для елемента max-width або max-height. він буде згортатися до розмірів контенту. У міру зростання контенту елемент буде розтягуватися до тих пір, поки не досягне встановленого максимуму. Потім залишився контент буде обрізаний.
Використання max і мin в IE6
Min- і Max- width є чудовими інструментами в арсеналі дизайнера, але вони, на жаль, не працюють в IE6. Що робити? Зазвичай обмежують ширину сайту, замість того, щоб зробити чудову розмітку, і приносять в жертву старому браузеру зручність користувачів.
У вище наведеному прикладі найменша ширина сторінки - 800px, а найбільша - 1000px. Прогинатися довелося не дуже сильно, а концепція може бути використана для будь-яких елементів.
А якщо ви хочете використовувати тільки min-width.
Плаваючі елементи та їх очищення
Властивість float (плавати) виводить елемент поза звичайним потоку елементів, і переміщує елемент вліво або вправо до тих пір, поки він не досягне поля або відступу іншого блочного елемента. Float і clear входять в список найбільш потужних властивостей CSS (і в них найчастіше припускаються помилок). Щоб перейнятися суттю їх використання треба повернутися до опису блокових і малих елементів.
Застосування властивості float до будь-якого елементу автоматично робить його блоковим. Це означає: 1) за замовчуванням всі елементи з властивістю float (навіть і ) Будуть вести себе як блокові елементи, 2) завдання елементу відразу і float: left; і display: block; є надлишковим і непотрібним. Використання display: inline для плаваючих зображень є дуже популярним методом фіксації багатьох кросс-браузерних каламбурів.
Плаваючий div в очищеному div
Плаваючий div в очищеному div - дана ситуація буде дуже часто вас приводити в здивування, до тих пір, поки ви не заробите досвід і не проведете ряд експериментів, щоб все чітко розуміти. В основному вам потрібно використовувати float для батьківського елемента, якщо він містить інші плаваюшіе елементи, і тоді вони будуть вирівняні і очищені правильно:
Звичайно, потрібно вставити якийсь контент в блоки div.
Існує багато методів очищення, які ви можете використовувати для плаваючих елементів div. Деякі вимагають додаткової розмітки, інші не працюють в IE 6, треті просто супер, але їх не можна використовувати для всіх випадків, а тільки для деяких. На старті веб кар'єри потрібно знати про методи очищення все, що можливо дізнатися.
Кілька років тому для досягнення крос-браузерності багато хто використовував хакі для IE і різні методи накладення патчів. Такий підхід був причиною надмірне розмірів сторінок і їх повільного завантаження.
Потроху співтовариство дизайнерів відкривало приховані можливості, закопані в механізмі виведення зображень Triton (Internet Explorer). Ви можете використовувати спеціальний код HTML для IE щоб визначити версію браузера і завантажити спеціальну таблицю стилів для даної версії.
Overflow і zoom
Багато дизайнерів в разі наявності часу для роботи над проектом витрачають його на боротьбу з IE 6 і деякими його дикими витівками. В даному випадку overflow і zoom можуть надати істотну підтримку.
Overflow (переповнення)
Дуже часто, при вирішенні серйозних проблем з розміткою просте використання overflow: hidden для дістав div може виявитися ключем до зачинених дверей. Важко придумати приклад для даної ситуації, але такий метод може допомогти в будь-якому браузері, а властивість overflow може стати швидким рішенням вашої крос-браузерної напасті.
Zoom (масштабування)
Властивість zoom не так добре відомо, як інші властивості CSS. Але воно є дуже потужним інструментом щодо крос-браузерних питань, особливо для IE 6/7. Zoom є властивістю IE, яке впливає на рівень масштабування сторінки. Також воно включає hasLayout для використовує елементи і фіксує кілька моментів шаблону. Спробуйте використовувати його, воно може допомогти зберегти час.
Так як hasLayout не включається ні в яких інших браузерах, то може здатися. що його можна розміщувати в основній таблиці стилів. Але краще залишити це властивість разом з іншими специфічними правилами CSS для IE, просто для виключення проблем в майбутньому.
Коли CSS не може дати відповідь
Чи вірите ви чи ні, але CSS не завжди може вирішити задачу. Особливо зараз, коли великі браузери ведуть війну. Іноді CSS не може зробити все, що нам потрібно, на всіх потрібних платформах.
висновок

За рахунок отримання інформації відразу по двох каналах (зір і слух) ефективність навчання значно перевершує навчання по книгах. А домашні завдання і онлайн-тести дозволять вам постійно думати на мові, що вивчається і відразу перевіряти свої знання!


Якщо ви давно хочете як слід вивчити HTML, то у мене для Вас є чудова новина!

Якщо ви вже вивчили HTML і хочете рухатися далі, то наступним кроком буде вивчення технології CSS.

Якщо ви хочете розібратися з поняттями домену і хостингу, навчитися створювати бази даних, закачувати файли сайту на сервер по FTP, створювати піддомени, налаштовувати поштові скриньки для свого сайту і стежити за його відвідуваністю, то цей курс створений спеціально для вас!
- .