Как сверстать блоки разных размеров на всю ширину?

Как сверстать вот такую структуру: label может быть различной ширины, равной тексту, который находится внутри, а input должен занимать всю оставшуюся ширину блока?
https://yadi.sk/d/c1PgsZZ3fDYAF
  • Вопрос задан
  • 617 просмотров
Пригласить эксперта
Ответы на вопрос 5
madmages
@madmages
Человек прямоходящий
.row {
   display: block;
    width: 500px;
}
.row label {
    display: block;
    width: 40%;
    float: left;
}
.row input {
    display: block;
    width: 60%;
    float: left;
}
Ответ написан
а в чем собственно проблема?
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Label + Input</title>
<style>
.row {
	width: 600px;
	margin: 2px auto;
}
.row:after {
	content: "";
	display: block;
	clear: both;
}
.row .label {
	background: #f88;
	float: left;
}
.row .input {
	background: #8f8;
}
</style>
</head>
<body>
<div class="row">
	<div class="label" style="width:100px">label 1</div>
	<div class="input">input 1</div>
</div>
<div class="row">
	<div class="label" style="width:150px">label 2</div>
	<div class="input">input 2</div>
</div>
<div class="row">
	<div class="label" style="width:200px">label 3</div>
	<div class="input">input 3</div>
</div>
<div class="row">
	<div class="label">label 4</div>
	<div class="input">input 4</div>
</div>
</body>
</html>
Ответ написан
andykov
@andykov
Shit happens
Вот так

<div class="box">
    <label for="" style="width: 100px;">Label</label>
    <input type="text" value="input">
</div>
<div class="box">
    <label for="" style="width: 60px;">Label</label>
    <input type="text" value="input">
</div>

.box {
    width: 500px;
    margin-bottom: 10px;
    display: table;
}
label,
input{
    display: table-cell;
}
input {
    width: 100%;
    margin-left: 10px;
}
label {
    background-color: #ccc;
}
Ответ написан
Lynn
@Lynn
nginx, js, css
Пример десятилетней давности lynn.ru/examples/dl-table.html

Сейчас я бы сделал на flex-box или display: table
Ответ написан
Комментировать
kumaxim
@kumaxim
Web-программист
На чистом CSS не подскажу, но есть такой фреймворк - Twitter Bootstrap. В нем пример Horizontal form это именно то, что Вам нужно.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы