Xpoint
   [напомнить пароль]

Необходима ли 100% валидация HTML и CSS ?

Метки: [без меток]
2006-02-27 20:09:06 [обр] Romeus[досье]

Сверстал макет сайта:
http://devel.pirosmani.biz

Сайт не проходит HTML-валидацию, потому что есть несколько блоков:

.........
<div class="artHead">
 <a href="#" class="infBlock">
  <h1 class="currency"><span class="ot1">Курс валют(руб.):</span></h1>
   <p class="txt2">
    <div class="infName">
     <div class="ot1">EUR</div>
     <div class="ot1">USD</div>
    </div>
    <div class="infValue">
     <div class="ot2"><div class="txtBd">11.111</div></div>
     <div class="ot2"><div class="txtBd">22.55</div></div>
    </div>
   </p>
  </a>
</div>
.......

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

CSS тоже не проходит валидацию по причине того, что не у всех элементов задан background.
А если этот background и не нужен ?

А может если все корректно работает, то просто проигнорировать вышеперечисленные ошибки валидации ?

С уважением, Роман.

спустя 21 минуту [обр] Виталий Шароватов(0/21)[досье]

Про ссылку: инлайн-элементы (каковым является а) не могут содержать внутри себя элементы блочного уровня. Это семантически неверно.

Про указание background: а Вы смените в ОС цвет основного фона на черный, а цвет текста - на белый, поймете, зачем спецификация требует указания одновременно и цвета и фона.

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

А может если все корректно работает, то просто проигнорировать вышеперечисленные ошибки валидации ?

Тогда зачем Вы вообще пользуетесь валидацией?

спустя 3 минуты [обр] Алексей В. Иванов(9/2861)[досье]
Romeus[досье] Всё это можно сделать нормально, так, чтобы проходило валидацию, но для этого нужен некоторый опыт (понимание семантической разметки). Если делаете "для себя", то можете "забить" на валидацию.
спустя 13 часов [обр] Romeus[досье]
Спасибо большое, сменил цвета и понял о чем идет речь. И все же есть отдельный вопрос к Виталию: Если не заключать блок в тэг <a>, то возможно ли сделать так, чтобы он вел себя как единая ссылка ?
спустя 51 минуту [обр] Алексей Севрюков(0/1280)[досье]
Romeus[досье]
  1. Сделать несколько разных ссылок на одно место (предпочительнее).
  2. Обернуть все в div с onclick.
  3. И заодно все стили переписать с использование контекст, код сократится в 2-3 раза и будет удобно читаться (этот пункт тоже приходит с опытом).
спустя 36 минут [обр] Romeus[досье]

Спасибо Алексей, так и сделаю. Вопрос по использованию контекста.
Очевидно имеется ввиду примерно следующее:

  1. Без учета контекста документа:

В стилях:

/* Определение стиля ссылки */
A.Lnk1 {.....}

В коде:

<UL class="mnu_1">
 <LI><a href="#" class="Lnk1">Первый пункт меню</a></LI>
 <LI><a href="#" class="Lnk1">Второй пункт меню</a></LI>
 .......................................................
 <LI><a href="#" class="Lnk1">Последний пункт меню</a></LI>
</UL>

  1. С учетом контекста документа:

В стилях:

/* Определение стиля ссылки ДЛЯ КОНКРЕТНОГО КОНТЕЙНЕРА */
.mnu1 A { ..... }

В коде:

<UL class="mnu_1">
 <LI><a href="#">Первый пункт меню</a></LI>
 <LI><a href="#">Второй пункт меню</a></LI>
 .......................................................
 <LI><a href="#">Последний пункт меню</a></LI>
</UL>

Второй вариант использовать предпочтительней. Но только в случае если данный вид ссылки используется в одном конкретном случае в контейнере mnu_1. А если например данный вид ссылки используется, например в нескольких контейнерах, то в CSS получится примерно следующий код:

.mnu_1 A, .cont_1 A, cont_2 A, cont_3 A, cont_4 A, cont_5 A { ...... }

Такое на мой взгляд годится только в качестве оптимизации и только в случае если используется много ссылок.

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

Заранее благодарен, Роман.

спустя 45 минут [обр] Алексей Севрюков(0/1280)[досье]

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

.mnu_1 A, .cont_1 A, cont_2 A, cont_3 A, cont_4 A, cont_5 A { ...... }

Ничего подобного, делаем так:

/* Для ссылок по умолчанию */
A {color: #000; text-decoration: underline;....} 

/* Для данного контейнера меняем отображения по умолчанию,
изменятся/добавятся только те правила, которые пропишем, остальные возьмутся 
из общего определения.
*/
.cont1 A {color: #f55;} /* Red */
.cont2 A {color: #55f;} /* Blue */

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

спустя 2 минуты [обр] Алексей Севрюков(0/1280)[досье]
Romeus[досье] Да, и так чтобы тему не превращать в оффтопик - создайте отдельную тему в HTML-вертска::CSS по каскадным таблицам стилей. Потому что эта тема совсем не об этом.
спустя 46 минут [обр] Romeus[досье]

Спасибо за ответы.

Роман

спустя 2 месяца 15 дней [обр] Aiwentoor[досье]
в первом примере в строковый элемент <a>, поместить строковый элемент <span>, которому указать display: block и вообще все свойства div'а. может так получится нужный результат и валидность? или нет?
спустя 16 минут [обр] Евгений Петров(0/1055)[досье]
Aiwentoor[досье] А что говорит эксперимент?
спустя 18 часов [обр] Aiwentoor[досье]
не пробовал, поэтому и спрашиваю
спустя 16 минут [обр] GRAy(0/259)[досье]
Aiwentoor[досье] Неправильный ответ ;) - вы попробуйте, компьютер от этого не взорвётся и руки вам никто не оторвёт ;)
спустя 4 часа 33 минуты [обр] Aiwentoor[досье]
не, всё равно лень
спустя 8 минут [обр] Евгений Петров(0/1055)[досье]
Aiwentoor[досье] Зря Вы это сказали. Не буду говорить за остальных, но лично я буду игнорировать Ваши вопросы, если таковые появятся.
Powered by POEM™ Engine Copyright © 2002-2005