Центрирование текста по вертикали по мере его роста в дочернем классе

У меня есть родительский контейнер (например, всплывающее окно), в котором у меня есть дочерний элемент, прикрепленный к родительскому контейнеру. Детский элемент - это div, который имеет некоторый текст. Я хочу центрировать текст внутри div, чтобы текст оставался центрированным в дочернем div, но текст должен выравниваться по вертикали, когда он растет за пределами 3-4 строк. Я могу выравнивать текст по вертикали, когда он растет, но когда он по-прежнему является небольшим текстом, он должен быть вертикально по центру, чего не происходит. Я пробовал много свойств CSS в дочернем классе. Любая помощь будет хорошей.

.parentclass {
  position: absolute;
  top: 110px;
 left: 165px;
 width: 470px;
 height: 260px;
 text-align: center;
 background-image: url(../images/Notification_BG.png); }

.childclass {
 position: relative;
 position: inherit;
 width: 430px;
 height: 192px;
 left: 50%;
 top: 50%;
 margin-left: -215px;
 margin-top: -96px; /* Negative half of height. */
 text-align: center;
 text-overflow: -o-ellipsis-lastline;
 border: 1px solid blue;
 font-family: Arial;
 font-size: 28px;
 color: white; }

благодаря KK

0
добавлено
Просмотры: 1
de
попробуйте преобразовать developer.mozilla.org/en-US/docs/CSS/transform </а>
добавлено автор Ya Zhuang, источник

2 ответы

У вас используется vertical-align: middle; ?

попробуй это :

.childclass {
  display: table-cell; 
  vertical-align: middle; 
  text-align: center; 
}

Эта ссылка определенно поможет вам:

вертикально-center-text-in-a-100-height -div

0
добавлено
я использовал его во многих случаях, он работал для меня. у вас удалено положение относительно, сверху, слева и так далее, попробуйте удалить их и использовать dislay: table-cell; скажите, если это сработает.
добавлено автор Surinder ツ, источник
дать дополнение к .childclass {padding-left: 20px;}
добавлено автор Surinder ツ, источник
спасибо, @ KK123, я не получил его об усечении текста.
добавлено автор Surinder ツ, источник
Я определенно использовал эти свойства css, но, похоже, не работает. Мне нужно использовать мое решение в браузере Opera.
добавлено автор KK123, источник
Любые другие предложения. Свойство Table может не работать в этом случае.
добавлено автор KK123, источник
Да Table-cell работает, но я хочу, чтобы текст появился в 2 строках, сейчас текст начинается очень близко к границе, я хочу, чтобы он начинался с некоторого интервала с левой границы. Как это должно произойти?
добавлено автор KK123, источник
@Surinder ... Спасибо, что работает. Теперь я пытаюсь достичь ... если текст выходит за рамки графической области ieParentclass height (путем применения свойства CSS max-height), текст должен обрезаться с использованием свойства CSS-переполнения: -o-ellipsis-lastline; .. Я тоже нахожу проблемы в этом ... Любая идея :)
добавлено автор KK123, источник
Я просто пытаюсь усечь текст в последней строке таблицы-ячейки и показать многоточие. Я думал, что могу дать максимальную высоту, чтобы достичь этого. Могу ли я разместить отдельный вопрос для этого.
добавлено автор KK123, источник

Используйте экран вашего родительского класса в качестве таблицы и отображения дочернего класса в виде таблицы и вертикальной выровненности: середина будет работать уверенно

HTML

<div class='parentclass'>
<div class='childclass'>Text which is more than two or three lines</div>
</div>

Css

.parentclass {
 height: 260px;
 text-align: center;
 display:table;
}
.childclass {
 vertical-align: middle;
 width: 430px;
 top: 50%;
 text-align: center;
 text-overflow: -o-ellipsis-lastline;
 border: 1px solid blue;
 font-family: Arial;
 font-size: 28px;
 color: black; 
}

Смотрите эту скрипту для демонстрации

0
добавлено
Использовать текстовый отступ: 20 пикселей; свойство в CSS childclass, чтобы получить то, что вы хотите
добавлено автор Dineshkani, источник
Да, ваш детский класс с Table-cell работает, но я хочу, чтобы текст появился в 2 строках, сейчас текст начинается очень близко к границе, я хочу, чтобы он начинался с некоторого интервала с левой границы.
добавлено автор KK123, источник
@Dinesh ... Спасибо, что работает ... Теперь я пытаюсь достичь ... если текст выходит за рамки графической области ieParentclass height, используя свойство max-height CSS, текст должен обрезаться с использованием свойства CSS text-overflow: o-ellipsis-lastline; ... Я тоже нахожу проблемы в этом ... Любая идея :)
добавлено автор KK123, источник