Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: <table> VS <div>
 
 автор: maxam   (26.08.2010 в 15:01)   письмо автору
 
 

Какая вёрстка лучше и почему?

  Ответить  
 
 автор: maxam   (26.08.2010 в 15:02)   письмо автору
 
   для: maxam   (26.08.2010 в 15:01)
 

В PHP есть возможность определения скорости работы скриптов, а в HTML - нет. Тогда почему некоторые утверждают, что блочная вёрстка быстрее табличной страницу загружает?

  Ответить  
 
 автор: АЯ   (26.08.2010 в 15:35)   письмо автору
 
   для: maxam   (26.08.2010 в 15:02)
 

1. Лучшей будет та вёрстка, коя даст Вам желаемый результат.
2. Скорость отображения HTML-страницы в браузере тоже можно определить. С помощью JS, например:
<head>
<script>
var StartTime = new Date ().valueof ();
onload = function () {var EndTime = new Date ().valueof ();
alert ('Страница загружена и сформирована за ' + (EndTime - StartTime) + ' миллисекунд')}
</head>
<body>
...
</body>
Если грузить страницы будете с жёсткого диска компьютера (т. е. время загрузки не будет зависеть от состояния и скорости сети), то как раз чётко увидите разницу во времени формирования страницы.
Ибо событие onload происходит тогда, когда ПОЛНОСТЬЮ сформируются ВСЕ объекты, т. е. будет определена не только последовательность тегов, но и их размеры и их точное месторасположение на странице.
Расчёт размеров таблицы начинается только тогда, когда закончится расчёт размеров всех её ячеек. Соответственно, время формирования таблицы из 20-ти, например, ячеек, будет бОООльшим, чем время на формирование тех же 20-ти дивов. Ибо во втором случае - просто 20-ть, а в первом - 20 + время на формирование самой таблицы. Да и плюс к тому, расчёт размеров объектов, расположенных НИЖЕ таблицы, начнётся тоже ПОСЛЕ окончания расчёта размеров таблицы...

Но ещё раз - лучшей будет та вёрстка, коя именно Вам даст желаемый результат.
За модой гнаться ни в коем случае не стоит.

  Ответить  
 
 автор: maxam   (26.08.2010 в 22:06)   письмо автору
 
   для: АЯ   (26.08.2010 в 15:35)
 

Вот я мнения того же, что у вас в последней строчке указано. Просто думаю, что если и так код большой, то может хотя бы страницы сделать быстрее загружаемыми. Но вы меня всё таки практически разубедили, но не совсем. Не знаю почему ) Я сам за табличную, просто уж совсем всюду пишут, и, ЧТО ГЛАВНОЕ, используют. В примеры крупные сайты - wikipedia, facebook, apple...

  Ответить  
 
 автор: maxam   (26.08.2010 в 22:10)   письмо автору
 
   для: АЯ   (26.08.2010 в 15:35)
 

А как ваш код использовать? У меня не получается.

  Ответить  
 
 автор: АЯ   (26.08.2010 в 22:49)   письмо автору
 
   для: maxam   (26.08.2010 в 22:10)
 

<script>
var StartTime = new Date ().valueOf ();
onload = function () {var EndTime = new Date ().valueOf ();
alert ('Страница загружена и сформирована за ' + (EndTime - StartTime) + ' миллисекунд')}
</script>

  Ответить  
 
 автор: Usta   (26.08.2010 в 23:13)   письмо автору
 
   для: АЯ   (26.08.2010 в 22:49)
 

Табличная верстка это ЗЛО!!!! Один не закрытый TD И хана, Нужно сразу учитывать много факторов, что в сайт нужно что-то добавить т.д. С div такой проблемы нету. Пихай куда хошь и за малое время. Не спорю что без таблиц иногда не как, но лучше от них избавляться.

  Ответить  
 
 автор: АЯ   (26.08.2010 в 23:26)   письмо автору
 
   для: Usta   (26.08.2010 в 23:13)
 

>"Табличная верстка это ЗЛО!!!! Один не закрытый TD И хана"

Скажите - Вы эту глупость только сейчас выдумали?
Или заранее?

Читайте стандарт для тега TD, где чётко написано -
Start tag: required, End tag: optional
Перевод для optional выдумщику требуется? :-))

А вот попробуйте не закрыть тег DIV при вёрстке. И вот там - точно ХАНА. Ибо в стандарте для него как раз написано -
Start tag: required, End tag: required

Главное ЗЛО - это выдумки неграмотных лохов.

  Ответить  
 
 автор: Usta   (26.08.2010 в 23:46)   письмо автору
 
   для: АЯ   (26.08.2010 в 23:26)
 

