Вложенные правила. Правила построения HTML-документов Rules html общие правила семейный г 2

Здравствуйте, уважаемые читатели блога сайт. Сегодня я предлагаю продолжить разговор про , который мы начали еще в приведенной статьей. Еще раньше мы с вами познакомились с тем, что такое таблицы каскадных стилей, узнали, что означают и многое другое.

Все материалы по таблицам каскадных стилей, которые уже были опубликованы на этом блоге, вы сможете найти в . Сегодня же мы поговорим сначала про то, как можно комбинировать и группировать селекторы, а затем подробно рассмотрим правил, которые применяются для одного и того же элемента в Html коде (Important, подсчет селекторов и запись правил в атрибуте style).

Комбинации и группировка селекторов в CSS

Итак, в предыдущих статьях мы успели рассмотреть 7 типов:

Из этих семи возможных видов в языке CSS можно составлять комбинации. Все комбинации, которые мы будем составлять, имеют непосредственное отношение к (предки — потомки, родители — дети, братья — сестры).

Первый вид комбинации называется контекстный селектор . Он учитывает взаимоотношение элементов Html кода по принципу «Предок — Потомок»:

Отдельные селекторы в комбинации записываются через пробел , а читать ее нужно справа налево. Т.о. правила CSS будут применяться только к последнему этой комбинации (самому правому), а все, что стоит перед ним, лишь позволяет задать более точное применение (прицеливание) для наших правил (акцентировать).

В первом примере говорится, что все элементы B (выделение жирным), у которых в предках есть элементы Div, будут окрашены в зеленый цвет.

В приведенном коде только подчеркнутый фрагмент будет окрашен в зеленый цвет, т.к. в числе его предков имеется Div, а второй фрагмент кода, выделенный тегами B, останется того цвета, который выбран для него по умолчанию, ибо в числе его предков контейнера Div уже нет (только P и Body):

Такие комбинации работают в любых браузерах.

Следующим типом комбинаций будет дочерний селектор , который строится на принципах взаимоотношений элементов кода по типу «Родитель — Ребенок»:

Записываются они с разделяющим знаком больше (>) :

Данная запись будет трактоваться браузером так: для , «родителем» (ближайшим предком) которых является контейнер Div, будет использоваться выделение красным цветом.

В приведенном примере только обведенные абзацы будут окрашены в красный цвет, ибо они заключены непосредственно в контейнер Div, который для них является родителем (ближайшим предком). Если видоизменить приведенный пример дочернего селектора на такой:

Body > p {color:red}

То красным уже будет выделен только последний абзац, т.к. его родителем является тег Body, а два первых параграфа останутся того цвета, который был предусмотрен для них по умолчанию (Body для них предок, но не родитель, которым является Div). Дочерние селекторы не работают в браузере Ie 6 .

Как и для чего группируют селекторы в CSS коде

Последняя комбинация называется соседние селекторы и отвечает принципам отношений между элементами Html кода по типу «Сестры — Братья». В качестве разделителя у них может использоваться либо «+», либо «~»:

Данная запись означает, что содержимое элемента I (выделение курсивом) будет окрашено в красный цвет только тогда, если его ближайшим соседом слева (сверху по коду) является элемент B (выделение жирным). Например, данное условие будет соблюдено в этом примере:

Если записать соседний селектор в Css коде в таком виде:

H1 ~ p {color:red}

То это будет означать, что все параграфы (P), у которых выше по коду расположен соседний элемент H1 (заголовок), будут окрашены в красный цвет. Имеются в виду именно соседние элементы (отношения вида «Сестры — Братья»). На приведенном ниже примере заданному селектору будут удовлетворять обведенные абзацы:

Комбинации соседних селекторов в браузере Ie 6 тоже, к сожалению, не поддерживаются. В Ie 6 поддерживается только первый вид комбинации, а в Ie 7 и выше поддерживаются все остальные. В остальных браузерах никаких проблем возникать не должно.

Селекторы в Css можно еще и группировать . Например, если у каких-то из них используется одно или несколько одинаковых правил, то их можно объединить в группу для уменьшения объема Css кода.

В приведенном на скриншоте примере, повторяется для каждого селектора заголовка (h1-3), что может вызвать сложности (многократная работа) при желании поменять значение этого свойства. Поэтому второй вариант сгруппированной записи выглядит немного предпочтительнее.

Обратите внимание, что при группировке селекторы пишутся через запятую . Если одинаковых правил будет больше, то и экономия кода будет более ощутимой. А те правила, которые были уникальными, нужно по-прежнему записывать индивидуально.

Приоритеты Css свойств (с important и без него)

Теперь давайте подумаем, а какое стилевое оформление будет использовать браузер, если никаких стилей для данного элемента Html кода не задано? А для этого существует соответствующая спецификация , где все это описано.

Как вы можете видеть, сейчас произошло уже окончательное разделение Html и Css. Т.е. даже для чистого ХТМЛ кода браузер все равно будет использовать дефолтные свойства таблиц стилей. Так вот свойства, принятые по умолчанию, имеют самый низший приоритет .

Более высокий приоритет имеют свойства, которые назначит пользователь в настройках своего браузера. Эти стили будут применены к любым документам, которые он просматривает в этом обозревателе.

Правда не у всех браузеров есть такая возможность, но по крайней мер, в Ie и Опере она имеется. Т.е. при желании пользователь в качестве источника стилевой разметки сможет подключить свой собственный файл CSS.

Например, в Ie для этого нужно выбрать из верхнего правого меню «Сервис» — «Свойства обозревателя», а затем на первой вкладке «Общие» щелкнуть по нижней кнопке «Оформление». В открывшемся окне вам нужно поставить галочку в поле «Оформлять, используя пользовательский стиль», и с помощью кнопки «Обзор» найти на своем компьютере нужный вам файл стилевой разметки CSS:

Т.е. у пользователя есть возможность заставить любой открываемый в браузере сайт выглядеть в соответствии с его требованиями, описанными в файле CSS. Это называется «пользовательские стили» и они имеют приоритет выше, чем стили, которые определены в спецификации по умолчанию. Но еще больший приоритет будут иметь так называемые авторские стили.

Т.е., если я (разработчик сайта) захотел использовать в оформлении какого-либо элемента Html кода стили отличные от дефолтных (помните, они в спецификации описаны), то пользователь своим собственным файлом Css перебить мое оформление не сможет.

Пользователь будет вынужден смириться? Нет. Есть у него возможность повысить приоритет своих свойств CSS с помощью добавления Important в конце каждого из них. Пишется это слово через пробельный символ и перед ним ставится восклицательный знак:

P {color:red !important;}

Если у пользователя в его собственном файле стилей, который он подключил к браузеру, будет прописано это же свойство с Important, то все абзацы он будет видеть в красном цвете. Но ведь и автор (разработчик) сайта мог использовать Important для этого свойства. Кто же тогда победит и чей приоритет окажется выше?

Решили, что пользовательские стили с Important будут иметь по-любому более высокий приоритет, чем авторские стили, что с Important, что без него.

Давайте обобщим в виде списка всю изложенную информацию по поводу приоритетов стилевых свойств. Приоритет будет убывать сверху вниз:

  1. Пользовательские с Important
  2. Авторские с Important
  3. Авторские
  4. Пользовательские
  5. Стили, принятые для Html элементов в спецификации по умолчанию (когда ни автор, ни пользователь ничего другого не задали)

Т.е. без Important авторские стили важнее, а с них уже пользовательские стили самые важные и приоритетные. Ну, а теперь давайте разбираться именно с авторскими таблицами, ибо про то, что делает пользователь, нам не ведомо и покрыто мраком.

Как повышают приоритеты Css свойств в авторских стилях

Именно сейчас мы с вами и переходим к вопросу каскадности таблиц стилей CSS . Давайте рассмотрим это на примере, чтобы было нагляднее. Допустим, что у нас имеется фрагмент кода со следующими Html элементами (параграф внутри контейнера Div):

Содержимое контейнера

Давайте сначала пропишем такие свойства:

