使用JavaScript进行定位是否是一种好的实践?

3

我几周前才学了javascript和jquery,自那以后我总是用它来确定屏幕和窗口的大小,并将所有的div和其他内容定位在屏幕上,我觉得这非常有用。不过现在我不知道这是否是一个好的做法,因为它让我的网页完全依赖于jquery,我不知道这是否会在不同的浏览器中引起一些问题。
我真的希望能够得到像“当然是个好做法,尽管使用所有你想要的脚本”之类的答案,因为我真的很喜欢这些javascript东西,但也请告诉我您的观点。

9个回答

6

使用JavaScript实现行为,使用CSS进行样式设置。

使用JavaScript进行样式设置会更加缓慢,并且很难让其他开发者或设计师知道你具体做了什么。

此外,如果你使用Firebug或Chrome Web Inspector,你将无法看到你的样式从何而来。

可以从JavaScript中选择性地设置类,而不是特定的样式。你可以在不同的类之间切换,以创建一个漂亮的效果。但至少你的同事能够看到样式定义在哪里并进行修改。


我同意这个答案,尽管我的评论可能会暗示不同意见。 - Andrew Barber

5

很抱歉,我要打破你的幻想。

如果你禁用Javascript后网页还能正常显示,那么使用Javascript也没关系。我认为网页应该在禁用Javascript时甚至比正常情况下更好看。但前提是你的网站功能确实需要Javascript。

请记住,某些用户会禁用Javascript。有些网站在没有启用JS时看起来非常糟糕(我在Firefox上使用NoScript,并选择性地启用Javascript)。有些网站则完全无法显示。

这很糟糕。

正如Darin所说,你可以(而且应该!)使用CSS进行定位和样式设计。这就是CSS的作用!当然,你可以使用Javascript增强页面,但请记住我上面说的话!


这不是一个好的做法。我不想追踪从JavaScript设置的样式。我的工具可以帮助我在CSS中查找东西而不是在JS中。 - Split Your Infinity
3
@Bart...如果页面没有问题,也不需要JavaScript的功能,那么我会这样说。而且,我只会在页面的功能性需要JavaScript的情况下使用它。我甚至一开始就说,“我要打破你的幻想……” - Andrew Barber

2
你可以使用 CSS 来定位和样式化元素。这就是它被设计的目的。

2

在某些情况下,使用它进行定位是可以的,但是在适用时使用CSS是更好的实践。


2

我认为你应该尽可能避免使用它。但是我知道有时候你没有选择。

当然,你可以使用脚本创建出色的Web应用程序。


1

这取决于你要定位什么。

CSS 应该是定位网页标准、常规部分和元素的首选。在这些情况下选择 JavaScript 表明缺乏对 CSS 的理解。

同样,如果你发现自己使用 JS 来为不同的设备定位东西。再次强调,CSS 已经发展了;媒体查询就是为此而来的。原则:始终首先尝试使用 CSS。

话虽如此,简单地说 JavaScript 永远不应该用于定位是过于简单化了。我们所有人,无论正确与否,都曾经(只是这样做)使用 JS 来使事物在跨浏览器时看起来正确,特别是在支持旧版 IE 的情况下。

但是,迄今为止 JS 定位最大的用例是现代 Web 应用程序和游戏。如果你正在构建一个随机散布着小行星的游戏,JS 绝对是最佳选择,因为位置是基于计算和推导的。

最后,请记住,当你在 JS 中定位时,你当然仍在使用 CSS。JS 没有自己的并行样式/定位系统 - 它只是设置 CSS 属性。它只能比平面 CSS 更动态和有条件地这样做。


0

这几乎肯定是不好的做法。使用CSS进行样式设置 - 使用JavaScript会更慢、更费力,并且更容易出现问题。


0
如果您将所有内容都绝对定位(固定坐标),那么在不同分辨率的屏幕上它看起来并不好。这个问题没有一个真正的答案...脚本有它们的用处,您可以使用所有脚本...然而,布局中所有元素的定位不是 JS 的工作。请使用 CSS 进行布局。
我建议从这里开始:从 HTML + CSS 开始

-1

没有一种方法适用于所有情况。每个网络应用程序都需要采用正确的工具和实践来实现其目标。这在应用程序之间变化如此之大,以至于对于您的问题没有一个“正确”的答案。


有一个正确的答案到某个程度。你永远不会建议选择JS来设置主要站点部分或元素的样式。同样,您也不会建议在游戏或其他应用程序中使用CSS,因为定位或样式可能过于动态,无法通过平面、非动态的CSS文件实现。 - Mitya

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接