Уважаемые посетители портала Kamensk.NET! Напоминаем вам, что будучи зарегистрированным пользователем вы получаете возможность оставлять комментарии к новостям на сайте и к топикам на форуме, иметь доступ к скрытым разделам и много других благ и привелегий. Пожалуйста заполните регистрационную форму, это отнимет у вас всего лишь несколько минут вашего времени.

Табличная верстка шаблонов VS Div'ы: что лучше?

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

Вообщем, такой вот вопрос. Вопрос не с проста, так как я уже запарился переделывать стили, чтобы мой шаблон одинаково отображался как в IE, так в Firefox, Opera и браузерах на WebKit. Изначально шаблон был только на div'ах. Сделаю под IE (на работе есть возможность потестить на IE8), - в огнелисе просто тихий ужас. Сделаю под Firefox, то в опере чего-нибудь уедет не туда, то в IE. Epiphany пока держится молодцом, в смысле, стабильно косячит, но не так сильно. Big smile

Сейчас твёрдо решил переделать часть шаблона таблицами, но в этих ваших интернетах пишут, что верстать табличные шаблоны, дескать моветон и нормальные пацаны верстают в дивах. Опять же готовые шаблоны к популярным CMS типа Drupal или Joomla тоже сплошь и рядом на дивах. Правда в этих шаблонах как минимум два набора стиля, порою и три. Что не так-то? Откуда такая дискриминация таблиц? Может есть стандарт какой, не рекомендующий табличную верстку, а я об этом не знаю?

Протянув руку помощи, не забудь разжать кулак.

Ch
Ch аватар
User offline. Last seen 13 недель 1 день ago. Не в сети
Зарегистрирован: 24.04.2010
Сообщения:

Цитата:

Откуда такая дискриминация таблиц?

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

P.S. Есть вещи, которые на дивах без шаманских танцев с бубнами не сделаешь.

http://dev.by/blog/7824

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

Ch пишет:
Цитата:

Откуда такая дискриминация таблиц?

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

P.S. Есть вещи, которые на дивах без шаманских танцев с бубнами не сделаешь.

http://dev.by/blog/7824

Ну вот же:

Цитата:

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

Наличие у таблиц атрибутов делает гораздо более лёгким и процесс освоения вёрстки, ведь в случае div'ов разработчику приходится использовать атрибут стиля или внешнюю таблицу стилей. Кроме того таблицы не разрываются слишком широким контентом, и колонки не плющатся своими же соседями, как может происходить при div вёрстке. Всё это даёт ощущение безопасности и надёжности.

Протянув руку помощи, не забудь разжать кулак.

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

Ещё есть большое желание не использовать дополнительные наборы стилей для IE...

Протянув руку помощи, не забудь разжать кулак.

Real Alex
Real Alex аватар
User offline. Last seen 35 недель 18 часов ago. Не в сети
Зарегистрирован: 06.02.2006
Сообщения:

Для основного каркаса страницы - только таблицы!
Остальное - понты!

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

Нафига это все если есть нормальный тег - table!

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

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

У меня проблема в неожиданном месте вскрылась - браузер Firefox упорно не хочет отображать стиль background для тега table. Сначала думал, что какой-либо из div'ов перекрывает, - всё заккоментил, один хрен! В IE всё нормально, в других браузерах не проверял пока сделал так:

	    <?php if ($logo || $site_name || $site_slogan) { ?>
	    ">
		<?php if ($logo): ?>
		    
			" title="<?php print t('Home') ?>">
			" alt="<?php print t('Home') ?>" />
			
		    
		<?php endif; ?>
		<?php if ($site_name): ?>
		    
		    
			<?php print $site_name; ?>
		    
		    
		<?php endif; ?>
		<?php if ($site_slogan): ?>
		    
			
			    <?php print $site_slogan; ?>
			
		    
		<?php endif; ?>
	    
	    <?php } ?> 

Участок CSS кода:

/* -----Begin Header wrapper----- */

/*
    #main-top div {
	padding: 0;
	margin: 0;
	border: 0;
    }

*/