P {color:red} .sbox {background:#f0f0f0}

В результате будет применено и первое из них к параграфу (ибо он образован тегом P), и свойство, задающее серый фон для элемента с классом «sbox», который опять же имеется у этого параграфа:

А теперь давайте добавим ко второму селектору (класса) еще одно свойство, которое будет конфликтовать с первой строчкой (в них обоих задается , но значения при этом используются разные):

P {color:red} .sbox {background:#f0f0f0;color:blue}

В результате цвет текста параграфа станет синим вместо красного.

Почему? Потому что именно таким способом разрешается конфликт, когда один и тот же элемент Html кода получает сразу несколько одинаковых правил, но с разными значениями и из разных мест Css кода. Для того, чтобы определить, приоритет какого правила выше, нужно считать его селекторы.

Кроме этого сами селекторы имеют градацию по приоритетам . Самый высокий приоритет у ID. В этом примере цвет текста будет синим именно потому, что приоритет Id (#out) будет выше, чем у селектора тега (p):

P {color:red} #out {color:blue}

Дальше по лесенке приоритетов, направленной вниз, следуют селекторы классов, псевдоклассов и атрибутов. В следующем примере опять проиграет тег (p) и цвет текста абзаца будет синим, ибо тягается он с селектором более высокого приоритета (класса):

P {color:red} .sbox {color:blue}

Ну, и самым низким приоритетом (не считая универсальный *, обладающего нижайшим весом и не вносящего никаких изменений в подобные бодания) обладают селекторы тегов и псевдоэлементов.

Div p {color:red} p {color:blue}

Какого цвета в результате получится текст параграфа? Правильно, именно красного, т.к. у этого свойства больше селекторов тегов (два против одного). О как. Т.е. сначала считаются Id. Если победитель не выявлен, то считаются классы, псевдоклассы и атрибуты. Ну, а если и там ничего не решилось или таких не было найдено, то считаются селекторы тегов и псевдоэлементов.

Но вполне возможна ситуация, когда победитель не выявится и селекторы конкурирующих классов окажутся равного приоритета в сумме. Например, для нашего многострадального параграфа заключенного в контейнер Div:

Содержимое контейнера

Вполне можно будет написать такой кусок Css кода:

Div.box #out{color:red} #in p.sbox{color:blue}

И какого же цвета должен быть текст параграфа? Обе комбинации описывают именно наш параграф. Первую следует, как и водится, читать справа налево: применить данные свойства (color:red) для элемента с Id #out, который стоит где-то внутри (иметь его среди «предков») контейнера Div с классом.box (div.box). Полностью подходит к нашему абзацу.

Вторая комбинация: применить данные свойства (color:blue) для элемента параграфа с классом sbox (p.sbox), который стоит внутри любого элемента с Id #in. Опять же, она полностью описывает именно наш параграф. Давайте считать селекторы.

С ID в обоих комбинациях встречаются по одному разу, тоже самое можно сказать и о классах. Остается только посчитать селекторы тегов, но их тоже в обоих комбинациях используется одинаковое число раз (один). Засада.

Получились равные приоритеты у одного и того же свойства, имеющего разные значения (цвет текста красный, либо синий). Как же браузер будет решать эту дилемму?

Тут будет действовать правило — кто последний , тот и прав. Поэтому в моем примере цвет текста параграфа будет синим, ибо это свойство (color:blue) расположено ниже в коде. Если эти правила поменять местами:

#in p.sbox{color:blue} div.box #out{color:red}

То в результате цвет текста параграфа изменится на красный. Что и требовалось доказать. Можно дописать, например, к любой комбинации еще один селектор тега и мы перевесим чашу весов в его пользу, даже если она и не стоит ниже в коде:

Body #in p.sbox{color:blue} div.box #out{color:red}

В этом случае цвет параграфа измениться на синий. Универсальный селектор «*» вообще никакого влияния на подсчет приоритетов не оказывает. Кстати, чуть выше мы рассмотрели способ повышения приоритета Css правил с помощью добавления Important. В нашем примере это может выглядеть так:

P {color:green !important} #in p.sbox{color:blue} div.box #out{color:red}

Какого цвета будет в этом случае текст параграфа? Зеленым, конечно же. И даже считать ничего не нужно, ибо добавление Important к стилевому свойству решает этот спорный вопрос однозначно, где бы оно в коде не стояло и сколько у него селекторов не было.

Но Important не является единственным способом безоговорочного повышения приоритета свойства. Второй способ повышения может заключаться в использовании стилевых свойств в атрибуте Style нужного вам Html элемента.

Т.е. прописываете внутри того же многострадального тега P атрибут Style с заданием любого цвета:

Содержимое контейнера

Ну и все. Теперь вне зависимости от того, какие свойства прописаны для этого элемента во внешнем файле таблицы стилей или же внутри тегов Style Html кода, цвет текста параграфа будет желтым.

Но вот свойства с Important он перебить не сможет. Т.е. в последнем примере, где мы добавили правило «p {color:green !important}», цвет текста по-прежнему будет зеленым, даже несмотря на style="color:yellow".

На самом деле приоритет двух правил (с Important во внешнем файле таблицы стилей и в атрибуте style) равный, а значит нужно переходить к подсчету селекторов. А разве они могут быть внутри атрибута style?

Да никаких не может быть, а это значит, что правило, прописанное в атрибуте style, всегда проиграет правилу с Important только за счет меньшего числа селекторов (ноль будет меньше любого числа).

Ну, а что же тогда даст наибольший приоритет Css свойству ? Правильно, его оно будет прописано в атрибуте style да еще с Important:

Содержимое контейнера

В этом случае цвет текста параграфа будет желтым и перебить это уже ничем в авторских стилях будет невозможно. Мы нашли абсолютный способ задания стилей. Его сможет перебить только пользователь со своим собственным файлом стилей и прописанным для этого свойства Important.

Итак, давайте попробует составить список факторов, влияющих на приоритет свойства в авторских стилях по мере их убывания:

  1. Прописывание свойства в атрибуте style нужного тега вместе с Important
  2. Добавление Important к свойству во внешнем файле таблиц стилей или же в теге style прямо в Html коде
  3. Простое прописывание этого свойства в атрибуте style нужно элемента
  4. Использование бОльшего числа Id для данного свойства
  5. Использование большего числа селекторов классов, псевдоклассов или атрибутов
  6. Использование большего числа селекторов тегов и псевдоэлементов
  7. Более низкое расположение свойства в Css коде, при прочих равных условиях

На самом деле правила в атрибуте style используются крайне редко (представьте себе, как трудно будет в этом случае вносить изменения во всем коде сайта, а не в отдельном файле CSS).

Этот атрибут в основном используют, когда только нужно что-то быстро протестировать. Ну, и еще это удобно, если вы вставляете свой код в чужие Html странички, которые имеют свое стилевое оформление и которое может унаследоваться () и для ваших вставляемых элементов.

А зачем и как вставлять свой код на чужие страницы? Нам может и незачем, а Яндекс и Гугл это делают, когда или на чужих площадках (наших с вами сайтах).

Добавив во все элементы кода рекламных блоков атрибут style, с прописанными в нем свойствами и добавленным Important, можно уже не беспокоиться о том, что код объявлений будет изменен каким-либо образом (хотя объявления Яндекса все же можно менять за счет CSS и Important, видимо они не использовали этот метод).

Удачи вам! До скорых встреч на страницах блога сайт

Вам может быть интересно

Селекторы тега, класса (class), Id и универсальные, а так же селекторы атрибутов в современном CSS
Селекторы псевдоклассов и псевдоэлементов в CSS (hover, first-child, first-line и другие), отношения между тегами Html кода
List style (type, image, position) - Css правила для настройки внешнего вида списков в Html коде
Для чего нужен CSS, как подключить каскадные таблицы стилей к Html документу и основы синтаксиса этого языка
CSS - что это такое, как таблицы каскадных стилей подключаются к Html коду с помощью Style и Link
Единицы размеров (пиксели, Em и Ex) и наследование правил в CSS
Background в CSS (color, position, image, repeat, attachment) - все для задания цвета фона или фоновой картинки Html элементов
Как найти и удалить неиспользуемые строки стилей (лишние селекторы) в CSS файле вашего сайта Разное оформление для внутренних и внешних ссылок через CSS

Правила (rules) являются частью нашего мира и постоянно направляют наши ежедневные действия. Практически в каждой сфере нашей жизни присутствуют правила - правила поведения (rules of behavior), правила этикета (etiquette) , правила перехода улицы (rules of crossing the street) – перечислять можно бесконечно.

Что такое правила? Это свод инструкций (a set of instructions), которым нужно следовать (must be followed), или которым нужно подчиняться (obey). Есть много английских слов, которые подразумевают правила, или относятся к правилам:

  • Cautions — предупреждение
  • Commandments – предписание, директива
  • Directions — инструкция
  • Forewarnings — предупреждение
  • Guides – руководства
  • Guidelines – руководящие указания
  • Instructions — инструкции
  • Laws – законы
  • Policies – установки
  • Procedures – процедуры
  • Regulations — правила
  • Warnings – предупреждения

Google shortcode

Правила воздействуют на нас каждый день и их трудно избежать (hard to avoid) даже в самых простых местах, даже когда мы просто идем по улице невозможно пропустить все знаки (miss all the signs), вывешенные вокруг нас, предупреждающие (giving warnings) и указывающие на правила, которым нужно следовать. Проще всего объяснить правило (the most common way to explain a rule) – записать его в книгу или выставить знаки, которые будут видны всем. Вот некоторые правила, вывешиваемые в виде знаков, которые мы часто можем встретить на улицах и в общественных местах, известные как warning signs.

  • no cycling – нельзя кататься на велосипедах
  • no entry – вход воспрещен
  • no skating allowed – нельзя кататься на роликах
  • beware of oncoming bicycles – берегись встречных велосипедов
  • Keep clear = do not block this area – не занимать эту площадь
  • you can’t fill your gas cans here — нельзя заполнять газовые баллоны
  • poison = do not eat it – яд = есть нельзя
  • no smoking allowed – не курить
  • beware of people crossing the road – осторожно, пешеходы
  • no parking allowed – парковка запрещена
  • do not drop litter – мусор не бросать
  • no children allowed – дети не допускаются
  • no photography allowed – фотографирование запрещено
  • please clean up after your dog – убирайте за своей собакой
  • danger of death – danger, high voltage electricity nearby – опасно! – опасно, высокое напряжение
  • no spitting allowed – нельзя плеваться

Как видите, вокруг нас много правил (rules are all around us), и мы должны им следовать, хотя, нужно сказать, что иногда люди не следуют правилам, они их нарушают (they break the rules), или идут против правил (go against the rules), иногда их «ловят» (they are caught) и наказывают (they are punished). Если вы нарушили правило, вас могут заставить заплатить деньги, т.е. штраф (a fine/penalty), или что еще хуже, могут заставить пойти в отделение полиции (the police station).

Вы когда-нибудь нарушали правила? Люди, которые всегда следуют правилам, называются “law abiding”, а люди, нарушающие правила — “law breakers”.

Напоследок хотим пожелать вам «be good!» , «follow the rules!», «stay out of trouble!»

Как написать правильный CSS-код?

Без знания основ невозможно движение вперёд. Причём эти основы должны быть у вас натренированы до подсознательно уровня. Вы должны знать все правила написания чистого понятного кода наизусть и всюду их применять. Начните прямо с текущего или, в крайнем случае, следующего своего проекта. Это будет вашей CSS-библией


Ниже смотрите 15 золотых правил для написания удобного и профессионального CSS-кода

1) Используйте CSS-Reset

CSS-reset - это некий фрагмент кода, который пишется вначале нашего файла стилей, в котором обнуляются все значения, и задаются все основные параметры для всех стилей, которые нам, скорее всего пришлось бы прописывать для каждого конкретного id/class. Это позволяет укоротить код впоследствии, а также избежать различий в отображении браузерами.

Вот пример CSS-Reset, взятый со страницы http://meyerweb.com/eric/tools/css/reset/index.html

/* v1.0 | 20080212 */ html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, font, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td { margin: 0; padding: 0; border: 0; outline: 0; font-size: 100%; vertical-align: baseline; background: transparent; } body { line-height: 1; } ol, ul { list-style: none; } blockquote, q { quotes: none; } blockquote:before, blockquote:after, q:before, q:after { content: ""; content: none; } /* remember to define focus styles! */:focus { outline: 0; } /* remember to highlight inserts somehow! */ ins { text-decoration: none; } del { text-decoration: line-through; } /* tables still need "cellspacing="0"" in the markup */ table { border-collapse: collapse; border-spacing: 0; }

2) Используйте сокращения

К примеру, чтобы писать длинное

Border-top: 5px; border-right: 10px; border-bottom: 15px; border-left: 20px;

мы можем записать коротко:

Border: 5px 10px 15px 20px;

то есть по часовой стрелке начиная сверху.

В основном сокращают border, margin, padding, font и background.

подробней об этом вы можете посмотреть

А вот цвета можно сокращать так:

Если кода цвета состоит из 3х повторяющихся цифр, то можно записать просто три этих цифры.
На примере: #FFFFFF можно записать как #FFF, или #990055 можно записать #905, а #F091A4 сократить нельзя.

3) Используйте комментарии

