2013-08-19 3 views
2

У меня есть div с двумя плавающими элементами внутри него. Я хочу, чтобы у элементов была линия между ними с границей 1px. Содержимое одного из div является постоянным по высоте и другой переменной по высоте. Это первая строка (число 10, 20, 30 и т. Д.), А второй div может содержать одну, две, три строки (текст, проходящий по линиям).Ребенок не принимает родительскую высоту div

Я играл с этим для возраст и не может заставить его работать

.tablecol1{ 
    display:inline; 
    width:17%; 
    float:left;*/ 
    max-width: 40px; 
    font-size:14pt; 
    word-wrap: break-word 
    background-color:#ffffff; 
    padding-left:1%; 
    } 
.tablecol2{ 
    display:inline; 

    width:80%; 
    float:left; 
    font-size:11pt; 
    word-wrap: break-word; 
    border-left:1px solid #000000; 
      padding-left:1%; 
    } 
.rowHolder{ 
    overflow:hidden; 
/* width:100%;*/ 
    border-top:solid 1px #000000; 
    font-size:11pt; 
    word-wrap: break-word; 
    background-color:#fccfff; 
    position:relative; 
} 
.cleaner { 
    clear:both; 
    height:1px; 
    font-size:1px; 
    border:none; 
    margin:0; padding:0; 
    background:transparent; 
} 

дивы являются

<div class="rowHolder"> 
    <div class="tablecol1"> 
     <span class="bigtime">09</span> <span class="smalltime">00</span> 
    </div> 
    <div class="tablecol2"></div> 
    <div class="cleaner"></div> 
</div> 
<div class="rowHolder"> 
    <div class="tablecol1"> 
     <span class="bigtime">10</span> <span class="smalltime">00</span> 
    </div> 
    <div class="tablecol2"> 
     <div class="appointment" style="background-color:#fab88e"> 
      10:03 | Sight test | Alan Orr | BB could be the code or comment added 
     </div> 
     <div class="appointment" style="background-color:#fab88e"> 
      10:30 | Walk in | John Smith | NP or something about reported sore red eye 
     </div> 
    </div> 
    <div class="cleaner"></div> 
</div> 
+0

Можете ли вы опубликовать jsFiddle? Как дочерние divs наследуют высоту, когда высота родителя не установлена? – Pattle

+0

вам не хватает закрывающего тега div. Предполагается, что «чистейший» div должен находиться внутри div «tablecol2»? – Paddyd

+0

Где именно вы хотите пограничные линии? слева от «col» или слева от «ячеек»? – Justin

ответ

0

Это будет решить вашу проблему:.

.tablecol2{ 
    min-height: 21px; 
    ... 

Поскольку .tablecol2 равно float: left, он не может наследовать высоту родительского div.
Этот код задает минимальную высоту, поэтому линия разделителя будет всегда отображаться.

Вот пример:
http://jsfiddle.net/vRAPd/

+0

Привет, благодаря этому он работает нормально. Высота линии должна была немного корректироваться, но когда я вставляю код в живую – user1616338

+0

Nice! Не забудьте принять ответ, если он вам помог ... –

0

Это не даст Роу высоту, что вы спрашивали об этом, но я считаю, что это действительно дает вам окончательный результат, который вы искали.

добавление:

margin-right: -1px; 
border-right: 1px solid black; 

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

минорной ноте: вы пропали без вести с запятой здесь: word-wrap: break-word в .tablecol1

Fiddle

CSS

.tablecol1 { 
    display: inline; 
    width: 17%; 
    float: left; 
    font-size: 14pt; 
    word-wrap: break-word; 
    background-color: #fff; 
    padding-left: 1%; 
    margin-right: -1px; 
    border-right: 1px solid black; 
} 
.tablecol2 { 
    display: inline; 
    width: 80%; 
    float: left; 
    font-size: 11pt; 
    word-wrap: break-word; 
    border-left: 1px solid #000000; 
    padding-left: 1%; 
} 
.rowHolder { 
    overflow:hidden; 
    border-top:solid 1px #000000; 
    font-size:11pt; 
    word-wrap: break-word; 
    background-color:#fccfff; 
    position:relative; 
} 
.cleaner { 
    clear:both; 
    height:1px; 
    font-size:1px; 
    border:none; 
    margin:0; 
    padding:0; 
    background:transparent; 
} 
+0

Привет, спасибо. Я уже пробовал аналогичную вещь, но я не мог заставить две вещи выстраиваться точно. Это зависело от того, какой браузер я использовал. Хотя такого рода работы это немного выдумка, и я не думаю, что это действительно решение. – user1616338

+0

Не могли бы вы уточнить? он работает в сафари, хром и firefox.Еще не пробовал в этом другом браузере. – dc5

+0

если был FF 23.0.1 Я попробовал его. Когда вы увеличиваете масштаб, линии не выровнены. При небольшом разрешении он не появлялся. Я попробую еще раз, чтобы проверить, что у меня нет какой-то опечатки. – user1616338

Смежные вопросы