计算机程序员为什么不直接使用css作为控制代码,为何使用艰涩难懂的javascript呢?
感谢邀约,作为开发者能提出这样的问题,让我感觉挺意外的。常言道,术业有专攻,每个人都有自己擅长的领域,如果样样都能做,简直是神了。计算机程序也是如此,每个语言都有自己的特点和应用领域,如果想用一个语言解决所有领域的问题是不现实也是不可能的。问题中你提及的CSS,连一门编程语言都算不上,更不用说让其替代脚本语言了,以下是我针对这个问题的解释帮助你理解什么是CSS,仅供参考:
首先我们来了解下什么是CSS
在介绍之前,我们来先聊聊前端这个岗位,随着大多数互联网公司采用前后端分离的开发方式开发产品,前端的地位也随之提升,从以前不被重视的“切图仔”变成了高大上的“前端工程师”。前端是个一个新兴的岗位,掌握前端,你必须从最基础的核心内容学起,那就是:Html、CSS、JavaScipt。三者缺一不可,只有掌握基础的内容,你才能在前端的路上走的更远。
那什么是CSS呢?CSS对应的英文全称是:Cascading Style Sheets。直译过来就是层叠样式表。从翻译我们看出,只是层叠样式表,和编程语言没太大的关系。那到底什么是层叠样式表呢,我们来看看W3C官网是怎么解释的:Cascading Style Sheets (CSS) is a simple mechanism for adding style (e.g., fonts, colors, spacing) to Web documents. 其翻译过来,大概就是:层叠样式表是一种向 WEB 文档里添加样式(比如字体、颜色、间距)的方式。说白了就是,如果WEB是一个人的话,CSS就是一个化妆师,其工作就是给客户化妆,让用户漂漂亮亮的。
最后,从单词的角度,逐个来分析其代表含义:
Style:主要用来定义元素的外观风格,比如各种html标签样式,你可以想想成每个人的穿衣风格。
Sheets:其要表达的意思,CSS也可以独立成文件,与Html文档分开,方便分工、单独进行编写以及文件管理。
Cascading:样式多了就避免不了冲突,因此需要相关的规则,可以根据规则的优先级来解决冲突,如行业样式优先级会覆盖其它所有样式的规则。
接下来我们来看看 Html、CSS、JavaScipt 这三者的区别
理解了CSS,我们在聊聊 Html、CSS、JavaScipt 这三者到底有什么区别呢,对于初学者学习尤其重要。就拿建房子做比较吧,HTML就好比毛坯房,刚建好的房子里空荡荡的啥都没有,就是把格局搭建好了,有客厅、卧室、书房、卫生间、凉台等,啥都没有的毛坯房你愿意去住吗?CSS就好比对毛坯房进行装修和摆设,比如把墙面刷成什么颜色,选择什么样的家具,家具怎么摆放,铺什么样的底板等等。JavaScript是什么呢?就是让你的家变的智能化更加有趣,比如指纹开门,在屋里喊一嗓子,灯开了等等,说白了,你能随意给家里的智能产品下达命令。
最后给大家分享下几个学前端的建议
- 不要上来就学习JavaScipt,先从Html、CSS学起。
- 学完Html、CSS的基础内容后,一定要动手实践页面布局。
- 前面的基础学完了,再学习JavaScipt相关的知识,切忌直接跳过,学习Vue这些前端框架。
- 学习这些基础内容,切忌直接看视频,一定要先看书,看不明再看视频,学习的时候一定要多动手,哪怕是书上的代码多简单一定要手打一遍。
- 这些基础学完后,再去学习前端的一些框架,比如Vue,React、Angular等。
小节
今天的分享就和大家聊到这些,希望我的解释,能让你明白了什么是CSS,前端需要学哪些,Html、CSS、JavaScipt 这三者有啥区别,以及怎么学前端。
感谢大家阅读,如果你有什么好的想法欢迎到留言区分享交流,如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。
文/小伊评科技
作为一个半资深的前端工程师,你这个问题问的非常的没有道理,这个问题就好比是在问:男人那么能干,为什么不能取代女人呢?因为CSS和Javascript完全是两个不同的概念,其工作职责也是不同的,CSS控制的样式表,是偏向静态表现得,他的核心功能最强大的功能其实就是定义样式,虽然目前CSS3加入了很多动画效果,比如配合transtion/transform以及animation可以制作很多简单甚至相当复杂的动画效果,但是说白了也只是静态展示,想要做成动态的人机交互效果,还是需要Javascript所提供的各种交互事件来配合完成,CSS+HTML所能提供得交互方式太过于单薄。
而且Javascript是一个实打实的编程语言,他的作用可不仅限于操作DOM元素这么简单,他还是沟通前台和后台得一个重要沟通工具,没有JS你的页面就只是一个静态页面罢了。笔者举一个最简单的例子,如果你需要页面中某一个方面要引用后台的数据,那么用CSS怎么实现?根本无法实现,所以这个时候就需要用到AJAX技术了,而一旦用到AJAX技术,就必须要使用到Javascript。
只会html+CSS的前端人员充其量只能算是一个网页设计师罢了
HTML+CSS所能做出来的只不过是静态的页面,并不具备可交互性,也基本上无法满足商用的要求。所以对于一个前端工程师来说JS才是重中之重。目前主流的三大框架React、Vue、Angular也都是基于Javascript深度开发的产物。只会HTML+CSS的前端工程师目前已经基本被淘汰了,或者说没有特别的用武之地。因为大部分UI设计师对于Html+CSS的掌握都非常优秀,配置静态页面不成问题而如果想要成为更进一步的前端工程师,甚至前端高级工程师,Javascript是必须要熟练掌握的,在掌握了Javascript之后再去学习三大框架,学习AJAX,学习
Node.Js
等才会更加的游刃有余。end 希望可以帮到你
html三剑客?
html就像一个人的血肉骨骼,是最本质的东西。
css就像人穿的衣服,可以将人打扮的漂亮好看。
javascript则是人的行为,动作和交互主要靠他。
哈哈,没事乱刷,却刷到了这样的一个问题。真的免不了要安利下我自己发在IBM开发者上的文章了:《纯 CSS 井字棋:并不神秘的 CSS AI 编程之旅》,百度下就能搜到了,呵呵。
其实,这里有两点是要澄清的,第一,JavaScript并不艰涩难懂。第二,CSS当然可以用来作为控制代码,要不然,我那个只使用CSS,不使用任何JavaScript的实现的井字棋,就根本无法实现了。
这里面的核心在于:
第一:借助于<input type="checkbox" />和<input type="radio" />的不同状态,实际上,可以实现二进制的存储,同时,借助于:checked伪类,可以实现读取
第二:借助于不同的CSS类组合方式,比如像A, B {}、A>B {} 、:not(A) {}、:not(A):not(B) {}这样一些,就可以实现逻辑上的OR、AND、NOT、NOR等。
这两样都齐备了,实际上,编程的基础就有了。
但就像我写那篇文章,只是为了讨论“有没有”可能性一样,我们自己开发过程中,也其实不会大量的直接使用CSS来作为控制代码,原因无它,有更为简单有效强大的JavaScript,为什么我们要用哪怕实现一个逻辑,都其实繁琐异常的CSS?