2015-03-03 2 views
1

У меня есть простой код для визуализации вывод запросов БД, где секции текстов отделены друг от друга линиями:Масштаб элемента относительно другого элемента

____________________ 
<p> Title1 <p> 
<span>blablablablablablablabla</span> 
____________________ 
<p> Title2 <p> 
<span>blablablablablablablablablablablablablablablabla</span> 

Как я могу адаптировать автоматически длину этих линий так что они будут до тех пор, как самой длинной строки на странице, как это:

________________________________________________ 
Title1 
blablablablablablablabla 
________________________________________________ 
Title2 
blablablablablablablablablablablablablablablabla 
+2

"Линии"? Как в строке подчеркиваний? Egads. Почему CSS не ограничивает? – isherwood

+0

Я предполагаю, что он использует


Codeek

+0

@isherwood До сих пор я делал эти строки с подчеркиваниями. Но я предполагаю, что мне понадобится что-то еще для достижения того, что мне нужно. – user3241376

ответ

7

Рассмотрим изменение разметки испуская <dl> вместо этого. Затем вы можете просто добавить верхнюю границу в заглавные записи вместо того, чтобы использовать кучу символов подчеркивания. Если вы примените display: inline-block к самому <dl>, он обрушится на ширину самого широкого элемента.

dl { 
 
    display: inline-block; 
 
} 
 
dt { 
 
    border-top: 1px solid #000; 
 
    font-weight:bold; 
 
} 
 
dd { 
 
    margin: 0; 
 
}
<dl> 
 
    <dt>Title1</dt> 
 
    <dd>blablablablablablablabla</dd> 
 
    <dt>Title2</dt> 
 
    <dd>blablablablablablablablablablablablablablablabla</dd> 
 
</dl>

Примечания: Я предложил <dl>, потому что это казалось лучше семантическим, пригодной для ваших данных (фиктивных). Тем не менее, вы могли бы, конечно, обернуть абзацы так:

.wrapper { 
 
    display: inline-block;   
 
} 
 
.wrapper p { 
 
    border-top: 1px solid #000; 
 
}
<div class="wrapper"> 
 
    <p>Title1<br>blablablablablablablabla</p> 
 
    <p>Title2<br>blablablablablablablablablablablablablablablabla</p> 
 
</dl>

+1

Как я не знал об этом элементе раньше. +1 тому человеку (или женщине!). –

+1

Очень круто! Именно то, что мне было нужно, большое вам спасибо :) – user3241376

0

Еще одна альтернатива ...

section { 
 
    display: inline-block; 
 
} 
 
section > div { 
 
    border-top: 2px solid orange; 
 
    display: block; 
 
} 
 
p { 
 
    font-weight: bold; 
 
}
<section> 
 
    <div> 
 
     <p>Title1</p> 
 
     <span>blablablablablablablabla</span> 
 
    </div> 
 

 
    <div> 
 
     <p>Title2</p>      
 
     <span>blablablablablablablablablablablablablablablabla</span> 
 
    </div> 
 
</section>

+0

Он хочет, чтобы длина текста. Это не даст желаемого результата. –

+0

Вы правы. Забыл кое-что. Обновлено. – isherwood

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