/*
    div#header-region {
	//width: 100%;
	float: left;
	text-align: left;
	margin: 0;
	padding: 0;
	background: #ff0;
    }
*/

    table#logo-region {
	margin: 0;
	padding: 0;
	width: 100%;
	height: 163px;
	background-image: url(../images/header-bg.jpg) no-repeat 0 right;
	border-bottom: 1px solid #000;
    }


    td.logo {
	width: 163px;
	border: 0;
}
    .logo img {
	background-color: #3030ff;
    }

    td.site-name {
	border: 0;
	text-align: left;
	color: #ff3030;
    }
    .site-name h1 {
/*	background-color: #3030ff; */
	font-size: 54px;
/*	font-weight: bold; */
	line-height: 54px;
	text-decoration: none;
    }

    td.site-slogan {
	text-align: right;
	vertical-align: bottom;
	border: 0;
	padding-right: 30px;
	padding-bottom: 15px;
    }

    .site-slogan span {
	padding: 0;
	margin: 0;
/*	background-color: #3030ff; */
	font-size: 14px;
	font-weight: bold;
	color: #fff;
    }


/* -----End Header wrapper----- */

Меня вот что интересует, это действительно косяк FF или у меня руки нуждаются в доводке напильником?

Протянув руку помощи, не забудь разжать кулак.

Real Alex
Real Alex аватар
User offline. Last seen 35 недель 18 часов ago. Не в сети
Зарегистрирован: 06.02.2006
Сообщения:

Насколько я знаю, у тега table стили типа background не работают. По крайней мере в режиме strict (соответствие стандартам) работать не должно.

В твоем случае можно заключить table в блок:

<div id="logo-region-box">
<table id="logo-region">.....</table>
</div>

и стиль применить к DIV.

Или если это возможно прописать стили непосредственно у ячеек

#logo-region td {
background: ........;
}

или у строк TR

#logo-region tr {
background: ........;
}

Если строка у таблицы одна то это как раз будет соответствовать всей таблице.
Но только проверь в разных браузерах, я помню что когда-то где-то background у TR не отображался и после этого я стараюсь стили для TR не прописывать Smile Хотя может глюк просто был

Real Alex
Real Alex аватар
User offline. Last seen 35 недель 18 часов ago. Не в сети
Зарегистрирован: 06.02.2006
Сообщения:

Еще, теоретически возможно (не проверял!) попробовать добавить тег TBODY т.е. сделать так:

<table id="logo-region">
<tbody>
.....
</tbody>
</table>

соотв. стиль будет:

#logo-region tbody {
	background-image: url(../images/header-bg.jpg) no-repeat 0 right;
}

Real Alex
Real Alex аватар
User offline. Last seen 35 недель 18 часов ago. Не в сети
Зарегистрирован: 06.02.2006
Сообщения:

P.S. опять какие-то глюки с форматами ввода, друпал вырезает html теги внутри code
Теперь посмотрел твой код через админскую опцию "изменить комментарий". вобщем пробуй вариант с TBODY

по пхп коду: так как шаблон будет сделан конкретно под наш сайт лучше вообще убрать лишние проверки if

<?php
	echo '
		<table id="logo-region" background="'.$base_path . $directory . '/images/header-bg.jpg"><tbody><tr>
			<td class="logo">
				<a href="'.$base_path.'" title="'.t('Home').'"><img src="'.$logo.'" alt="'.t('Home').'" /></a>
			</td>
			<td class="site-name">
				<h1>'.$site_name.'</h1>
			</td>
			<td class="site-slogan">
				<span>'.$site_slogan.'</span>
			</td>
		</tr></tbody></table>';
?>

Это тот же самый код в одну строку и без IF

Нужно ускорять работу сайта
Излишняя универсальность ни к чему!

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

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

Протянув руку помощи, не забудь разжать кулак.

Ne01eX
Ne01eX аватар
User offline. Last seen 6 дней 20 часов ago. Не в сети
Зарегистрирован: 12.02.2006
Сообщения:

Понял в чём косяк - в браузерах Opera, Konqueror и Firefox не работают смешанные атрибуты (машинные и человеческие) для свойства background для тегов div и table. То есть надо или:

background-image: url(../images/header-bg.jpg) no-repeat 0 0;

или:

background-image: url(../images/header-bg.jpg) no-repeat top right;

Это не касается браузеров Epiphany и IE. Здесь винегрет проканывает. Smile

Ещё заметил, что Firefox считает размеры таблиц с бордюром, тогда как все остальные нет. В принципе можно обернуть таблицу в дополнительный div, как посоветовал Real Alex, но это разве не хак? может лучше разработчикам FF написать?

Протянув руку помощи, не забудь разжать кулак.