Не валидная верстка. Как исправить?

Проверила сайт валидатором. Теперь не получается исправить некоторые ошибки.
Ребята, поможете?

1. Валидатор ругается на "defer" в строке:
<script defer type="text/javascript" src="<?php bloginfo(‘template_url’); ?>/scripts/pngfix.js"></script>

А без "defer" скрипт не работает. Как это совместить?

2. Ошибка: XML Parsing Error: Opening and ending tag mismatch: html line 2 and head

Вот код, в котором ошибка:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
1. <html xmlns="http://www.w3.org/1999/xhtml">
2. <head profile="http://gmpg.org/xfn/11">
...................
</head>
<body>

3. Most likely, you nested tags and closed them in the wrong order. For example <p><em>…</p> is not acceptable, as <em> must be closed before <p>. Acceptable nesting is: <p><em>…</em></p>

Another possibility is that you used an element which requires a child element that you did not include. Hence the parent element is "not finished", not complete. For instance, in HTML the <head> element must contain a <title> child element, lists (ul, ol, dl) require list items (li, or dt, dd), and so on.

Т.е. не включение обязательных элементов, в данном случае Валидатор видит вот этот код:

   <ul id="tab_popular" class="tab_list">  
<?php
$now = gmdate("Y-m-d H:i:s",time());
$lastmonth = gmdate("Y-m-d H:i:s",gmmktime(date("H"), date("i"), date("s"), date("m")-12,date("d"),date("Y")));
$popularposts = "SELECT ID, post_title, COUNT($wpdb->comments.comment_post_ID) AS 'stammy' FROM $wpdb->posts, $wpdb->comments WHERE comment_approved = '1' AND $wpdb->posts.ID=$wpdb->comments.comment_post_ID AND post_status = 'publish' AND post_date < '$now' AND post_date > '$lastmonth' AND comment_status = 'open' GROUP BY $wpdb->comments.comment_post_ID ORDER BY stammy DESC LIMIT 4";
$posts = $wpdb->get_results($popularposts);
$popular = '';
if($posts){
    foreach($posts as $post){
        $post_title = stripslashes($post->post_title);
        $guid = get_permalink($post->ID);
?>
        <li class="popular">  
                 <?php get_image('thumbnail','popular'); ?>                
           <span class='title'><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title(); ?>"><?php the_title2('', '...', true, '25') ?></a></span><br />
           <span class='meta'><?php comments_popup_link('Посмотреть комментарии...'); ?></span>                        
        </li>
<?php
    }
}
?>
</ul>

Вот так:

#  <!-- Tab_popular -->
# <ul id="tab_popular" class="tab_list">
#
# </ul>

Т.е. не видит включенных внутрь тегов <li></li>

Как переписать этот код, чтобы было валидно?

4. Ошибка: Закрывающий тег </li> при отсутствии открывающего:

#<h5>Авторизация</h5>
# <form name="loginform" id="autoriz" action="http://juice.fsay.net/ajuice/wp-login.php" method="post">
# <input type="text" name="log" value="" id="login" />
# <label for="login">Логин</label><br />
# <input type="password" name="pwd" value="" id="password" />
# <label for="password">Пароль</label>
# <input type="submit" name="submit" value="" id="enter" /><br />
# <input type="hidden" name="redirect_to" value="/ajuice/" />
# <p><a href="http://juice.fsay.net/ajuice/wp-login.php?action=lostpassword">Забыли пароль?</a></p>
# <p> <a href="http://juice.fsay.net/ajuice/wp-login.php?action=register">Регистрация</a></li></p>
# </form>

Проблема в том, что тега </li> там нет: нет в файле и, если посмотреть html-код страницы – его тоже нет.
А валидатор, почему-то, его видит.

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

извините за вопрос, но зачем вам сдалась эта проверка?

1. Попробуйте defer="defer"

PS Не люблю XHTML

Валидатор видит вот этот код: 
<ul id="tab_popular" class="tab_list">  
<?php
[...]
?>
</ul>

Вот так: [...]

Т.е. не видит включенных внутрь тегов <li></li>

Что-то я не понял: как Вы вылидатору php инструкции «скармливаете»?

Что-то я не понял: как Вы вылидатору php инструкции «скармливаете»?

Help Desk, да нет, конечно. Что вы так все буквально воспринимаете.

Ю.Б., спасибо. Попробую.
А как остальные ошибки исправить?

Аналогично, уж очень много проблем с версткой… У меня что-то около 50 ошибок, надо будет сесть как-нибудь и все поправить 🙂

Anonymous
Отправить
Ответ на: