学习笔记:网络技术Ch5.CSS3和响应式网页设计
(来源:notes of course Web Technology.Ch5.CSS3 and RWD)

前面谈到了HTML,但是一般来说,HTML只能传输数据的内容,如果想要字能上点颜色,变变位置呀,根据程序员的习惯,这种东西肯定是要再来一个包解决,这样把字和形态分离更有利于后期的修改以及引用。
于是CSS诞生了,他只用来搞内容的样式,在整个文章中起着格式刷的作用。
CSS语法(Syntax):
包括两个部分:
- selector
- declaration block
来个例子:
1 | |
也就是
1 | |
先来看看selector:
分为:
- Universal selector: *{。。。}
- Element/Type selector:h1,h2,h3{ 。。。}
- ID selector: 在定义内容时会定义个id, #intro{。。。}
- Class selector:也会定义class,h1.main{…..}
- Child selector: 就是包含内的元素 p>a{…..}
- descendant selector:选择父类的 p a{…..}
- Atrribute selector:选择特定的属性的,p[type=”new”]{…..}
- Pseudo element selector: 不好指定对象,比如我要第一个单词什么样 h1.main:first-letter{…..}
- Pseudo class selector:指定一个类,比如所有的链接什么样:a:link{….}
那么,如果有叠加的CSS,咋办,就是按照权重(priorities),进行分配,,指定的越细,越针对到个体的,权重越高,巧的是,正是上面排列的顺序。
如果我指定了body,想他下面的p也是这样样子咋整,当然你可以再指定p也是这样样子,但是程序员懒,所以也可以用继承(inheritance),跟java差不多,extend关键词。
好,那怎么把CSS写进HTML里呢?
- 直接在HTML前面加style关键词
- 在head里面加个style块
- 把它写成个css文件,和html放一个文件夹里
推荐第三种,实现了完全的分开(seperate)。
如果是只传来一个网页,不想传来一个网页包,推荐第二种,比如邮件。
好,问题就又来了,如果我这三种CSS都写了呢?
还是按照权重来看,越细致,指定到个人的,权重越高,巧的是,还是按照上面的顺序,权重依次降低。
Box Model:
所有HTML元素可以看作盒子,在CSS中,”box model”这一术语是用来设计和布局时使用。CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:边距,边框,填充,和实际内容。盒模型允许我们在其它元素和周围元素边框之间的空间放置元素。

1 | |
输出结果是:

盒子模型就是为了更好的布局调整,但是在考虑布局调整之前,先来看看,如何丈量你所看到的东西:
- Absolute unit:就是实际的宽度长度,pixel
- Relative unit:就是相对的长度,%、em(相对于周围元素)、rem(相对于root)
布局:
RWD:
随着2007年发布了iphone,手机也能浏览html文件了,于是,很多网站为了能让手机适配,就开发了专门用手机访问的页面,他们和传统页面有着不同的url,但是因为手机的尺寸千变万化,修改一次网站,就要多增加许多的工作量,这是一件繁琐的事情。
众所周知,懒使得科学进步,有没有一种,只开发一个网页,他能根据屏幕自动适配排版的技术呢?
RWD就出现了,因为CSS3的media queries特性,CSS可以知道用户的屏幕类型,分辨率,以及比例,所以CSS3为RWD的出现制造了条件。
设计思路(Content Strategy):
- Think about the content before thinking about the designof a website
- Most important information should be at the top of a page
- Divide content into chunks that can be rearranged on a page
- All users (regardless of the device) should have accessto all the content of a website