Хорошо, на основании ответа @b_benjamin на комментарий выше, я думаю, что у меня может быть одно возможное решение, но я также думаю, что он будет полагаться на некоторый CSS, который может плохо воспроизводиться в старых браузерах, но это простая концепция, которая может вероятно, можно настроить с помощью других трюков.
Это, похоже, работает в последних версиях FF, Chrome и IE9.
Во-первых, HTML:
<div style="width:340px;">
<!-- a list of text, with some time's marked up -->
<ul class="sched">
<li><b>17:55</b><b>18:10</b> <a href="#">Lorem ipsum dolor</a> sit posuere.</li>
<li><b>18:20</b><b>18:30</b> <a href="#">Lorem ipsum dolor</a> sit amet orci aliquam.</li>
<li><b>18:20</b><b>18:30</b> <a href="#">Class aptent</a> taciti sociosqu ad sed ad.</li>
<li><b>19:05</b><b>19:17</b> <a href="#">Mauris et urna et</a> ante suscipit ultrices sed.</li>
<li><b>19:05</b><b>19:17</b> <a href="#">Proin vulputate pharetra tempus.</a> Quisque euismod tortor eget sapien blandit ac vehicula metus metus.</li>
</ul>
</div>
Теперь некоторые CSS: (я использовал простую цветовую схему, основанную на образце фото b_benjamin в)
/* reset default list styles */
.sched, .sched li{
list-style:none;
font-size:14px;
padding:0;
margin:0;
}
.sched li{
position:relative;
padding:0 10px;
margin:10px 0;
background:#631015;
color:#FFF;
}
.sched b{
position:relative;
left:-10px;
display:inline-block;
padding:2px 10px;
font-weight:none;
background:#FFF;
color:#666;
}
/* some light styling for effect */
body{
background:#cc222c;
}
.sched li a{
color:#FF9;
}
Объяснение:
box model r эквивалент некоторого мыслительного процесса о том, как достичь заполнения на встроенных элементах (текст). Одна вещь, которую вы можете сделать, - просто наложить на всю коробку.
В моей концепции я использовал список UL, и каждый элемент LI является контейнером. Я использовал отступы 10px на контейнере.
.sched li{
padding:0 10px;
}
Это даст нам наше дополнение, но это приведет к тому, что наши элементы времени также будут иметь это дополнение. Мой «трюк», чтобы «исправить» это, используя отрицательное относительное положение, равное отступов:
.sched b{
display:inline-block; /* make these items act like block level elements */
position:relative; /* give the b elements a relative position*/
left:-10px; /* offset them equal to the padding */
}
Там одна последняя вещь, чтобы сделать, и это, чтобы убедиться, что родительский элемент также является позиция: относительная так ребенка элемент будет использовать его размеры:
.sched li{
position:relative; /* needed for B elements to be offset properly */
padding:0 10px;
}
Вот отрезок от того, как он выглядит на Chrome.
Вы можете, конечно, играть с набивкой. Вероятно, есть также некоторые решения, чтобы элементы «B» плавали, но это, казалось, работало хорошо.
Я надеюсь, что это поможет!
Что не так в примере-3? Разве это не то, что вы хотели, чтобы ваши элементы выглядели? – srijan
Не совсем. Если вы установите поле box-1, box-2 border равным 0, текстовое поле проскальзывает рядом с ними без padding-left. Но мне нужно немного заполнить обе стороны текста. –
@b_benjamin Мне сложно понять, какой конечный результат вы ищете. Вы просто пытаетесь создать таблицу без использования элемента таблицы? Или вы просто хотите поместить простыни/желобы вокруг левой/правой стороны элементов, но вы в порядке с оберткой текста под этими элементами (вы не пытаетесь создать столбцы). Можно ли получить jpeg того, что вы ищете? – jmbertucci