css总结
Whisper Lv4

嵌入css方式

1 内联式

内联式css样式表就是把css代码直接写在现有的HTML标签中,如下面代码:

1
<p style="color:red">红色</p>

并且css样式代码要写在style=""双引号中

如果有多条css样式用分号隔开:

1
<p style="color:red;font-size:12px">红色</p>

2 嵌入式

嵌入式css样式,就是可以把css样式代码写在标签之间。

1
2
3
4
5
<style type="text/css">
span{
color:red;
}
</style>

3 外部式

<head>内使用<link>标签将css样式文件链接到HTML文件内,如下面代码:

1
<link href="base.css" rel="stylesheet" type="text/css" />

注意:

  1. css样式文件名称以有意义的英文字母命名,如 main.css。
  2. rel="stylesheet" type="text/css" 是固定写法不可修改。
  3. 标签位置一般写在标签之内。注意:
  4. 三种方法的优先级:内联式 > 嵌入式 > 外部式

但是嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面。

选择器

1
2
3
4
选择器
{
样式;
}

选择器

1 标签选择器

标签选择器其实就是html代码中的标签

1
p{font-size:12px;line-height:1.6em;}

2 类选择器

1
.类选器名称 {css样式代码;}

3 ID选择器

ID选择器只能在文档中使用一次

1
#ID器名称{css样式代码;}

4 子选择器

>符号表示,选择指定标签元素的第一代子元素(直接后代)

1
.food>li //选择类标签food下面的第一个li

5 包含(后代选择器)

通过空格,用于选择指定标签元素下的后辈元素(所有子后代元)

1
h1 em {color:red;}

6 通用选择器

*匹配html中所有标签元素

7 伪类选择器

允许给html不存在的标签(标签的某种状态)设置样式

1
a:hover{color:red;} //a标签鼠标滑过的状态设置字体颜色

8 分组选择器

为html中多个标签元素设置同一个样式时,可以使用分组选择符

1
h1,span{color:red;}

//它相当于下面两行代码:

1
2
h1{color:red;}
span{color:red;}

布局模型

CSS包含3种基本的布局模型,用英文概括为:Flow、Layer 和 Float。在网页中,元素有三种布局模型:

  1. 流动模型(Flow)
  2. 浮动模型 (Float)
  3. 层模型(Layer)

流动模型

默认的网页布局模式

flow模型特征:

1.块状元素自上而下顺序分布,默认状态下,块状元素的宽度都为100%,以行的形式占据位置,霸道独占一行。
1.内联元素在所处的包含元素内从左到右水平分布

浮动模型

块状元素独占一行,让两个块状元素并排显示,可以使用浮动。

1
2
3
4
5
div{
width:200px;
height:200px;
border:2px red solid;
float:left;}
1
2
<div id="div1"></div>
<div id="div2"></div>

层模型

绝对定位(position: absolute)

将元素从文档流中拖出来,绝对定位元素不占文档流,忽略文档流的存在而浮在已有东西的上面
left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位,如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

相对定位(position: relative)

通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。
它相对定位占文档流 ,所以定位不好它会覆盖已有的东西。

固定定位(position: fixed)

与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。
不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

Relative与Absolute组合使用

相对于其它元素进行定位.
参照定位的元素必须是相对定位元素的前辈元素:

1
2
3
4
5
6

<div id="box1"><!--参照定位的元素-->

<div id="box2">相对参照元素进行定位</div>
<!--相对定位元素-->
</div>//从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。

参照定位的元素必须加入position:relative;

1
2
3
4
5
#box1{
width:200px;
height:200px;
position:relative; //绝对
}

定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

1
2
3
4
#box2{    position:absolute;  //相对
top:20px;
left:30px;
}//这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。

盒模型

箱子装东西的模型。所有的块级元素都具备盒模型特点。

CSS继承

样式会自动应用于其后代。

如:给p设置了颜色,span也会有颜色。

1
p{color:red;}
1
<p>三年级时,我还是一个<span>胆小如鼠</span>的小女孩。</p>

有一些css样式是不具有继承性的。如border:1px solid red;

注意:继承也有权值但很低,有的文献提出它只有0.1,所以可以理解为继承的权值最低。

代码缩写节能

1 盒模型

代码简写盒模型时外边距(margin)、内边距(padding)和边框(border)设置上下左右四个方向的边距是按照顺时针方向设置的:上右下左。

通常有下面三种缩写方法:

1、如果top、right、bottom、left的值相同,如下面代码:

