整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

Html5教程:为什么CSS这么难学?

tml5教程中的CSS对于大部分人来说都是非常简单的,也是人们常说能快速学会的,但为什么总有人会觉得CSS很难学呢?

很多Html5教程视频会说几小时学会CSS,但里面确是几个常用的属性,一旦深入去学,会发现其实自己什么都不懂,而一般说好学的人可能也并没有跳出常用的属性。

所以我们想要学习CSS可以通过什么方式呢?最常见的就是看书和浏览社区文章。

但不是说咱们把东西浏览一遍就算了,看完了还是不会,我们需要做的第一点就是基础CSS的数据类型。想要学习更多的CSS属性,不妨从数据类型开始,你会发现每次学习都会有新思路。

在记住了CSS的数据类型之后,我们需要读懂CSS的语法。一般来说初学者或者只是想找一下某个CSS属性的用法,采取最多的方式就是百度。

但如果有了解过clip-path这个属性,百度在手,天下我有的气势瞬间荡然无存。当然对于大部分从业者来说,好像有一些属性一辈子都不会用到,只要掌握常用的就可以了。

但IT行业发展是非常迅速的,谁也说不准常用的属性是否会继续常用,不常用的属性是否依旧待在冷宫,而且每个CSS大佬之所以是大佬也是因为他们不断学习,动手实践。

不断的失败,尝试,再失败,再尝试才会有今日的辉煌。Html5教程中的CSS或许是难学的,但再难学也是人创造的,也是可以由人攻破。

了解更多

SS层叠样式表

其实CSS并不难学。最主要的是要掌握方法。

就个人经验而言,学习任何一门专业知识都是有一定步骤的:

首先,你需要了解该专业知识的一般概念、用途、用法,甚至也要了解一下其历史沿革。比如CSS的概念是层叠样式表,英文是“Cascading Style Sheets”,用于给网页添加样式,类似于给房屋粉刷墙壁、铺地砖、打吊顶。等等……

其次,你需要对该专业知识的各详细参数属性有大概的了解,知道各属性是用来做什么的。比如CSS中的选择器有哪几种,在何种情况下使用,CSS对文本的样式有哪些控制属性,对盒子模型又有哪些控制属性等等……我在刚开始了解这些属性的时候,是边理解边在脑中想象其在网页中呈现的样子的,这样记忆这些属性和参数就会更形象而且牢固。

然后,你就可以找一台配置不用很好的电脑,来动手实践一下,写一些样式,来感知一下CSS的效果,以及印证之前学习中对CSS中各属性呈现样子的想象了。

在平时可以多看看网上别人写得样式,在浏览网页时,可以按F12查看页面中各控件的CSS代码,不断加深对代码的熟悉感。

最后就是不断实践,多练习。不出一年,甚至更短时间,你就会成为CSS中等水平的Front-End-Engineer了

我最近在编写《精通CSS》系列文章,赶紧去看看:

CSS属性值函数(1)概述及语法

CSS属性值函数(2)calc()数值计算

CSS属性值函数(3)clamp()限值函数

CSS属性值函数(4)极值函数min()、max()

未完待续……

加油吧……

SS并不比其他编程语言更困难,说这个话大概是因为没有接触到真正困难的地方。因为大部分程序员做的都是最基础最简单的工作。

编程有两类不同的工作:一类是机械性的,把比较清晰的行为逻辑翻译成代码;另一类是创造性的,给你的信息是不足的,需要发挥创造力,补上不足的部分,完成整个项目。它可以包含难易程度各自不同的很多内容:

1. 根据接口设计算法

2. 根据功能设计相配合的接口和数据结构

3. 设计容纳现有功能及未来扩展的软件框架

4. 设计能达到预定目标、满足用户需求同时开发成本最小的的功能

创造性的工作天生是困难的,许多程序员最多只接触过1到2,甚至很多只是翻译一下业务逻辑,自然会以为编程就是比较简单,那是因为水平不够,复杂的工作都让别人替自己做了。即便是许多所谓架构师、产品经理,他们做3和4做的怎样,你们心里恐怕也有数。

说回CSS。如果说你写CSS的时候得到的信息跟写业务逻辑一样清楚,比如说:整个页面有三个框,采用浮动布局,左边和右边固定200px,最小高度是100vh,内容是中间框的子节点,padding是10px……那你也会觉得写CSS很容易,就是翻译一下嘛。问题在于写CSS的时候给的并不是这种清晰的描述,而是只有整个东西长什么样,至于具体每个元素如何排布、使用怎样的布局方式、如何设计选择器,都是需要自己精心设计的,自然就显得难了。

为什么整个东西长什么样不能直接翻译成CSS呢?很多人以为CSS是给DOM元素设置属性(attribute),其实CSS规定的并不是属性,而是行为(behavior),DOM里的每个元素都可以看成是一个独立的物体,按照CSS规定的方式运动,最后稳定下来的结果就是最终布局的结果。所以高票答案说CSS不正交,它当然不是正交的,因为它的设计就是要求协变,要求在其他元素做出调整的时候,即便本元素的样式没有发生任何变化,也可以跟着调整位置和大小,以适应新的内容,维持设计风格。

为什么CSS要设计成基于选择器和多种各异的behavior,而不像其他框架那样直接将显示样式绑定到每个元素呢?恰恰是因为正交性,因为CSS和DOM是正交的,这样DOM内容变化时,CSS可以规定一组不变的特性,从而以灵活的方式适应内容的改变。传统的GUI通常每个元素都有固定的位置和大小,要实现根据内容动态调整,就必须针对各种情况(如视口大小改变,内容改变)专门编写代码;WPF则有网格、流式、绝对三种不同的定位方式,与CSS有不少共同点,但是自适应的功能少了不少,也没有选择器的功能,这样动态生成的内容就需要更多的代码来调整。而CSS只要将DOM组织成特定的格式,就会自动启用相应的样式。WPF制作的界面毕竟变化比较少,大部分元素仍然是固定的,而网页通常要求更高的灵活性。

我已经编程一年多了,先后学过Python Java ,写过爬虫若干、用Django写过网站一两个(套模板),拿pygame 也写过游戏,喜欢刷leetcode …总体来说我觉得编程是一件很有趣的事情。

然而上个月开始系统学习HTML CSS JavaScript…都说HTML CSS 特别容易,可我学了两三个星期了,模仿个京东网站的静态页面还是感觉很难,尤其是布局这块。我是跟着w3school上学的,每个标签,每个属性可以说我都看的很仔细,但每次一到自己从零开始做一个页面的时候,我就会完全不知道从哪儿下手,一个下午下来一半都写不出来…我总结出来觉得难的原因如下:

很多时间都花在debug 上了,比如在CSS选择器中,div前面多加了一个点,然而浏览器完全允许这种行为啊,导致每次出错我都得扒着屏幕一块一块看哪儿错了,。写个代码让我有种吃屎一样的难受…

前有IE 6的不兼容,后有CSS 3大量属性的补充。让我感觉内容特别细、杂、多。

相反我倒觉得JavaScript 能学下去,毕竟是编程语言,以前接触的比较多,理解起来不难。