Используйте комментарии везде, где следует — они очень помогают упорядочить код, делая его более понятным для себя и для того, кто будет с ним работать

Выглядит это примерно так:

/* Ваш комментарий здесь */

Комментируйте:

а) Заголовок страницы стилей — пишите кто автор кода и когда он был написан

б) Отмечайте разделы стилей — это упорядочит весь код по разделам.
Например:

/****************************************/ /* Sidebar */ /****************************************/

в) Комментируйте проблемные места. Например те, где страница может иметь отличия в разных бразуерах.например:

Input /* IE6 Problem */

г) Пишите маленькие комментарии тем, с кем работаете — например, когда нужно что-то доработать.

4) Добавляйте Легенду Цветов

На маленьких css-файлах не сложно отслеживать все цвета сайта.
А что делать, если у нас код на 5000 строк? — ведь нельзя допускать использования не тех цветов.
Для этого существует легенда цветов — то есть список тех цветов, которые мы используем в нашем файле. Например:

/* /* светлый синий: #4595be /* тёмный синий: #367595 /* красный для ссылок: #9F1212 ********************************/

5) Помним, что такое Position:realtive и Position:absolute

В этих понятиях путается большинство начинающих верстальщиков, но есть правило, которое позволяет избежать путаницы.

Position:absolute позиционирует объект относительно страницы — и неважно, где он расположен в HTML-потоке. По умолчанию это значение 0 слева и 0 сверху.

