css中允许多个class:
<h1 class="green bold">... </h1>。
举例:如果同时有一个p元素和一个h1元素下都有一个 class = uppercase ,那么可以通过在类名前添加它的父类来加以区分:
注意:两个元素之间没有空格。(类似的, background-image: url(图片地址) ,url和后面的括号之间也不能有空格)
想要设置 <li>... </li> 的css样式,可以通过嵌套元素的设置方法设置:
同时选中:
通过用逗号分隔 .h1 和 .menu , 这两个类都会被相应的css格式修饰。
CSS declarations are structured into property and value pairs.
CSS语句都是属性和值相对应的结构。
font-family 定义了元素的字体。
font-size 控制文字显示的大小。
font-weight 定义文字的粗细程度。
text-align 属性控制文字的对齐方式,可以取的分别为: left , right , center 。
文字可以有两种颜色属性:前景色—— color 和背景色—— background-color 。 color 控制文字的颜色, background-color 控制文字的背景色。
CSS中可以用 opacity 属性来令某个元素透明。
CSS中也可以通过 background-image 属性来设置某个元素的背景为一张图片。
除了颜色、边框样式、边框大小之外,还可以调节边框的圆角大小,单位也是 px :
可以分别声明padding-top、padding-right、padding-bottom以及padding-left的值。
同时也可以直接声明 padding: 3px 4px 5 px 6px ,顺序分别是上、右、下、左。
使用上面这种写法时,所有边的padding数值都必须写明。
不过,如果上下、左右的padding值是相等的,也可以写作:
padding: 5px 10px ,这代表上下的padding都是5px,而左右的padding都是10px。
margin和padding类似,也有 margin-top 、 margin-right 、 margin-bottom 、 margin-left 。
同样可以写作
margin: 10px 20px 10px 2opx或者 margin: 10px 20px,表示上下边距为10px,左右边距为20px。
margin的叠加有一点特殊:
水平方向的叠加就是简单的数字叠加。例如,如果左边盒子 margin-right = 10px,而右边盒子的 margin-left = 20px,那么这两个盒子放置在一起时,他们交界处的 margin= 10 + 20 = 30px。
而竖直方向的情况则有所不同,对于叠放的两个盒子,如果上面盒子的 margin-bottom = 30px,而下面盒子的 margin-left = 20px,则交界处的 margin值 为:30px。
利用margin实现居中对齐:
首先需要父元素有固定的 width 或者 height 。比如如果想要让 div1 实现横向居中对齐,首先应该设置其父元素 div0 的 width= 400px ,然后在 css文件 中设置div1的margin值为: margin: 0 auto
被父元素包裹着的子元素可能会占据空间过大而超过父元素的容纳范围,此时可以通过设置overflow的值来进行调整。
overflow的值可以为: scroll 、 hide 、 display 。
可以利用 display 属性来设置HTML元素的显示方式。
可以设置为: none , block , inline-block , inline 。
none 表示元素不显示;
block 表示显示为块级元素;
inline 表示显示为行内元素;
inline-block 表示显示为行内块级元素。
块级元素和行内块级元素可以设置 width height 属性,
而行内元素则不能。
注:一旦给元素加上absolute或float就相当于给元素加上了 display:block。
1. static属性:
static是html元素的默认position值,也就是按照正常的文档流排列。
2. fixed属性:
fixed的效果参见各种定在网页上的广告。
3. relative属性:
relative的元素是相对于自己的default position来定位的。
3.1 默认情况下:
可以看到与默认情况并无区别,
这是因为没有指定目标HTML元素相对其default position的偏移量。
结果:
结果:
结果:
结果:
通过float属性,可以使HTML元素脱离正常的文档流,竖直方向上将不再占用文档的空间,不过水平方向上不变。
比如可以利用这一特性,让序列横向排列:
HTML文件:
CSS文件:
默认情况下的结果:
利用float属性来ul元素横向排列:
结果:
此时只需要设置一下backPanel的height即可:
比如现在 ul元素 都没有父元素包裹了,上面只有一个 <p></p>元素,float之后的 ul元素 并不会“飞到”文档顶端去:
css中的color从类型上可以分为 color (前景色) 和 background-color :
效果:
举例:
结果:
font-family: 字体名称
font-weight: bold | normal
也可以用数值来表示,数值的范围为[100, 900]且必须是100的整数倍。
举例:
font-style: italic ——斜体;
text-transform: uppercase | lowercase
text-align: left | right | center
举例:
以上CSS语句的意思是:
注:
相对应地,也存在 非衬线字体 : sans-serif fonts
grid-template-columns: 100px 200px的意思是:将此网格分为两列。
其中,第一列的width = 100px,第二列的width = 200px。
宽度的单位也可以不是 px ,可以用 百分数 表示:
上面grid的宽度是1000px, 所以第一列的宽度是1000 * 20% = 200px;同理,第二列的宽度是500px。
也可以混用 px 和 % :
这3列中,第一列width为20px,第二列为100 * 40% = 40px,第三列width为60px。
注意: 也就是说,总宽度20 + 40 + 60 = 120px,超过了100px,元素会超出grid的界限。
与定义 grid columns 是类似的:
结果:
结果:
通过单位 fr ,我们可以将行和列定义为对grid的length和width的划分——作用类似于 % ,但是用 % 是有超出父容器边界的风险的,而用 fr 则不用担心,因为浏览器会自动对grid进行划分。
如果行高或列宽相等,可以用 repeat() 函数来简化语句:
结果:
.grid {
display: grid
grid-template-columns: 100px minmax(100px, 500px) 100px
}
结果:
行间距同理:
grid-row-gap: 10px
同时设置行、列间距:
grid-gap: 20px 10px —— 一句话,分别设置行间距为20px,列间距为10px。
注:
这一简写形式并不需要 / ,如果只提供了一个值,比如: grid-gap: 10px,则相当于 grid-gap: 10px 10px。
简写形式:
同理,
同样,也可以写作:
span 可以明确地指出希望行或列跨越的距离:
比如,如果想要row从第4行开始,占两行,就可以直接写作:
不用 grid-row 的简写形式,也可以写作:
当然, span 也可以用在 grid-row-start 之后,浏览器会自动为我们计算出结果:
结果:
可以用一句话声明一个item占grid的多少行、列,并限定它在grid中的具体位置。
结果:
利用这个属性,可以先做出一个模板,然后让各个元素分别去“认领”他们所占的行和列。
比如 container 下面有5个板块:
注:
图中的grid是四行两列的,当header 和 header并列时,表示header占两列,此时header将占据整行,即使存在grid gap,依然不会将两个header分隔开。虚线只是为了便于理解,实际并不存在。
设置grid元素在每个格子中水平方向上的 对齐方式 。
justify-items 属性可以接收的值为:
注:这个属性是container中的,而不是每个item的。
设置grid元素在每个格子中竖直方向上的 对齐方式 :
同样可以接收以下值:
注:这个属性是container中的,而不是每个item的。
设置整个grid在其父容器中,水平方向上的对齐方式:
可以取的值为:
同理,利用 align-content 属性可以设置整个grid在其父容器中,竖直方向上的对齐方式。
原理均与 justify-content 属性相似,不再赘述。
利用 justify-self 、 align-self 属性,可以分别设置grid的每个格子中,具体某个item在水平、竖直方向上的对齐方式。
一、《Web前端开发最佳实践》
这本书是前端开发领域的经典之作,是一本扎实前端基本功,规范我们前端代码的实践性书籍。本书主要讲解了HTML、CSS、Javascript以及移动端开发的最佳实践方案,能够对缺乏良好指导的开发者产生很大的帮助。通过阅读本书我们可以掌握如何编写高可读性、高维护性、高性能的HTML、CSS以及Javascript。
二、《CSS那些事儿》
内容介绍:《CSS那些事儿》是2009年电子工业出版社出版的图书,作者是林小志。该书通过对CSS技巧实例进行讲解,浅入深地分析了CSS相关知识。
通过页面中的文字、图片、表格、表单等常见元素的处理及各种页面布局方式的使用,使读者能深入了解到如何在页面中更好地运用CSS布局。尤其是在页面布局的部分中,全面分析了多种布局方式,着重分解了两列等高和三列等高的几种方式,并相应说明了等高布局的优缺点。
三、《CSS权威指南》
内容介绍:《CSS权威指南》通过诸多示例,详细讲解了如何做到仅在一处建立样式表就能创建或修改整个网站的外观,以及如何得到html力不能及的更丰富的表现效果。同时展示了如何遵循css最新规范(css2和css2.1)将层叠样式表的方方面面应用于实践。
四、《JavaScript 标准参考教程》阮一峰
内容介绍:阮一峰 本书全面介绍 JavaScript 核心语法,从最简单的开始讲起,循序渐进、由浅入深,力求清晰易懂。所有章节都带有大量的代码实例,便于理解和模仿,可以用到实际项目中,即学即用。 本书适合初学者当作JavaScript语言的入门教程,也适合当作日常使用的参考手册。
五、JavaScript高级程序设计第三版
内容介绍:《全书从JavaScript 语言实现的各个组成部分——语言核心、DOM、BOM、事件模型讲起,深入浅出地探讨了面向对象编程、Ajax 与Comet 服务器端通信,HTML5 表单、媒体、Canvas(包括WebGL)及Web Workers、地理定位、跨文档传递消息、客户端存储(包括IndexedDB)等新API,还介绍了离线应用和与维护、性能、部署相关的最佳开发实践。
六、锋利的jquery
内容介绍:《锋利的jQuery(第2版)》循序渐进地对jQuery的各种函数和方法调用进行了介绍,读者可以系统地掌握jQuery的选择器、DOM操作、事件和动画、AJAX应用、插件、jQuery Mobile、jQuery各个版本变化、jQuery性能优化和技巧等知识点,并结合每个章节后面的案例演示进行练习,达到掌握核心知识点的目的。
七、HTTP权威指南
内容介绍:《HTTP权威指南》由古尔利所著,《HTTP权威指南》详细解释了如何用HTTP来开发基于Web的应用程序,核心的[因特网协议,如何与架构构建块交互,如何正确实现因特网客户和服务器等。
《HTTP权威指南》的中心内容是HTTP,本质是理解Web的工作原理,以及如何将这些知识应用到Web编程和管理之中,主要涵盖HTTP的技术运作方式、产生动机、性能和目标以及一些相关技术问题。 《HTTP权威指南》适合所有想了解HTTP和Web底层结构的人阅读。
八、高性能网站建设指南
内容介绍:《高性能网站建设指南》结合Web2.0以来Web开发领域的最新形势和特点,介绍了网站性能问题的现状、产生的原因,以及改善或解决性能问题的原则、技术技巧和最佳实践。重点关注网页的行为特征,阐释优化Ajax、CSS、JavaScript、Flash和图片处理等要素的技术,全面涵盖浏览器端性能问题的方方面面。
学习WEB标准的朋友一般都是从学习CSS开始,为什么呢?因为CSS是一种很有意思的语言,它能让我们的网页千变万化。也许我们一开始的接触只是因为链接的样式修改,然后慢慢发现CSS的强大而又简单,于是我们用它来控制整个网页的布局、排版、色彩、图片等等工作。学习了CSS之后我们又会发现XHTML的结构更为重要,一个好的XHTML结构可以让CSS少费很多事。同时也会避免网页在不同浏览器之间的差异。于是又开始学习了XHTML代码,并且不断的去摸索着XHTML的结构的特点。会写CSS了,也懂得XHTML结构的重要性并能灵活应用的时候,是不是就可以了呢。也许这时我们就会发现其实样式的管理同样非常的重要。
大家也许都已经有了自己的管理方式,因为所要应用的网页类型的不同可能管理的思路也不一样,这里我只是把我的样式管理做一个整理。算是给大家提供一个可以参考与研究的范例,给对于没有形成自己的管理方式的朋友们提供一个参照范本。
我的样式管理是针对于单一项目、单一的风格体系的网站,一般这样的网站都是中小型的网站,风格是上一致的。对于大型网站,或是风格差异很大的'网站体系是不适用的。我们在做样式之前首先要想到样式的易维护性。一旦需要修改就必需要快速方便,修改工作的成本是很高的,所以我们要尽量避免这样的工作所占用时间的扩大。那我们就有必要把样式与结构代码分开。下面看一下我的目录分配方法:
其中,[images] 是存放xHTML中出现的图片,[jonStyle]我统称之为主题包,在样式包中包括了[CSS]、[img]、[js]分别存放CSS样式表、样式表中所引用的图片、网页中所用的JS。这里存放图片的[img]与外面的[images]虽然都是存放图片的,但是这里的图片的性质却是不一样的。[img]是CSS中所引用的图片,所有的图片的显示与否都与CSS样式有关,他的归属性是,[img]里的图片是归属于CSS的,而不是XHTML的。而CSS是不会引用[images]中的图片。[images]中的图片只归属于xHTML,xHTML也不要直接使用[img]中的图片。
这里把[js]也放在了[jonStyle]文件夹中也许会有人觉得不妥,我的考虑是这样的:行为与样式本都是使得这个XHTML的结构能多姿多彩。当我们需要更换皮肤的时候,也有可通这个行为也是需要更换的。比如:在第一套方案中,某个区块的内容是要上下滚动的,然而在第二套方案中,这个区块就需要左右滚动。那么这个行为也需要与样工一起更换。当然实际应用的时候不一定是这么简单理由。
基本上大的结构是这这样的。那么样式表的结构又是怎么样的呢?我是这样来划分的:样式包中有一个base.css(基本共用样式)module.css(模块样式)forms.css (表单样式)mend.css(补丁样式)print.css(打印样式)
其中base.css是一个基本的样式,也就是所有网页的共性样式,这个样式与module.css配合基本上可以显示正常的页面。表单的划分,也可以有利于对不同地方的表单的样式管理。WEB标准涉及兼容性,所以需要有样式补丁当然还有针对性的这里就不一一列举。最后一个的打印样式,是提供给打印设置使用的。
我通过这样的划分,在对于维护与网站的样工更新上,就显得非常的容易,基本上可以在不需要程序人员的参与下就可以完成对网站的皮肤的更换。如果一个网站同时具备很多个主题包,那么只要简单的在XHTML中更换主题包的名称就可以使用不同的样式。这与网站的程序相配合将可以做出非常好的,具有很强扩展性的应用网站来!