В настоящее время я работаю над веб-сайтом, который является рекламным порталом для бизнеса. Рекламодатели могут создать учетную запись, выбрать различные варианты включения в список (штат, уход и т. д.) И загрузить графику, измеряемую в единицах, кратных единице. «Единица» - это изображение или флэш-файл шириной 180px и высотой 120. Рекламодатель может выбрать несколько горизонтальных или вертикальных блоков, т. Е. 2 отдельных блока, выровненных по горизонтали, или 2 отдельных блока, выровненных по вертикали.
Я дошел до того, что сайт работает нормально. Я застрял в точке, я собираюсь выложить «единицы» и отобразить их правильно, без пустого пространства между ними. В качестве примера, если бы у нас было 4 рекламных объявления, горизонтальное объявление с двумя блоками, вертикальное с двумя блоками и два объявления с одним блоком, например:
|
|
2 unit ad | 2
------------------| unit
| | ad
1 unit | 1 unit |
| |
| |
В настоящее время я храню рекламные блоки в базе данных с атрибутами, которые используются в веб-форме для создания таблицы (например, colspan, rowspan и т. д.). Я не уверен, что это правильный подход, боюсь, что это не так. Буду очень признателен, если получу совет.
Спасибо, Инди





Вы искали какие-нибудь элементы управления TreeMap? Большинство из них будут коммерческими, но могут быть и предложения с открытым исходным кодом.
Итак, проблема в том, что у вас есть пустое пространство между единицами? Включает ли ваша таблица cellspacing = "0" и cellpadding = "0"?
т.е.
<table cellspacing = "0" cellpadding = "0">
Не уверен, как вы храните единицы с атрибутами. Разделение данных и описания интерфейса может означать, что у вас будет больше гибкости и способности справляться с запросами на изменение пользовательского интерфейса. Если атрибуты одинаковы для каждого типа блока, вероятно, хранится много дублированных данных.
Это сложный вопрос. Если вы хотите использовать div и css, вы можете попробовать перемещать рекламу. Единственная проблема заключается в том, что вы не можете отображать div в произвольном порядке, поскольку они не всегда будут пытаться занять доступное место. То же самое было бы, если бы вы использовали таблицы.
<html>
<head>
<style>
div.adcontainer {
margin: 0px; width: 540px;
}
div.ad {
float: right; margin: 0; padding: 0; width: 180px;
height: 120px; background: #DDD;
}
div.adhorz {
width: 360px; height: 120px;
}
div.advert {
width: 180px; height: 240px;
}
</style>
</head>
<body>
<div class = "adcontainer">
<div class = "ad advert">ad v</div>
<div class = "ad adhorz">ad h</div>
<div class = "ad">ad 1</div>
<div class = "ad">ad 2</div>
</div>
</body>
</html>
Таблицы IMHO идеально подходят для этой работы, потому что объявления имеют одинаковое поведение rowspan-is и colspan-ish. Если у вас есть метод создания правильной таблицы, придерживайтесь его.
Также, когда я создаю HTML-таблицу для макета, и мне не нужны пробелы между ячейками, я включаю атрибуты cellspacing = "0" и cellpadding = "0", как упомянула Лия.
<table cellspacing = "0" cellpadding = "0" border = "0">
Уловка за дополнительным столом:
Чтобы получить однопиксельную границу между ячейками таблицы HTML, используйте
table
{
border-collapse: collapse;
}
CSS свойство.