Обычно этот вариант не используется - ибо неудобен и ограничен в опциях. А вот что вам пригодиться - если задать родителю («обёртке») нашего элемента Position:realtive, то Position:absolute будет выравниваться уже Относительно верхнего левого угла родителя . Так что можете проставлять это свойство по-необходимости. Наглядно на картинке:

6) Избегайте использование хаков

Порой такие браузеры, как IE6 и IE7 просто вынуждают нас использовать хаки. Хаки - сразу ошибка для валидатора. Так что выносите из в специальные css-файлы для каждого браузера.
Специальные записи для хаков каждому браузеру и как их выносить в отдельные файлы можно посмотреть

7) Используйте Margin’ы в описании расположения

На это не так часто обращают внимание, но это помогает избежать проблем в различных браузерах.

Идея следующая: вместо использования padding’а у родителя, мы используем margin для дочерних-элементов. Так, вместо

#main-content { padding-left: 10px }

#main-content { } #main-content #left-column { margin-left: 10px }

Ничего неправильно в использовании padding’а, но опыт показывает, что лучше всё же margin

8) Используйте float’ы

Если вы ходите приписать элементу float, то его родителю пишите overflow:hidden

Ul { overflow: hidden; } ul li { float: left; }

Без этого свойства элемент может обтекаться некрасиво — также проблемы могут возникнуть при задании margin’ов или border’ов.