Могу сказать только одно. Если вам не жалко Вашего времени, то удачной вам табличной верстки. Муки вас ждут.
Про:
>Главное ЗЛО - это выдумки неграмотных лохов.
Я работаю WEB- мастером уже 2 года. И не нужно мне говорить про не грамотность.
Вот вам для примера:
http://www.wmj.ru/special/nokia/page/main
http://www.wmj.ru/special/chudo/page/main

Сверстай таблицами, вместе поржем, над твоим кодом.

  Ответить  
 
 автор: Lelik   (26.08.2010 в 23:52)   письмо автору
 
   для: Usta   (26.08.2010 в 23:46)
 

пардон за вмешательство, мне кажется тема как верстать лучше вас очень задевает, Usta, так как вы не заметили слов:

Но ещё раз - лучшей будет та вёрстка, коя именно Вам даст желаемый результат.


там нет слов, про то, что лучше, таблицы или дивы...

  Ответить  
 
 автор: Usta   (27.08.2010 в 00:13)   письмо автору
 
   для: Lelik   (26.08.2010 в 23:52)
 

>Но ещё раз - лучшей будет та вёрстка, коя именно Вам даст желаемый результат.

C этим я согласен. Когда уж деваться некуда без таблиц, то да. Я в посте выше про это говорил. Я про то, что div-ы можно располагать как угодно и где угодно, легкость замены и применения к ним классов. Таблица же в этом уступает, разве не так? Тема у нас так и называется table мы div. Вот я и говорю что проще и легче использовать. Про скорость загрузки, так думать не о чем. У таблиц один минус, пока не загрузится закрывающий тег у таблицу (/table) содержимое этой таблицы не появится. И сама конструкция таблица в таблице и пошел и поехал. Это уже не серьезно.

  Ответить  
 
 автор: Lelik   (27.08.2010 в 00:24)   письмо автору
 
   для: Usta   (27.08.2010 в 00:13)
 

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

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

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

У таблиц один минус, пока не загрузится закрывающий тег у таблицу (/table) содержимое этой таблицы не появится
этот форум свёрстаный таблицами, у меня когда инет плохой был, таблицы по половине вырисовывались. может это бага браузера, но тем не менее...

  Ответить  
 
 автор: psychomc   (27.08.2010 в 00:03)   письмо автору
 
   для: Usta   (26.08.2010 в 23:46)
 

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

  Ответить  
 
 автор: deimand   (27.08.2010 в 00:22)   письмо автору
 
   для: Usta   (26.08.2010 в 23:46)
 

Давай вместе поржем на вот этим ))
document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_vlTryToLogin').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_vlTryToLogin'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_UserNameRequired').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_UserNameRequired'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_PasswordRequired').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_PasswordRequired'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_vlRegisterError').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_vlRegisterError'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqName').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqName'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqEmail').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqEmail'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valregEmail').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valregEmail'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqPassword').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valreqPassword'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valregPass').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valregPass'));
}

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valcstApprove').dispose = function() {
    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cSignup_valcstApprove'));
}

  Ответить  
 
 автор: Usta   (27.08.2010 в 00:35)   письмо автору
 
   для: deimand   (27.08.2010 в 00:22)
 

Давай вместе поржем на вот этим ))
Это уже вопрос к программкам asp.net, у нас строка: ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_vlTryToLogin
- генератор id для элемента, с помощью которого, к нему прикрепляются свойства, и в дальнейшем происходит обработка или отправка данных.
ctl00 - название мастера
emptyBodyPlaceHolde - расположение на странице
cphCentralColumn - место размещение по блокам
TryToLogin - фиг знает
cLogin -имя поля
>

document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_vlTryToLogin').dispose = function() {
>    Array.remove(Page_Validators, document.getElementById('ctl00_ctl00_emptyBodyPlaceHolder_cphCentralColumn_ctl01_cLogin_vlTryToLogin'));
>

  Ответить  
 
 автор: psychomc   (27.08.2010 в 10:15)   письмо автору
 
   для: deimand   (27.08.2010 в 00:22)
 

это печально...

  Ответить  
 
 автор: bishake   (28.08.2010 в 00:27)   письмо автору
 
   для: maxam   (26.08.2010 в 15:01)
 

Лично моё мнение такое: если Ваш сайт статичный или же обновляется путём изменения исходного HTML, то тут всё равно - хоть таблцы, хоть дивы - один пень.
Если же страницы сайта формируются на сервере по блокам, используя шаблонизатор или банальные инклуды файлов, то в данном случае блочная вёрстка гораздо предпочтительнее. Представьте, что блоки страницы хранятся в разных файлах. Какой вариант Вам понятнее?:
<div id='footer'>Hello, world!</div>

или
<tr><td colspan='3' rowspan='5'>Hello, world!</td></tr>

А если Вы добавите новую "ячейку", то Вам будет охота менять все эти colspan и rowspan во всех подгружаемых файлах? А если ошибётесь? А поменять местами колонки? Проблемка.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования