Проблема размещения строк текста рядом с большим текстовым блоком - PullRequest
0 голосов
/ 20 августа 2009

Я пытаюсь расположить две строки текста рядом с одним словом, например «Понедельник», используя только HTML и CSS, как показано на скриншоте ниже.

alt text

В конечном продукте две строки, которые в настоящее время говорят «привет» и «бла», будут заменены небольшим количеством полей для ввода текста и текста. Версия скриншота была выполнена со следующим кодом:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style type="text/css">
<!--
body {
    font:12pt Arial, Helvetica, sans-serif;
}
dl, dd, dt {
    margin:0px;
    padding:0px;
}
dl {
    clear:both;
}
dt {
    float:left;
    font-size:2.75em;
    color:#ccc;
    letter-spacing:-7px;
    margin-right:10px;
}
-->
</style>
</head>

<body>
<dl>
    <dt>MONDAY</dt>
    <dd>hi</dd>
    <dd>blah</dd>
</dl>

<dl>
    <dt>WEDNESDAY</dt>
    <dd>hi</dd>
    <dd>blah</dd>
</dl>
</body>
</html>

Мне бы хотелось, чтобы все было хорошо выровнено по вертикали ... т.е. верхняя часть верхней строки выровнена по верху слова "понедельник", а нижняя нижняя строка - по нижней части слово "понедельник" Я не думаю, что использование списков определений будет очень универсальным или правильным способом выполнения этого взгляда. Любые предложения о том, как это сделать? Я бы предпочел держаться подальше от изображений, чтобы все выглядело хорошо, если бы кто-то увеличивал масштаб страницы ... но выбросил все свои мысли туда. Спасибо.

Ответы [ 2 ]

1 голос
/ 20 августа 2009

Я пришел к следующему решению (дайте мне знать, что вы об этом думаете):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<link href="reset.css" rel="stylesheet" type="text/css" />
<style type="text/css">
<!--
body {
    font:12pt Arial, Helvetica, sans-serif;
}
.container {
    position:relative;
}
.day {
    font-size:2.75em;
    color:#ccc;
    letter-spacing:-7px;
    margin-right:15px;
}
.line1 {
    position:absolute;
    top:0px;
    margin-top:5px;
}
.line2 {
    position:absolute;
    bottom:0px;
    margin-bottom:7px;
}

-->
</style>
</head>

<body>
<div class="container">
<span class="day">MONDAY</span>
<span class="line1">hi</span>
<span class="line2">blah</span>
</div>
</body>
</html>

Я все еще хотел бы увидеть другие идеи, так что, если у вас есть, пожалуйста, опубликуйте их. Спасибо.

1 голос
/ 20 августа 2009

Вы хотите что-то в соответствии с тем, что у меня здесь. Вам придется экспериментировать для совершенствования пикселей. Причина, по которой я не использую список определений, заключается в том, что вы не можете манипулировать обоими определениями как блоком, на что это основывается. Ключевым элементом здесь является установка высоты строки вручную. Точная разметка здесь не важна, но это можно сделать одним из способов.

<h2>MONDAY</h2>
<ul>
    <li>hi</li>
    <li>blah</li>
</ul>

* {
    margin: 0;
    padding: 0;
}
body {
    padding: 100px 0 0 100px;
}
h2 {
    font: 40px sans;
    width: 200px;
    line-height: 36px;
    float: left;
}
ul {
    height: 40px;
    float: left;
    list-style-type: none;
    margin-top: -2px;
}
li {
    font: 16px sans;
    line-height: 16px;
    margin-top: 2px;
}

(Еще одним полезным свойством может быть вертикальное выравнивание , которое можно использовать для позиционирования текста в текстовой строке, а не для сокращения текстовой строки до размера текста.

Также обратите внимание, что физический текст будет выглядеть меньше, чем установленная вами высота текста, потому что вам нужно учитывать спусковые элементы - части букв, которые идут ниже текстовой строки, такие как строчные буквы g, p, y и т. Д. Вот почему вам нужно играть с точным количеством пикселей, если вы измените размер текста. В зависимости от шрифта также может быть разный - вам нужен хорошо поддерживаемый кроссплатформенный, чтобы получить хорошие результаты на всех платформах.)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...