Если вы хотите, чтобы элемент не обтекался - указываем clear:both ниже обтекаемого элемента. Часто это используют вместо overflow: hidden;

9) Добавляем display:inline для float-элементов

Довольно известная проблема в IE6 с удваиванием margin’ов у float-элементов. То есть если нам нужно 20px, то приходится писать 10px, ибо этот отступ удваивается. Хотя IE6 уже приказывает долго жить, и многие дизайнеры не тратят время на то, чтобы оптимизировать сайт под него, всё же небольшой кусочек кода сделает отображение в нём приятней. Итак, ставим

Display: inline /* IE6 Problem */

для элемента, к которому применён float

10) Делаем спрайтами жизнь комфортнее

Картинки-спрайты - очень удобная вещь. Они дают представление обо всей графике страницы, и снижают время загрузки.

Если знаете английский, то вот

11) Структура файлов сайта должна быть понятной

Потратьте время на то, чтобы сделать структуру сайта понятной. Раскидайте всё по полочкам.
Например:

Здесь «Website Name» - имя сайта, с которым мы работаем. Эта папка содержит HTML-файлы для сайта, плюс папки assets и styles .
В папке assets содержаться файлы, которые можно скачать с сайта, например, архивы или PDF-файлы. В папке styles содержаться, в свою очередь, папки css, images, javascript.

  • css - содержит все файлы css, например, reset.css, layout.css и main.css
  • images - все картинки сайта. Эту папку тоже можно разбить по разделам.
  • javascript - все javascript-файлы.

Эта схема приблизительна, и можно её отображать по-разному. Мысль в том, что она помогает вам рабоать быстрее и делает сайт понятнее и аккуратнее.

12) Разверните стили

Необязательный совет - Название классов и id стилей лучше писать, соблюдая древовидность, чтобы всё было понятно и наглядно.

13) Используйте пиксели а не относительные величины

Всё довольно просто - пиксели меньше нагружают код, так как документу не придётся высчитывать проценты относительных величин.

Проблема относительных величин — в передаче этой относительности.
Чтобы было понятно, разъясню на примере:

body { font-size: 62.5% } значит font-size: 1em, то есть 10px.

Если #blog-content нужен 14px, прописываем:

#blog-content { font-size: 1.4em; }

Теперь если H3 тег внутри #blog-content нужен нам 20px, то его можно было бы задать так:

#blog-content { font-size: 1.4em; } #blog-content h3 { font-size: 2.0em }

Всё бы хорошо, но у нас действует относительность. И эти 2.0em применяются к 1.4em
#blog-content’a
, и в итоге, размер мы получим 28px.

Так что используйте фиксированные величины .

14) Ограничивайте псевдо-классы якорными тегами

Новые браузеры не имеют данной проблемы, всё упирается в ряд старых браузеров во главе с IE6.
Проблема заключается в том, что в старых браузерах псевдо-классы (такие как:hover) работают только применительно к тегу a , тоесть

#header ul li:hover { background-color: #900 }

не работает в IE6

Эта проблема устраняеться с jQuery

15) Избегайте проблем с селекторами

Используйте селекторы где это возможо

Например, используйте вместо

#main-content.main-header

#main-content h1

Будьте осторожны с группировкой селекторов

Ведь тут могут неправильно сыграть относительные величины, если вы их используете

Если на это примере всё в порядке,

Main-content div,.main-content p { color: #000; }

То на этом — будьте внимательны с относительными величинами.

Main-content div,.main-content p { line-height: 1.3em; }

И напоследок

Чтобы написать успешный код, избегайте постоянного оборачивания одного в другое и тд.
Учите теги h1, ul и p.
Ключ к успеху прост - это практика, практика, практика

Удачно тренироваться)

» »

Sharing is caring!

Attribute of What does do? Was used to specify the display of internal borders between rows and colums. This attribute has been deprecated. Use CSS to style table borders instead.

The Rules Attribute has been Deprecated This attribute has been deprecated and should not be used. Browser support for this attribute is limited and using it may produce unexpected results. Instead, use CSS to style tables.

The RULES Attribute

RULES , an HTML 4.0 attribute, indicates if there should be internal borders in the table. We"ll go over each of the values of RULES and demonstrate how they are used. RULES and FRAME have an annoying way of changing each other"s defaults. To simplify your life, here"s a rule of thumb: if you use RULES also use FRAME and BORDER . It"s easier to avoid getting confused.

The NONE Value for the RULES Attribute

RULES=NONE means that there are no inside borders. RULES=NONE is the default if you don"t use BORDER or set it to zero, but otherwise must be explicitly stated to have no inside borders. Note that currently Netscape does not recognize RULES .

Name Food
Starflower stir fied tofu
Miko vegetable rice soup
Andy hummus
Ping french toast

The ALL Value for the RULES Attribute

RULES=ALL indicates that all the internal borders should be visible. RULES=ALL is usually used in conjunction with FRAME=VOID so that there are outer borders but no inner borders.

When applied to a table, that value gives us this result:

Name Food
Starflower stir fied tofu
Miko vegetable rice soup
Andy hummus
Ping french toast

The COLS Value for the RULES Attribute

COLS indicates that there should be borders between the columns but not between rows.

When applied to a table, that value gives us this result:

Name Food
Starflower stir fied tofu
Miko vegetable rice soup
Andy hummus
Ping french toast

The ROWS Value for the RULES Attribute

RULES=ROWS indicates that there should be borders between rows but not between columns.

When applied to a table, that value gives us this result:

Name Food
Starflower stir fied tofu
Miko vegetable rice soup
Andy hummus
Ping french toast

The GROUPS Value for the RULES Attribute

RULES=GROUPS allows you to put borders between groups of table cells. There are two ways cells can be grouped: by row and by column. Let"s go over each of them. Note that currently Netscape does not recognize RULES .

Grouping By Row

To group by row use the , , tags. indicates the header rows of the table, indicates the main body of the table, and indicates the bottom rows. So, for example, this code creates a table with three groups. Borders appear just between groups:

NameFoodPrice
Starflowerstir fied tofu5.95
Mikovegetable rice soup4.95
Andyhummus3.95
Pingfrench toast5.95
Total20.80

Here"s how that table renders:

Name Food Price
Starflower stir fied tofu 5.95
Miko vegetable rice soup 4.95
Andy hummus 3.95
Ping french toast 5.95
Total 20.80

Grouping By Column

To group by column use the tag and its SPAN attribute. takes a little getting used to because it doesn"t actually go around any table cells. It goes at the top of the table code where it sets rules about the table columns including which are grouped together. to indicates how many columns are in each group. If you leave SPAN out then it is assumed the group has just one column. So, for example, the following code says that the first column is in a group by itself and the three after that are together in a group. Notice that requires an end tag. Borders will go only between the groups.