1
2
3
margin:10px 10px 10px 10px;
//可缩写为:
margin:10px;

2、如果top和bottom值相同、left和 right的值相同,如下面代码:

1
2
3
margin:10px 20px 10px 20px;
//可缩写为:
margin:10px 20px;

3、如果left和right的值相同,如下面代码:

1
2
3
margin:10px 20px 30px 20px;
//可缩写为:
margin:10px 20px 30px;

注意:padding、border的缩写方法和margin是一致的。

2 颜色值缩写

关于颜色的css样式也是可以缩写的,当你设置的颜色是16进制的色彩值时,如果每两位的值相同,可以缩写一半。

1
2
3
4
5
6
p{color:#000000;}
//可以缩写为:
p{color: #000;}
p{color: #336699;}
//可以缩写为:
p{color: #369;}

3 字体缩写

网页中的字体css样式代码也有他自己的缩写方式,下面是给网页设置字体的代码:

1
2
3
4
5
6
7
8
body{
font-style:italic;
font-variant:small-caps;
font-weight:bold;
font-size:12px;
line-height:1.5em;
font-family:"宋体",sans-serif;
}

这么多行的代码其实可以缩写为一句:

1
2
3
body{
font:italic small-caps bold 12px/1.5em "宋体",sans-serif;
}

注意:

1、使用这一简写方式你至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-varient、line-height)如未指定将自动使用默认值。

2、在缩写时 font-size 与 line-height 中间要加入“/”斜扛。

一般情况下因为对于中文网站,英文还是比较少的,所以下面缩写代码比较常用:

1
2
3
body{
font:12px/1.5em "宋体",sans-serif;
}

只是有字号、行间距、中文字体、英文字体设置。

边框

边框三个属性:

1
2
3
4
5
div{
border-width:2px;
border-style:solid;
border-color:red;
}

1.border-style常见样式有:dashed(虚线)| dotted(点线)| solid(实线)

1.border-color(边框颜色)中的颜色可设置为十六进制颜色,如:

1.border-width(边框宽度)中的宽度也可以设置为:thin | medium | thick(不是很常用),常用的还是用象素
(px)

四个边框单独设置:

1
2
3
4
border-top:1px solid red;
border-bottom:1px solid red;
border-right:1px solid red;
border-left:1px solid red;

宽度和高度

css内定义的宽(width)和高(height),指的是填充padding以里的内容范围。

填充padding

上、右、下、左(顺时针)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//合起来写:
div{padding:20px 10px 15px 30px;}

//分开写:

div{

padding-top:20px;

padding-right:10px;

padding-bottom:15px;

padding-left:30px;

}

如果上、右、下、左的填充都为10px;可以这么写

div{padding:10px;}

如果上下填充一样为10px,左右一样为20px,可以这么写:

div{padding:10px 20px;}

边界margin

上、右、下、左。

1
2
3
4
5
6
7
8
9
10
11
12

//合起来写:
div{margin:20px 10px 15px 30px;}

//分开写:

div{
margin-top:20px;
margin-right:10px;
margin-bottom:15px;
margin-left:30px;
}

如果上右下左的边界都为10px;可以这么写:

1
div{ margin:10px;}

如果上下边界一样为10px,左右一样为20px,可以这么写:

1
div{ margin:10px 20px;}

权值

为同一个元素设置了不同的CSS样式代码,会优先使用权值高的css样式。

权值的规则:

标签的权值为1,类选择符的权值为10,ID选择符的权值最高为100。例如下面的代码:

1
2
3
4
5
6
7
8
9
10
11

p{color:red;} /*权值为1*/

p span{color:green;} /*权值为1+1=2*/

.warning{color:white;} /*权值为10*/

p span.warning{color:purple;} /*权值为1+1+10=12*/

#footer .note p{color:yellow;} /*权值为100+10+1=111*/

格式化排版

字体

1
body{font-family:"宋体";}

字号、颜色

1
body{font-size:12px;color:#666}

粗体,斜体、下划线、删除线

1
2
3
4
p span{font-weight:bold;} //粗体p
a{font-style:italic;} //斜体p
a{text-decoration:underline;} //下划线
.oldPrice{text-decoration:line-through;} //删除线

缩进

1
p{text-indent:2em;} //注意:2em的意思就是文字的2倍大小。

行间距

1
p{line-height:1.5em;}

字间距、字母间距

1
2
letter-spacing //字母间距
word-spacing //单词间距

对齐

1
text-alignleft/center/right