Синтаксис: Используйте переменную для значения CSS - PullRequest
19 голосов
/ 12 мая 2011

Попытка удерживать прямоугольник по центру в пределах другого прямоугольника.Я знаю, что css может это сделать, но я бы предпочел использовать jquery, более надежный (?).

var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);

$(".Text").css({
    marginTop: 'vertAlign'
});

Не уверен, какие детали мне не хватает.Выходные данные должны составлять половину доступного вертикального пространства в пикселях.

РЕДАКТИРОВАНИЕ

Первоначально текстовый блок представлял собой интервал, содержащийся в div.У div была заданная высота (в данном случае 140 пикселей), и текстовый блок, span, будет иметь переменную высоту в зависимости от объема текста в нем.Тем не менее, мне нужно, чтобы этот текстовый блок был редактируемым.Поэтому я изменил его в текстовую область.однако поведение для размеров текстовой области неудобное, и мне пришлось установить для него статическую высоту и ширину.Теперь высота этого текстового блока не является переменной, поэтому нет никакой разницы в высоте между ним и его родителем, с помощью которого можно получить расстояние между полями и верхами.Что мне делать?

Ответы [ 3 ]

32 голосов
/ 12 мая 2011

Удалить кавычки vertAlign

$(".Text").css('margin-top', vertAlign);

Попробуйте приведенный выше код. Это должно вам помочь.

9 голосов
/ 12 мая 2011

опционально, если вы хотите использовать более одного стиля:

var styles = {'margin-top':vertAlign,'property':100,'property':somevalue}
$(".Text").css(styles);
2 голосов
/ 12 мая 2011
var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);
$(".Text").css({
        margin-top: vertAlign + 'px'
    });

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

...