【发布时间】:2014-06-11 06:24:28
【问题描述】:
我发现自己不得不经常使用 JS,因为我认为这些东西应该可以单独用 CSS 解决。
这是我正在尝试做的示例情况:
div.outer { height:{Y}px }
div.inner { padding-top:{Y}px }
我并不是很想专门设置外部div的高度,但我想要的是内部div的padding-top属性与外部div的高度相匹配。我缺少关于 CSS 的东西吗?还是 JS 是惯用的做法?
在 jQuery 中我会做这样的事情:
var y = $('div.outer').height();
$('div.inner').css('padding-top',y+'px');
虽然很少见,但禁用 JS 的客户端呢?
澄清:请注意,这不是一个“我如何在 CSS 中做到这一点”的问题。我知道目前,您不能在 CSS 中执行此操作。相反,它更多的是关于其他类型的解决方案可以实现我所追求的协调的问题。如果我只想计算初始交付的值,我可以用 vars 在 PHP 中编写 CSS,但这不是我想要的。它更多是关于协调两个元素,以便当一个元素发生变化时(由于调整窗口大小或旋转设备,或通过 AJAX 引入另一个元素等),另一个元素的样式也会随之改变以匹配它。
【问题讨论】:
-
您目前不支持 CSS 中的变量。如果您仍想采用这种方法,您必须使用动态样式表语言,如
less或sass解析并编译为 CSS . -
我不明白你想要得到什么,你想要达到什么视觉效果。
-
您介意分享您想要实现的目标吗?可能还有另一种方法...
-
我禁用了 js(或者,更确切地说,使用 noscript),并且看到没有 js 甚至无法呈现其初始内容的网站通常会让我立即离开
标签: javascript jquery html css