首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >语法:将变量用于CSS值

语法:将变量用于CSS值
EN

Stack Overflow用户
提问于 2011-05-12 12:55:12
回答 3查看 84.4K关注 0票数 22

尝试使一个框在另一个框中垂直居中。我知道有css可以做到这一点,但我更喜欢使用jquery,它更可靠(?)。

代码语言:javascript
复制
var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);

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

不确定我漏掉了什么细节。输出应为可用垂直空间的一半,以像素为单位。

编辑

最初,文本块是由div包含的跨度。div有一个设置的高度(在本例中为140 px ),文本块span的高度将根据其中有多少文本而变化。但是,我需要这个文本块是可编辑的。所以我把它改成了文本区。但是,文本区域的尺寸行为很笨拙,我必须为它设置一个静态的高度和宽度。现在这个文本块的高度是不变的,所以它和它的父级之间的高度没有差别,用来派生页边距-顶部间距。我该怎么办?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-05-12 12:59:35

删除vertAlign两边的引号

代码语言:javascript
复制
$(".Text").css('margin-top', vertAlign);

尝试上面的代码。它一定对你有帮助。

票数 36
EN

Stack Overflow用户

发布于 2011-05-12 13:06:46

如果您想使用多个样式,也可以选择:

代码语言:javascript
复制
var styles = {'margin-top':vertAlign,'property':100,'property':somevalue}
$(".Text").css(styles);
票数 10
EN

Stack Overflow用户

发布于 2011-05-12 13:11:32

代码语言:javascript
复制
var textH = $(".Text").height();
var vertAlign = ((140 - textH)/2);
$(".Text").css({
        margin-top: vertAlign + 'px'
    });

你需要指定单位,否则你的浏览器将无法判断你是想要像素、em还是apples.Also,你可能想要做一些范围检查,你不希望vertAlign是负的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5973440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档