Front end foundation course 3
上次课的作业
发给我的同学做的都不错,表扬一下大家的积极性,感觉大家学习能力都很不错。
CSS基础
什么是CSS
CSS 即层叠样式表,主要作用就是指定 HTML 中各元素的样式,从而使整个页面达到很好的展示效果。
CSS引入方式
- 外部文件
- 内部样式表
- 内联样式
CSS语法
基础语法
selector 表示选择器,花括号中即为对其修饰的属性和值的键值对。
selector {
roperty: value
}
分组
通过逗号分隔可以将选择器分组,这一组的选择器将同时被该样式修饰。
selector1,
selector2,
selector3 {
property: value
}
派生
通过空格分隔表示选择器的派生,即在上一级选择器的基础上进行下一级选择器的选择。
selector1 selector2 {
property: value
}
联合
直接连接两个选择器,表示选择同时符合这两个选择器的元素。
selector1selector2 {
property: value
}
CSS选择器
通用选择器
即选择所有元素,用法为 *
,如:
<style>
* {
font-size:4em;
}
</style>
<p>This is a id selector demo.</p>
id
id 选择符,用来选择该 id 的元素,用法为 #id
,如:
<style>
#box {
font-size:4em;
}
</style>
<p id=”box”>This is a id selector demo.</p>
class
类选择符,来选择包含该 class 的元素,用法为 .class
,如:
<style>
.box {
font-size:4em;
}
</style>
<p class=”box”>This is a class selector demo.</p>
tag
标签选择符,用来选择所有是该标签的元素,用法为 tag
,如:
<style>
p {
font-size:4em;
}
</style>
<p class=”box”>This is a tag selector demo.</p>
property
属性选择符,用来选择包含该属性且属性值符合指定要求的元素,用法如下:
[attribute] 用于选取带有指定属性的元素。
[attribute=value] 用于选取带有指定属性和值的元素。
[attribute~=value] 用于选取属性值中包含指定词汇的元素。
[attribute|=value] 用于选取带有以指定值开头的属性值的元素,该值必须是整个单词。
[attribute^=value] 匹配属性值以指定值开头的每个元素。
[attribute$=value] 匹配属性值以指定值结尾的每个元素。
[attribute*=value] 匹配属性值中包含指定值的每个元素。
例子:
<style>
[href] {
font-size:4em;
}
</style>
<a href=”http://www.baidu.com”>This is a property selector demo.</a>
child
子元素选择符,用来选择某元素的子元素(但不包括子元素的后代),用法为 selector1 > selector2
,如:
<style>
.wrapper > p {
font-size:4em;
}
</style>
<div class=”wrapper”>
<p>
<a href=”http://www.baidu.com”>This is a child selector demo.</a>
</p>
</div>
sibling
相邻兄弟选择符,用来选择紧接在另一元素后的元素,且二者有相同父元素。用法为 selector1 + selector2
,如:
<style>
p + p {
font-size:4em;
}
</style>
<div class=”wrapper”>
<p>This is first paragraph</p>
<p>This is second paragraph</p>
</div>
pseudo-class
伪类选择符,用来添加一些特殊的样式,用法为 :pseudo-class
,如:
<style>
a:hover {
color:#f00;
}
</style>
<a href=”https://www.baidu.com”>This is a demo for pseudo selector.</a>
常见伪类:
:active 向被激活的元素添加样式。
:focus 向拥有键盘输入焦点的元素添加样式。
:hover 当鼠标悬浮在元素上方时,向元素添加样式。
:link 向未被访问的链接添加样式。
:visited 向已被访问的链接添加样式。
:first-child 向元素的第一个子元素添加样式。
:lang 向带有指定 lang 属性的元素添加样式。
pseudo-element
伪元素选择符,用来添加一些特殊的样式,用法为 :pseudo-element
,如:
<style>
.cf {
zoom:1;
}
.cf:after {
content: ‘’;
display: block;
clear: both;
height: 0;
overflow: hidden;
visibility: hidden;
}
</style>
<div class=”cf”>
<!--
some float stuff
-->
</div>
常见伪元素:
:first-letter 向文本的第一个字母添加特殊样式。
:first-line 向文本的首行添加特殊样式。
:before 在元素之前添加内容。
:after 在元素之后添加内容。
CSS优先级
相同的属性,权重高的选择器会覆盖权重低的。如果权重相同,则使用最后的。
如何计算选择器权重
4个权重等级:
- 内联
- id
- class, pseudo-class, property
- tag, pseudo-element
通用选择器(*),子选择器(>)和相邻同胞选择器(+)并不在这四个等级中,所以他们的权值都为0。
CSS样式
- 文本
- text-indent
- text-decoration
- text-align
- color
- line-height
- 字体
- font-size
- font-weight
- font-family
- font-style
- 背景
- background-color
- background-image
- background-repeat
- background-position
- 列表
- list-style-type
- list-style-image
- list-style-position
- 展示
- display
Homework
看了一下同学们在群里的聊天,由于上课时间间隔的问题,我们之后的作业大概周末的会多一点,周四的会少一点。
Part 1
请写出如下选择符的权重:
#div
div
div.name
div .name
div[title] a
#div h1 .right
.title > .close
#div li + li
.list .toggle:hover
Part 2
请用你知道的尽可能多的方法,依次选择代码片段中的每一个元素(每次只选择一个):
<div id=”wrapper”>
<h1 class=”title”>title</h1>
<p>content</p>
<ul>
<li>item1</li>
<li>item2</li>
</ul>
</div>
Part 3
选做
有兴趣的同学可以把自己上节课做的那个页面,用 CSS 来美化一下,当作练习。
预告
下节课我们主要讲的内容如下:
- 未讲完的 CSS 属性
- 盒模型
- 定位
- 一起来做个静态 demo
Fighting!
2014.12.07