Как вставить динамический текст в div с абсолютной позицией?
Взгляните на http://www.barelyfitz.com/screencast/html-training/css/positioning / пункт 6. Он гласит:
Это не является жизнеспособным решением для большинства проектов, потому что мы обычно не знаем, сколько текста будет в элементах, или точные размеры шрифта, которые будут использоваться.
Какой обходной путь мне нужно использовать, чтобы вставить динамический текст в div с абсолютной позицией?
Приветствуется любой подход
С уважением,
4 ответов:
Если ваша основная цель-сохранить div на своем месте, не меняя его высоту или ширину в зависимости от объема текста, я бы выбрал:
Другой вариант-уменьшить размер текста, чтобы он поместился в div, но это требует определенной нечеткой математики, и вы рискуете, что текст будет настолько крошечным, что это бессмысленно.div { overflow: scroll; }Если вы хотите, чтобы div изменял свою высоту на основе текста, это также включает некоторую нечеткую математику, но в основном вы получите длину текст:
var sometext = "Hey, I'm some text!"; var textlength = sometext.length();И сделайте изменение высоты по отношению к этой длине. Вы бы хотели поиграть с числами, но это выглядело бы примерно так:
var div_height = 10 * textlength; $("div").css("height,"+ div_height +"em");
Смотрите раздел визуальных эффектов с сайта W3C здесь
Возможно использование "overflow: auto" для динамического текстового контейнера div.So высота-это не проблема.
Проблема не в том, чтобы поместить динамический текст в абсолютно позиционированный div-div будет расширяться, чтобы соответствовать любому тексту, находящемуся там. В вашем примере нет высот, определенных на красном и зеленом дивах.
Абсолютно позиционированные дивы выводятся из потока документа, поэтому все, что появляется после них в html, будет действовать так, как будто их там вообще нет.
Конструкции, использующие абсолютно позиционированные дивы, должны иметь высоту, определенную на содержащем диве, так что абсолютно позиционированные дивы не перекрывают другой контент. В вашем примере
Таким образом, если у вас есть абсолютно позиционированный div в боковой панели, после которого ничего нет, вы можете добавить весь динамический текст, который хотите. Если у вас есть один в заголовке, это сделает ваш дизайн очень сложным для реализации.<div id="div-1">имеет определенную высоту 250px. Измените его на 100px, и вы увидите<div id="div-after">перемещение под красными и зелеными дивами.
Comments