CSS目前最新版本为CSS3,是能够真正做到网页表现与内容分离的一种样式设计语言。相对于传统HTML的表现而言,CSS能够对网页中的对象的位置排版进行像素级的精确控制,支持几乎所有的字体字号样式,拥有对网页对象和模型样式编辑的能力,并能够进行初步交互设计,是目前基于文本展示最优秀的表现设计语言。CSS能够根据不同使用者的理解能力,简化或者优化写法,针对各类人群,有较强的易读性。
 

Nicholas C.Zakas (《JavaScript高级程序设计》的作者,NCZOnline - The official website of Nicholas C. Zakas)说过,要想全面理解和掌握JavaScript,关键在于弄清楚它的历史、本质和局限性。这对CSS同样适用。

历史
 
 

混沌未分天地乱,CSS的诞生就是为了终结当时由推动Web世界繁荣的首功之臣HTML引发的混乱局面。在1990~1993年Web世界还处于一片荒芜的时候,HTML这个勤劳而艰难生存的族群带着描述段落、标题、超链接等结构性内容(后来这些成员荣升HTML国的贵族,经过几次战乱并一直生活到现在)的技能给Web世界带来了生机。而后 Mosaic(早期的一款浏览器)的出现让文字和图片可以一起显示出来,也一夜之间让Web威名远扬,这里充满魔力与神奇。无数的站点冒了出来,无数的站点吸引无数的人,无数的人带来无数的新功能,我要字体能变色,我要字体能加粗,各种样式要求不断增加。HTML为了满足人们不断膨胀的欲望和要求努力扩充技能树,最后弄得自己苦不堪言,一大堆描述样式的标签(现在还有的<i><em>等)搞得开发乱七八糟。

结构化标记语言就这样变成了一坨一坨的字符串。

刚成立的Web世界联合国W3C并没有坐视不管,而是在积极的寻找与焦急的等待。终于他们找到了CSS。CSS在现在Web开发中可谓平淡无奇,写CSS是很自然的事情因为它就属于开发的一部分,但在当时却是绝无仅有的。它最初由HÃ¥kon Wium Lie于1994.10.10(他当时是Tim Berners-Lee在CERN的同事,Lee发明了万维网)提出来,由Bert Bos建议,经过W3C的公开和内部讨论最终在1996年底推出CSS1,并使之成为标准被推荐,很快浏览器厂商也争相在自家产品中实现以占领市场。这中间也并非一帆风顺,比如网景公司就提交了一种新语言JSSS来实现样式,但最终并没有被接受(这种开发标准之争一直存在,包括后来的JavaScript,以及现在开发中的很多新技术都是这样)。


CSS接过了HTML手中的样式表现接力棒,也开始了自己的传奇之旅。

本质
 
 

CSS的本质可以分为宏观与微观两方面。 宏观上它的存在就是为了控制页面的显示样式。包括布局,颜色,字体等。微观上则是实现这种控制功能的各种属性的定义和工作原理。

了解定义就能干活,知道原理才能把活干好。

题主说属性太多,其实CSS就是去控制样式而已,网页样式是借鉴于传统的报纸等印刷品的排版。你随便在身边找一份报纸或者杂志的一页,用CSS尽可能的还原出来。整体布局还原出来问题应该不大,但是具体到细节的时候可能会有很多问题,比如出来的效果总是跟想的不一样。这个时候就该去看看单个属性的工作原理,比如margin是用来控制外边距的但是用%的时候它是怎么计算的最终值呢?当发现出乎意料的时候就去Index 查一下属性的定义和值的计算方法。

常用基础样式:

“Tips:”

· 常用CSS属性margin和padding的%取值是基于包含块(离元素最近的块级祖先元素)的宽,注意是宽。

· 行内元素相关的内容区、行内框、基线这几个概念很重要。

· inline-block是,内部被解析为块级元素,自身被解析为行内元素。

· background-image可以同时为一个元素设置多个背景图配合background-
    position可以组合出神奇的效果。

· 浮动的元素会消除外边距重合,浮动的元素会被解析为块级元素。

· top,right,bottom,left,z-index这些属性只有用在定位元素(除了position为
     
static值)上才有效。

· overflow的值设置为scroll,在移动端可以做横向滑动效果。

· 除了做表格不要用table布局。

· 选择器都很简单,只说一类。结构伪类选择器,原理可以理解为先找到符合条
  件的元素后,向上找到其父元素然后验证规则。

css历史的更多相关文章

  1. css 历史及css3 新特性

  2. 第十四章 校本化CSS

    CSS(层叠样式表)是一种指定HTML文档视觉的表现的标准.CSS本来是让视觉设计师来使用的:它允许设计师精确的对文档元素的字体 ,颜色,外边距,缩进,边框甚至是定位.不过,客户端javascript ...

  3. 欲练JS,必先攻CSS——前端修行之路(码易直播)

    以下是直播大概内容的文字版: 感谢大家今天来到直播间收听本期的码易直播.今天我讲的主题是css,具体聊一下我大概的css学习历史,分享一些干货,希望这次分享对大家有所启发和帮助. 个人的css历史: ...

  4. 欲练JS,必先攻CSS——前端修行之路

    今天我讲的主题是css,具体聊一下我大概的css学习历史,分享一些干货,希望这次分享对大家有所启发和帮助. 个人的css历史: 说说自己的css学习的历史,12年,当时是老师手把手1对1教我div+f ...

  5. 深入css布局篇(2) — 定位与浮动

    深入css布局(2) - 定位与浮动      在css知识体系中,除了css选择器,样式属性等基础知识外,css布局相关的知识才是css比较核心和重要的点.今天我们来深入学习一下css布局相关的知识 ...

  6. JavaScript权威指南--脚本化CSS

    知识要点 客户端javascript程序员对CSS感兴趣的是因为样式可以通过脚本编程.脚本化css启用了一系列有趣的视觉效果.例如:可以创建动画让文档从右侧“滑入”.创造这些效果的javascript ...

  7. CSS History

    Preface 如果只是要写程序,那的确是不需要这么麻烦,上来直接看Syntax,动手写上至少300行代码,做上3个应用程序,这门语言你也就差不多会用了,接下来不过就是模式,特殊的地方以及记住一些函数 ...

  8. 玩转CSS3,嗨翻WEB前端,CSS3伪类元素详解/深入浅出[原创][5+3时代]

    在我的上一篇博客中, 很多园友提出说对css3"画图"不是很理解, 在跟他们私聊了一段时间以后,加上自己在开始自学css3的时候的疑惑,我觉得大家之所以不是很理解主要是因为对伪元素 ...

  9. CSS3系列一(概述、选择器、使用选择器插入内容)

    CSS3模块化结构 CSS历史发展 CSS(Cascading Style Sheet),层叠样式表,是用于控制网页样式并允许将样式信息与网页内容分离的一种标记性语言. CSS3属性选择器 E[att ...

随机推荐

  1. P1064 金明的预算方案 (依赖性背包问题)

    这道题可以用分组背包来做. 但是分组有两种方式 一种是把主件,主件+附件1,主件+附件2分成一组 组内只能选一个物品 一种是建一颗树,用树形dp的方式去做 第二种更通用,就算物品的依赖关系是森林都可以 ...

  2. 17.I/O系统访问方式和类型

    I/O方式 轮询  中断  DMA  通道

  3. 安卓开发--sharedpreferences存储数据

    @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s ...

  4. SQL--去除字符串空格、截取字符串

  5. 将毫秒时间转换为yyyy-MM-dd HH:mm:ss格式

    /** * 将毫秒时间转换为yyyy-MM-dd HH:mm:ss格式 */ public static String getDateFromTimeMillis(Long timeMillis) { ...

  6. session 存入 memcahce

    <?php header('content-type:text/html;charset=utf-8'); class RedisSessionHandler{ public $ttl; //失 ...

  7. AtCoderBeginner091-C 2D Plane 2N Points 模拟问题

    题目链接:https://abc091.contest.atcoder.jp/tasks/arc092_a 题意 On a two-dimensional plane, there are N red ...

  8. 四舍五入VS银行家舍入法

    在学习python的时候,遇见了一个颠覆了我传统观念的四舍五入. 看下面,round()的结果和我们以前根深蒂固的四舍五入是不同的. >>> round(0.5) 0 >> ...

  9. SP7586 NUMOFPAL - Number of Palindromes(回文树)

    题意翻译 求一个串中包含几个回文串 题目描述 Each palindrome can be always created from the other palindromes, if a single ...

  10. 快速创建WCF服务和svcutil.exe工具使用

    先简单的创建WCF服务: 系统会自动加上IService1接口 和 Service1 实现类 分别在IService1 和Service1 加上2段代码. [ServiceContract] publ ...