基本语法
一个样式(Style)的语法由三部分构成:Selector(中文叫选择器有点怪怪的,就用英文吧),属性(Property),属性值(Value)。
selector {property: value}
举个例子,下面的代码p就是selector,color就是属性,blue就是属性值。
p {color:blue}
HTML中所有的Tag都可以作为selector。
注:如果你想为Style加多个属性,在两个属性之间要用分号加以分隔。下面的Style就包含2个属性,一个是对齐方式居中,一个字体颜色为红,当中用分号分隔开。
p {text-align:center;color:red}
为了提高Style代码的可读性,你也可以分行写:
p
{
text-align: center;
color: black;
font-family: arial
}
组合(Grouping)
你也可以将相同的属性和属性值赋予多个Selector。Selector之间用逗号分隔。
h1,h2,h3,h4,h5,h6
{
color: red
}
上面的例子是将所有正文标题(<h1>到<h6>)的字体颜色都变成红色。
Class Selector
利用Class Selector,你可以用同样的HTML Tag构成不同的样式。比如说,你希望段落<p>有两种样式,一种是居中对齐,一种是居右对齐。你就可以写如下样式:
p.right {text-align:right}
p.center {text-align:center}
其中right和center就是两个class。然后你就可以引用这两个class,示例代码如下:
<p class="center">这一段居中显示。</p>
<p class="right">这一段是居右显示。</p>
演示示例
你也可以不用HTML Tag,直接用.加上Class名称作为一个Selector。示例代码如下:
.center {text-align: center}
这种通用的Class Selector就没有Tag的局限性,可以用于不同的Tag。比如:
<h1 class = "center">这个标题居中显示。</h1>
<p class = "center">这个段落居中显示。</p>
演示示例
Contextual Selector
你可以为嵌入其它Tag的Tag定义样式,示例代码如下:
p em{color: red}
Em这个Tag嵌套在P里面。p em就叫做Contextual Selector,定义嵌套于P里的Em的样式。这个例子表示,在P里面的用Em这个Tag标记的字体颜色是红色。
演示示例
CSS注释
为了方便你自己或者他人日后更好地理解你的CSS代码,你可以写CSS代码注释。CSS代码注释以/*开头,以*/结束。
/* 段落样式 */
p
{
text-align: center;
/* 居中显示 */
color: black;
font-family: arial
}
CSS盒子模式(Box Model)
CSS 中有个重要的概念,就是盒子模式 (Box model)。
胡戈的"一个馒头引发的血案"中有个圆圈套圆圈娱乐城,而这个盒子模式套用这句话来说,就是方块套方块。
先看看下面这个图,黑框包围的一个方块,就是一个盒子 (Box)。
盒子里由外至里依次是:
margin 边距
border 边框
padding 间隙 (也有人称做补丁)
content (内容,比如文本,图片等)
CSS 边距属性 (margin) 是用来设置一个元素所占空间的边缘到相邻元素之间的距离。
CSS 边框属性 (border) 用来设定一个元素的边线。
CSS 间隙属性 (padding) 是用来设置元素内容到元素边框的距离。
CSS 背景属性指的是 content 和 padding 区域。
CSS 属性中的 width 和 height 指的是 content 区域的宽和高。
CSS伪类(pseudo-class)
和一般的CSS语法不同(参见CSS语法),CSS伪类的语法有两种。
第一种:
selector:pseudo-class {property: value}
例句:
a:link {color:red}
第二种:
selector.class:pseudo-class {property: value}
例句:
a.c1:link {color:red}
锚(a)伪类
锚(a)伪类是最常用的伪类。例句如下:
a:link {color: #FF0000} /* 未被访问的链接 红色 */
a:visited {color: #00FF00} /* 已被访问过的链接 绿色 */
a:hover {color: #FFCC00} /* 鼠标悬浮在上的链接 橙色 */
a:active {color: #0000FF} /* 鼠标点中激活链接 蓝色 */
演示示例
也可以用HTML的class属性来设定伪类。例句如下:
a.c1:link {color: #FF0000} /* 未被访问的链接 红色 */
a.c1:visited {color: #00FF00} /* 已被访问过的链接 绿色 */
a.c1:hover {color: #FFCC00} /* 鼠标悬浮在上的链接 橙色 */
a.c1:active {color: #0000FF} /* 鼠标点中激活链接 蓝色 */
演示示例
注:由于CSS优先级的关系(后面比前面的优先级高),在写a的CSS时,一定要按照a:link, a:visited, a:hover, a:actived的顺序书写。