Как сделать подобные поля в html? Нужно, чтобы линии занимали все пространство до правого края страницы.
.list {
font-family: monospace;
}
.list-row {
/* Ненужное свойство */
display: block;
/* Чтобы учитывалась высота .list-row-title */
overflow: auto;
}
.list-row-title {
/* Распологает заголовок слева, чтобы расположить div'ы рядом */
float: left;
/* Отступ полосы от заголовка */
margin-right: 0.5em;
}
.list-row-field {
/* Занять всё оставшееся пространство */
overflow: auto;
/* Высота размеров со строку */
height: 1.2em;
/* Снизу граница, напоминающая подчёркивание */
border-bottom: 1px solid black;
color: grey;
}
<div class="list">
<div class="list-row">
<div class="list-row-title">Ф.И.О. пациента</div>
<div class="list-row-field"></div>
</div>
<div class="list-row">
<div class="list-row-title">Возраст</div>
<div class="list-row-field"></div>
</div>
<div class="list-row">
<div class="list-row-title">Ф.И.О. личного врача</div>
<div class="list-row-field">Иванчук И.И.</div>
</div>
</div>
Например:
ul {
list-style-type: none;
padding: 0;
margin: 0;
}
li {
overflow: hidden;
}
span {
display: inline-block;
position: relative;
padding-right: 15px;
font-family: monospace;
}
span:after {
content: '';
position: absolute;
left: 100%;
right: -9999px;
bottom: 0;
height: 1px;
background: #000;
}
<ul>
<li>
<span>Ф.И.О. пациента</span>
</li>
<li>
<span>Возраст</span>
</li>
<li>
<span>Ф.И.О. лечащего врача</span>
</li>
</ul>
У каждой ли сделать border-bottom
к примеру , а текст внутри , допустим span
опустить чуть ниже и дать белый фон , что бы он закрыл часть текста . Добавил пример , цвет фона берете и все.
Пример на JSFDD
ul {
width:300px ;
margin:0;
padding:0;
list-style:none;
}
li {
margin-bottom: 10px;
width: 100%;
display: block;
border-bottom: 1px solid #000;
}
span {
background: #fff;
display: inline-block;
padding:2px 5px;
margin-bottom: -5px;
}
Идея состоит в следующем: у вас есть строка, состоящая из двух частей: свойства и его значения. Помимо этого, есть линия, заполняющая свободное пространство.
Чтобы разнести свойство и значение по разным углам, можно использовать тип отображения display: flex
с настройкой выравнивания justify-content: space-between;
.
Самый простой способ организовать нужную вам линию: пустить ее на всю ширину блока и чем-то перекрыть.
Поскольку линия должна начинаться от свойства, ему можно задать подходящий цвет фона и небольшой отступ. Тогда линию можно будет спозиционировать абсолютно относительно блока и с помощью z-index
поместить под свойство.
При этом точно такие же отступы можно задать значению, чтобы выровнять его по высоте со свойством. Вот только фон ему задавать не нужно, чтобы значение оказалось как бы на этой самой упомянутой линии.
Чтобы многострочные свойства не ломали верстку, можно заранее позаботиться об этом, ограничив максимальную ширину свойства и значения, а также запретив перенос слов с помощью white-space: nowrap
. Не влезающие слова можно спрятать с помощью overflow: hidden
, а чтобы это выглядело получше, можно добавить многоточие с помощью css-свойства text-overflow: ellipsis
.
body {
padding-right: 80px;
}
.line {
font-family: monospace;
display: flex;
justify-content: space-between;
position: relative;
}
.line::before {
background-color: #ccc;
content: '';
display: block;
position: absolute;
left: 0;
right: 5px;
bottom: 5px;
z-index: 1;
height: 1px;
}
.property,
.value {
padding: 5px;
max-width: 48%;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
position: relative;
z-index: 2;
}
.property {
background-color: #fff;
}
.value {
color: #bada55;
}
<div class="line">
<div class="property">Ф.И.О. лечащего врача</div>
<div class="value">Сидоров А.И.</div>
</div>
<div class="line">
<div class="property">Ф.И.О. пациента</div>
<div class="value">Протуберанцевич Д.М.</div>
</div>
<div class="line">
<div class="property">Какое-то очень длинное длинное название свойство, не влезающее в блок</div>
<div class="value">Значение</div>
</div>
Можно применить здесь flexbox. И нужно никаких переполнений (overflow
), перекрытия блоков и абсолютного позиционирования.
.list {
font-family: monospace;
}
.list-row {
display: flex;
/* расположить элементы по линий шрифта */
/* будет полезно если захотите разные размеры шрифта для левой и правой частей */
align-items: baseline;
}
.list-row-title {
/* небольшой отступ, чтобы строки были равной высоты */
padding-bottom: 3px;
}
.list-row-field:before {
/* неразрывный пробел чтобы блок имел верную высоту */
content:"\00a0";
}
.list-row-field {
margin-left: 10px;
/* занять всё оставшееся пространство */
flex: 1;
/* снизу граница, напоминающая подчёркивание */
border-bottom: 1px solid black;
/* если хотите расположить текст справа */
text-align: right;
}
<div class="list">
<div class="list-row">
<div class="list-row-title">Ф.И.О. пациента</div>
<div class="list-row-field"></div>
</div>
<div class="list-row">
<div class="list-row-title">Возраст</div>
<div class="list-row-field"></div>
</div>
<div class="list-row">
<div class="list-row-title">Ф.И.О. личного врача</div>
<div class="list-row-field">Петров</div>
</div>
</div>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Всем доброго дня! Хочу реализовать круглый прогресс бар, отображающий числа(минуты) от 10 до 60Вот код: https://jsfiddle
На сайте, для написание записей используется WYSIWYG редактор summernoteПроблема в том, что если скопировать текст из браузера и вставить в редактор...
Всем привет, делаю мобильный сайт, подскажите как сделать через jquery подгрузку контента как на мобильном (зажимаем пальцем экран и проводим...