И снова разработка шаблона

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО

Создаем свой шаблон. Пишем о попутных проблемах.

#1 29 августа 2011 в 13:51
Итак, я новичок в этом деле, это моя первая проба разработки собственного шаблона
Значит, на текущий момент проблема следующая:
имеется таблично-дивная верстка шаблона
  1. <table width="100%">
  2. <tr>
  3. <?php if (cmsCountModules("left")) { ?>
  4. <td width="235" valign="top" id="left"><?php cmsModule("left"); ?></td>
  5. <?php } ?>
  6.  
  7. <td><div id="content_table">
  8. <table valign="top">
  9. <?php if (cmsCountModules("header1") && cmsCountModules("header2")) { ?>
  10. <tr>
  11. <td width="50%" valign="top" id="header1"><?php cmsModule("header1"); ?></td>
  12. <td width="50%" valign="top" id="header2"><?php cmsModule("header2"); ?></td>
  13. </tr>
  14. <?php }
  15. else if (cmsCountModules("header1") ) { ?>
  16. <tr>
  17. <td width="auto" valign="top" id="header1"><?php cmsModule("header1"); ?></td>
  18. </tr>
  19. <?php }
  20. else if (cmsCountModules("header2") ) { ?>
  21. <tr>
  22. <td height="auto" valign="top" id="header2"><?php cmsModule("header2"); ?></td>
  23. </tr>
  24. <?php } ?>
  25. <tr>
  26. <td valign="top" colspan="2"><?php cmsBody(); ?></td>
  27.  
  28. </tr>
  29. </table>
  30. </div>
  31. </td>
  32.  
  33.  
  34. <?php if (cmsCountModules("right")) { ?>
  35. <td width="235" valign="top" id="right"><?php cmsModule("right"); ?></td>
  36. <?php } ?>
  37. </tr>
  38. </table>
Получается трехколоночный макет, где позиции left и right по бокам страницы. В среднем столбце вложена таблица, где первая строка — header1 и header2, а вторая строка — непосредственно выводимый контент страницы.
Так вот, проблема в том, что если в позиции left или right страницы модулей слишком много, то таблица среднего столбца основной таблицы выравнивается вертикально посередине страницы.
Попытки вылечить методом valign="top" соответствующих таблиц и ячеек в html шаблоне ни к чему не приводят, в css пытался прописать paddig-top: 0px; margin-top: 0px; также безрезультатно :(
Помогите, пожалуйста, знающие люди!
#2 29 августа 2011 в 15:19
Замените на этот код должно работать.
  1.  
  2. <table width="100%">
  3. <tr>
  4. <?php if (cmsCountModules("left")) { ?>
  5. <td width="235" valign="top" id="left"><?php cmsModule("left"); ?></td>
  6. <?php } ?>
  7.  
  8. <td align="left" valign="top">
  9. <div id="content_table">
  10. <table valign="top">
  11. <?php if (cmsCountModules("header1") && cmsCountModules("header2")) { ?>
  12. <tr>
  13. <td width="50%" valign="top" id="header1"><?php cmsModule("header1"); ?></td>
  14. <td width="50%" valign="top" id="header2"><?php cmsModule("header2"); ?></td>
  15. </tr>
  16. <?php }
  17. else if (cmsCountModules("header1") ) { ?>
  18. <tr>
  19. <td width="auto" valign="top" id="header1"><?php cmsModule("header1"); ?></td>
  20. </tr>
  21. <?php }
  22. else if (cmsCountModules("header2") ) { ?>
  23. <tr>
  24. <td height="auto" valign="top" id="header2"><?php cmsModule("header2"); ?></td>
  25. </tr>
  26. <?php } ?>
  27. <tr>
  28. <td valign="top" colspan="2"><?php cmsBody(); ?></td>
  29.  
  30. </tr>
  31. </table>
  32. </div>
  33. </td>
  34.  
  35.  
  36. <?php if (cmsCountModules("right")) { ?>
  37. <td width="235" valign="top" id="right"><?php cmsModule("right"); ?></td>
  38. <?php } ?>
  39. </tr>
  40. </table>
  41.  
#3 29 августа 2011 в 15:27
Микулин Сергей, спасибо огромное! Бился два дня над этой проблемой, а тут раз — и решение!!! dance
#4 29 августа 2011 в 15:36
AndroS, там нужно было к строке добавить valign="top"
#5 31 августа 2011 в 04:16


AndroS, там нужно было к строке добавить valign="top"

Микулин Сергей
Да-да-да! Увидел, спасибо!.. Только не к строке, а к столбцу :)
#6 1 сентября 2011 в 22:01

Да-да-да! Увидел, спасибо!.. Только не к строке, а к столбцу :)

AndroS
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.