На данный момент большинство браузеров отображают сайты, самостоятельно расшифровывая и подправляя ошибки веб-мастеров. Однако нужно быть внимательным при написании HTML - необходимо следовать правилам валидности, т.к. правильная верстка важна для оптимизации сайта, а также поможет не сойти с ума пользователям, которые откроют ваш сайт в браузерах ранних версий.

Используйте

Элемент располагается на первой строке любой HTML-страницы. Он определяет версию языка разметки, который используется на странице. На данный момент рекомендуется использовать doctype вида - он является универсальным для любой версии языка.

Используйте правильную структуру документа

Теги , , всегда должны присутствовать в коде, это делает страницу совместимой со стандартами и гарантирует, что она будет корректно отображаться.

Неправильно



Hello world!

hello world!


Правильно



Hello world!


hello world!



Определяйте техническую информацию страницы правильно

Мета-теги и стили следует указывать в , а не где-то в теле страницы. Скрипты предпочтительно подключать внизу страницы перед закрывающимся тегом . Преимущество данного подхода в том, что до момента отображения контента страницы браузер загружает только стили, а скрипты он загрузит в последнюю очередь, что позволяет пользователю быстрее увидеть содержимое страницы.

Неправильно



Hello world!




Правильно



Hello world!




Следуйте стандартам разметки

Используйте элементы в соответствии с их семантикой

Проверяйте html-код на валидность

Используйте альтернативный текст для изображений

Изображения должны всегда включать атрибут alt. Браузер полагается на данный атрибут, чтобы обеспечить контекст для изображения. Атрибут alt должен содержать текст, который будет отображаться в том случае, если картинка не загрузилась.

Неправильно

Правильно

Не используйте стили в HTML разметке

Это создает страницы, которые загружаются слишком долго и трудно поддерживаются. Прописывайте все стили в отдельном CSS-документе. Старайтесь использовать тег и атрибут style по минимуму.

Пишите комментарии

Комментируйте код, но не переусердствуйте. Комментарии, которые написаны кратко и понятно, могут послужить отличной помощью для других разработчиков, а также важным напоминанием для вас по истечении некоторого времени.

Пример:



Страница











Используйте подходящие имена классов

Задавайте имена css-классам в соответствии с содержанием блока, например: шапка - header, подвал - footer, меню - menu, контент - content. Благодаря этому код будет намного понятнее и его легче будет поддерживать.

Плохой код


  • Пункт меню 1

  • Пункт меню 2

  • Пункт меню 3

Хороший код

Правила написания CSS

В css также есть правила, следуя которым, можно сохранить код простым, легко читаемым и хорошо организованным.

Сбрасывайте стили браузера по умолчанию

Они могут мешать стилям, которые мы хотим применить на самом деле. Скачать файл для сброса стандартных стилей браузера можно тут - reset.css .

Используйте сокращённые свойства и значения

Плохой код

padding-top: 5px;
padding-right: 10px;
padding-bottom: 15px;
padding-left: 20px;

Хороший код

padding: 5px 10px 15px 20px;

Указывайте селекторы и правила с новой строки

Плохой код

Element {display:block;position: relative;padding:5px 10px 15px 20px;}

Хороший код

Element {
display: block;
position: relative;
padding: 5px 10px 15px 20px;
}

Указывайте нулевые значения без единиц измерения

Плохой код

padding: 10px 0px;
margin-left: 0%;

Хороший код

padding: 10px 0;
margin-left: 0;

Пишите комментарии

Разделяйте основные блоки комментариями, это улучшит читаемость кода.

Пример:

/*HEADER*/
header {
}
/*HEADER END*/

/*MAIN*/
main {
}
/*MAIN END*/

/*FOOTER*/
footer {
}
/*FOOTER END*/

Проверяйте css-код на валидность

Заключение

Данные рекомендации и правила - лишь основы, поскольку языки HTML и CSS развиваются все быстрее, разрабатываются новые методы написания правильного кода. Следуя нашим рекомендациям, вы будете уверены, что ваш код является простым, легко читаемым и оптимизированным. А также получите +100 к карме и благодарности от разработчиков, которым предстоит работать над сайтом после вас.

В продолжение темы:
Устройства

можно не только отправлять сообщения и совершать аудиовызовы, но еще и создавать видеоконференции. Для использования этой возможности требуется веб-камера. В ноутбуках она...

Новые статьи
/
Популярные