Answers:
是。
CSS的目的是布局,外观和动画
JavaScript的目的是交互。
如果要进行布局,请使用CSS,如果要设置外观,请使用CSS,如果要进行动画,请使用CSS3
如果您附加事件处理程序或对用户输入做出反应,请使用JavaScript。
请注意,人们使用JavaScript而不是CSS来获得浏览器支持。还有其他解决方案,例如使用javascript模拟CSS功能。
好吧,这实际上是一个非常有趣的问题。我正在尝试考虑如何对类似的东西进行基准测试,尤其是因为大多数时候CSS或JavaScript都不会在网页上进行真正的计算密集型工作。
我的直觉会说,尽可能多地使用CSS,但不要使其成为一成不变的规则。
a:hover {
background-color: green;
}
然后在语义上更好
$('a').onmouseover(function() {
$(this).css('background-color','green');
})
但
$('a').onmouseover(function() {
if (somethingelsehappened) {
$(this).css('background-color','green');
}
})
在CSS中将是困难的(尽管并非不可能)。您可以通过这种方式进行。
$('a').onmouseover(function() {
if (somethingelsehappened) {
$(this).addClass('Green');
}
})
a.green {
background-color: green;
}
直接执行JavaScript可能确实有点尴尬,但是我已经思考了几分钟,即使在这里,正确的解决方案也可能是CSS,例如如果您在悬停时设置了很多属性。
**请注意,该代码均无效,仅用于演示目的。**
考虑是否要从Yahoo Developer Network中进行以下操作:
“计算了数字之后,我们发现禁用JavaScript的请求的持续速率徘徊在实际访问者流量的1%左右,其中最高的比例在美国约为2%,最低的比例在巴西约为0.25%。所有接受测试的其他国家的数字非常接近1.3%。”
由于百分比如此之低(最高),几乎不值得(除非您的网站用户主要来自2%)担心用户关闭javascript的情况。普通用户不知道如何关闭javascript,因此可能不在乎。如果您要开发的是技术网站,则可能要考虑它们会禁用javascript的可能性,但是如果有,它们可能会习惯于网站无法正常运行,因为许多网站确实大量使用了javascript。
话虽如此,我发现很多情况下javascript开发使我要完成的工作变得容易得多,而其他情况下css都做同样的事情。
最终,每种“语言”在Web开发中都有其适当的位置,明智地使用它可以增强开发和用户体验。了解这些用途是什么(我建议您学习经验)并明智地应用。根据我的经验,在实际世界中,很少有固定的规则,例如“存在CSS解决方案时千万不要使用JS”(改述)。
JavaScript是一种真正的计算机语言,这意味着它具有程序执行的状态和控制权。因此,它的复杂程度没有上限,您在其中编写的任何内容都必定具有相当小的复杂性。CSS是描述性代码;它的复杂性仅限于配方可以具有的复杂性级别。因此,如果可以同时使用CSS和JavaScript进行某些操作,那么我宁愿使用CSS,因为它一定不会那么复杂。
Javascript是一种脚本语言,这意味着它可以添加一些逻辑。CSS用于描述文档的外观和样式。它的主要目的是将文档结构与格式和布局(表示)分开。
您可以使用Javascript来修改网页的外观,但是由于CSS就是要这样做的,因此我将使用CSS作为网站样式,其余部分留给Javascript。
维基百科:
JavaScript使用:
- 通过编程控制新窗口的大小,位置和属性(例如,菜单,工具栏等是否可见)来打开或弹出新窗口。
- 在提交给服务器之前,验证Web表单的输入值以确保它们是可接受的。
- 当鼠标指针移到图像上时更改图像:此效果通常用于将用户的注意力吸引到显示为图形元素的重要链接上。
更新。关于第三点,W3C谈到CSS:
的
:hover
伪类适用,而用户指定用定点设备的元素,但并不必然激活它。例如,当光标(鼠标指针)悬停在由元素生成的框上时,可视用户代理可以应用此伪类。
CSS用法:
在CSS之前,HTML文档的几乎所有表示形式属性都包含在HTML标记中。所有字体颜色,背景样式,元素对齐方式,边框和大小都必须在HTML内(通常是反复地)明确描述。CSS允许作者将大部分信息移到单独的样式表中,从而大大简化了HTML标记。
hover
伪类有目的。我只是在引用。编辑。