Семантика перечисления телегида.Разве это не стол?

StackOverflow https://stackoverflow.com/questions/626224

  •  06-07-2019
  •  | 
  •  

Вопрос

Мне нужно создать список телегидов на основе веб-сайта.

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

date       00:00   00:30   01:00   etc...
channel 1  show 1  show 2  show 3  etc...
channel 2  show 3  show 4  show 5  etc...

но, увы, это не та ситуация.В то время как <th> готовятся каждые 30 мин.продолжительность шоу может составлять от 5 минут.до нескольких часов.

Я могу жульничать и заставлять каждого <th> с colspan = 6, таким образом, вспомогательный блок будет равен 5 мин.а затем воспроизведите с colspan каждого шоу, чтобы оно было длительностью по времени / 5 (мин.), и это мой colspan.

Но (всегда есть "но"), теперь у меня есть не таблица с табличными данными, а что-то вроде таблицы-спагетти.

Что мне следует делать?

Это было полезно?

Решение 4

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

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

<ol>
    <li>date
        <ol>
            <li>00:00</li>
            <li>00:30</li>
            <li>01:00</li>
            <li>01:30</li>
            .
            .
            .
        </ol>
    </li>
    <li>Channel 1
        <ol>
            <li>Show 1</li>
            <li>Show 2</li>
            <li>Show 3</li>
            <li>Show 4</li>
            .
            .
            .
        </ol>
    </li>
    <li>Channel 2
    .
    .
    .
<ol>

Это не идеальное решение, но мы живем в несовершенном мире.

Другие советы

Это определенно не то, что вы должны решить с помощью < table >.

Используйте несколько < div > s, каждый из которых имеет встроенный или встроенный блок отображения в CSS. Установите их ширину, вероятно, лучше всего делать с помощью CSS-классов, например, следующим образом:

div.channel div
{
   display: inline-block;
}
div.five { width: 1em; }
div.ten { width: 2em; }
div.fifteen { width: 3em; }
...

Тогда HTML:

<div class="channel">
  <div class="five">Five minute program</div>
  <div class="fifteen">Fifteen minute program</div>
  <div class="five">Five minute program</div>
</div>
<div class="channel">
  <div class="ten">Ten minute program</div>
  <div class="fifteen">Fifteen minute program</div>
</div>

Вы просматривали существующие телегиды в поисках вдохновения?

Используется опция таблица с большим количеством значений colspans вот, например,.

Я думаю, что в основном есть два варианта.

  • Используйте таблицы и имейте colspans.У вас может быть только один "столбец" в течение конечного промежутка времени, поэтому вам, возможно, придется округлять до ближайшего, 5, 10 или 15 минут, в зависимости от количества ваших столбцов в час, а программа продолжительностью в один час может иметь диапазон 4, 6 или даже 12, как вы указываете в своем вопросе.
  • Используйте CSS с простыми DIVS (или вы могли бы даже сделать их ULS и LIS, UL для каждой строки и LI для каждого блока в этой строке, если вы действительно хотите) и укажите ширину каждого элемента отдельно.Вы могли бы сделать это в процентах (позволяя всей строке расширяться и сжиматься) или пикселях.Возможно, вы захотите поэкспериментировать с внутренними элементами, то есть по одному для каждой программы, представляющими собой либо плавающие блоки, либо встроенные блоки.С плавающими значениями должно быть все в порядке до тех пор, пока ошибка округления не приведет к их переносу.

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

Я думаю, вы показали, что ваши данные на самом деле не являются таблицей. Если вы знакомы с CSS, я бы посоветовал вам пойти по пути использования CSS и настройки правил таким образом.

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

Представленные вами данные действительно похожи на график или диаграмму сортов. Нет HTML-элемента, который соответствует этому. Я бы сказал, что настольный подход имеет смысл. Разделение таблицы на 1/6 также имеет смысл. Это ограничение среды, что у вас не может быть colspan 1.125. Поскольку эта таблица будет сгенерирована программно, я не думаю, что разделение каждой логической ячейки на 6 физических ячеек будет серьезной проблемой. Просто протестируйте образец в любых нестандартных браузерах, например, для чтения с экрана.

Телепрограммы?Это список...

Ну, на самом деле, есть несколько серьезных разногласий по этому поводу:

Так что решайте, что вам больше нравится, и делайте свой выбор...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top