基本操作语法
CSS 规则由两个主要的部分构成:选择器selector,以及一条或多条声明。
selector{属性1:一个修饰值;…}
下面这行代码的作用是将 h1 元素内的文字颜色定义为红色,同时将字体大小设置为 14 像素。
h1{color:red;font-size:14px;}
记得写引号
提示:如果值为若干单词,则要给值加引号
p {font-family: “sans serif”;}
选择器的分组
如果对几个选择器进行相同部分的修饰可以用:
h1,h2,h3,h4,h5,h6 {
color: green;
}这样,6个标题字体颜色会都为绿色。
派生选择器
派生选择器允许你根据文档的上下文关系来确定某个标签的样式。
css规则:
strong {
color: red;
}
h2 {
color: red;
}
h2 strong {
color: blue;
}
只在对应的h2 标记处为特定的蓝色,其余处的strong均为加粗。
ID选择器
id 选择器以 “#” 来定义。
#red {color:blue;}
#green {color:black;}
id 属性为 red 的 p 元素显示为蓝色,而 id 属性为 green 的 p 元素显示为黑色。
如:
<p id="red">这个段落是蓝色。</p>
<p id="green">这个段落是黑色。</p>
**注意:id 属性只能在每个 HTML 文档中出现一次
ID选择器也可常与派生选择器连用。
CSS 类选择器
类选择器用一个.来表示:
.lo {text-align: center}
则lo类的元素均文字居中。
**注意:类名的第一个字符不能使用数字!它无法在 Mozilla 或 Firefox 中起作用
属性选择器
- *[元素]{修饰}含这个元素的所有内容进行修饰。
- a[ ]对锚修饰,再多加元素进行更具体的修饰。
子代选择器
- h1 em 选择器可以解释为 “作为 h1 元素后代的任何 em 元素”。
h1 em{color:red;}
< h1>haha< em>啦啦啦<\em><\h1>
- h1>strong只对比h1低一级的strong进行修饰。
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
h1> strong {color:red;}
</style>
</head>
<body>
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>
</body>
</html>
em>strong时:
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
em> strong {color:red;}
</style>
</head>
<body>
<h1>This is <strong>very</strong> <strong>very</strong> important.</h1>
<h1>This is <em>really <strong>very</strong></em> important.</h1>
</body>
</html>
CSS 相邻兄弟选择器
如果需要选择紧接在另一个元素后的元素,而且二者有相同的父元素,可以使用相邻兄弟选择器。
如果要增加紧接在 h1 元素后出现的段落的上边距:
h1 + p {margin-top:50px;}
伪类选择器
语法:selector : pseudo-class {property: value}
-
锚伪类
前5个属性,在支持 CSS 的浏览器中,链接的不同状态都可以不同的方式显示,这些状态包括:活动状态,已被访问状态,未被访问状态,和鼠标悬停状态。
a:link {color: #FF0000} * 未访问的链接 *
a:visited {color: #00FF00} * 已访问的链接 *
a:hover {color: #FF00FF} * 鼠标移动到链接上 *
a:active {color: #0000FF} * 选定的链接 * -
:frist-child
p:first-child {font-weight: bold;}
li:first-child {text-transform:uppercase;}
只修饰p标签的第一个和li标签的第一个。
伪元素
常见的CSS选择器:
通配符选择器
*+{}为全文修饰。
*{color:green;}
即可让全文本变绿。
类选择器
为了将类选择器的样式与元素关联,必须将 class 指定为一个适当的值。
.important{color:red;}
< p class="important">haha< /p>
< h1 class="important">haha< /h1>
则受标记过的p,h1均文本变红。也可与元素选择器连用:h1.important就只是对h1的修饰。
继承问题
通过 CSS 继承,子元素将继承最高级元素(在本例中是 body)所拥有的属性(这些子元素诸如 p, td, ul, ol, ul, li, dl, dt,和 dd)。不需要另外的规则,所有 body 的子元素都应该显示 Verdana 字体,子元素的子元素也一样。如果你想对某个(p)独立不同的描述,需要创建一个针对 p 的特殊规则,这样它就会摆脱父元素的规则。
如何创建CSS
如何插入样式表,方法有三种:
- 外部样式
当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 < link> 标签链接到样式表。
<head>
<link rel="stylesheet" type="text/css" href="mystyle.css" />
</head>
系统会应用名为mystyle.css该文件所编写的样式,该文件不能包含任何html的标签。还有不要在属性值和单位值之间留有空格,有的会识别不出来。如:
hr {color: sienna;}
p {margin-left: 20px;}
body {background-image: url("images/back40.gif");}
假如在20与px之间留有空格,有的会识别不出来。
- 内部样式
当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用
<head>
<style type="text/css">
hr {color: sienna;}
p {margin-left: 20px;}
body {background-image: url("images/back40.gif");}
</style>
</head>
包含在html文件里。
- 内联样式
Style 属性可以包含任何 CSS 属性,你可以在相关标签内使用“style”属性。
<p style="color: sienna; margin-left: 20px">
This is a paragraph
</p>
多重样式
在外部样式与内部样式修饰的属性有重叠部分,系统会保留内部样式
CSS背景
这方面,大家用css要比html直接变化背景强太多。
- 背景色(background—color)
可以使用 background-color 属性为元素设置背景色。这个属性接受任何合法的颜色值。
如果您希望背景色从元素中的文本向外少有延伸,只需增加一些内边距padding:
p {background-color: gray; padding: 20px;}
background-color 不能继承,其默认值是 transparent。transparent 有“透明”之意。也就是说,如果一个元素没有指定背景色,那么背景就是透明的,这样其祖先元素的背景才能可见。
- 背景图像(background-image)
如果需要设置一个背景图像,必须为这个属性设置一个 URL 值:
body {background-image: url(/i/eg_bg_04.gif);} - 背景重复
如果需要在页面上对背景图像进行平铺,可以使用 background-repeat 属性。
属性值 repeat 导致图像在水平垂直方向上都平铺,就像以往背景图像的通常做法一样。repeat-x 和 repeat-y 分别导致图像只在水平或垂直方向上重复。如:
<html>
<head>
<style type="text/css">
body
{
background-image:
url(/i/eg_bg_03.gif);
background-repeat: repeat-y
}
</style>
</head>
<body>
</body>
</html>
repeat-y垂直平铺,repeat-x为水平平铺。
-
背景定位
可以利用 background-position 属性改变图像在背景中的位置,长度。常用的为;
-
背景关联
如果文档比较长,那么当文档向下滚动时,背景图像也会随之滚动。当文档滚动到超过图像的位置时,图像就会消失。
您可以通过 background-attachment 属性防止这种滚动。通过这个属性,可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影响。
<html>
<head>
<style type="text/css">
body
{
background-image:url(ct_css_selector.gif);
background-repeat:no-repeat;
background-attachment:scroll
}
</style>
</head>
<body>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
<p>图像不会随页面的其余部分滚动。</p>
</body>
</html>
效果为:
总结:
CSS文本
CSS 文本属性可定义文本的外观。
通过文本属性,您可以改变文本的颜色、字符间距,对齐文本,装饰文本,对文本进行缩进,等等。
- 缩进文本
CSS 提供了 text-indent 属性,该属性可以方便地实现文本缩进。常用的是首行缩进,如:
p {text-indent: 5em;} - 水平对齐
text-align 是一个基本的属性,它会影响一个元素中的文本行互相之间的对齐方式。 - 字间隔
word-spacing 属性可以改变字(单词)之间的标准间隔。其默认值 normal 与设置值为 0 是一样的。
word-spacing 属性接受一个正长度值或负长度值。如果提供一个正长度值,那么字之间的间隔就会增加。为 word-spacing 设置一个负值,会把它拉近。 - 字符转换
text-transform 属性处理文本的大小写。这个属性有 4 个值:
none
uppercase
lowercase
capitalize
默认值 none 对文本不做任何改动,将使用源文档中的原有大小写。顾名思义,uppercase 和 lowercase 将文本转换为全大写和全小写字符。最后,capitalize 只对每个单词的首字母大写。 - 文本修饰
text-decoration:产生删除线,下划线,上标线等效果。 - 处理空白符
空格符,换行符一般默认会被合并,设置不同的值,得到的属性也不相同。
CSS字体
使用 font-family 属性 定义文本的字体系列。
- 指定字体系列
body {font-family: sans-serif;} - 使用字体
h1 {font-family: Georgia;}因为字体的使用有继承效果。 - 使用引号
当字体类型为带空格的字体时,选择单引号。如果字体名包括 # 或 $ 之类的符号,才需要在 font-family 声明中加引号。
< p style=“font-family: Times, TimesNR, ‘New Century Schoolbook’, Georgia,
‘New York’, serif;”>…< /p> - 字体类型
常见的为:
- normal - 文本正常显示
- italic - 文本斜体显示
- oblique - 文本倾斜显示 - 字体大小
font-size:如果您没有规定字体大小,普通文本(比如段落)的默认大小是 16 像素 (16px=1em)。
CSS链接
- 设置链接的样式
- a:link 未被访问
- a:visited 已被访问
- a:hover - 鼠标指针位于链接的上方
- a:active - 链接被点击的时刻
<!DOCTYPE html>
<html>
<head>
<style>
a:link {color:#FF0000;} /* 未被访问的链接 */
a:visited {color:#00FF00;} /* 已被访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标指针移动到链接上 */
a:active {color:#0000FF;} /* 正在被点击的链接 */
</style>
</head>
<body>
<p><b><a href="/index.html" target="_blank">这是一个链接</a></b></p>
<p><b>注释:</b>为了使定义生效,a:hover 必须位于 a:link 和 a:visited 之后!!</p>
<p><b>注释:</b>为了使定义生效,a:active 必须位于 a:hover 之后!!</p>
</body>
</html>
- CSS列表
- CSS表格
CSS轮廓
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<style type="text/css">
p
{
border: red solid thin;
}
p.dotted {outline-style: dotted}
p.dashed {outline-style: dashed}
p.solid {outline-style: solid}
p.double {outline-style: double}
p.groove {outline-style: groove}
p.ridge {outline-style: ridge}
p.inset {outline-style: inset}
p.outset {outline-style: outset}
</style>
</head>
<body>
<p class="dotted">A dotted outline</p>
<p class="dashed">A dashed outline</p>
<p class="solid">A solid outline</p>
<p class="double">A double outline</p>
<p class="groove">A groove outline</p>
<p class="ridge">A ridge outline</p>
<p class="inset">An inset outline</p>
<p class="outset">An outset outline</p>
<p><b>注释:</b>只有在规定了 !DOCTYPE 时,Internet Explorer 8 (以及更高版本) 才支持 outline-style 属性。</p>
</body>
</html>
CSS框模型
- 内边距(padding)
- 边框(border)
- 外边距(margin)
CSS定位
CSS 定位 (Positioning) 属性允许你对元素进行定位。
- 定位与浮动
CSS 为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。 - 一切皆为框
div、h1 或 p 元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。与之相反,span 和 strong 等元素称为“行内元素”,这是因为它们的内容显示在行中,即“行内框”。可以使用display元素,display:block可以使行内元素表现得像块;display:none让生成的元素根本没有框。 - CSS 定位机制
CSS 有三种基本的定位机制:普通流、浮动和绝对定位。默认都在普通流上进行。 - CSS position 属性
通过使用 position 属性,我们可以选择 4 种不同类型的定位,这会影响元素框生成的方式。
1.static:
元素框正常生成。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
2.relative(相对定位)
元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
3.absolute(绝对定位)
ps:相对定位是“相对于”元素在文档中的初始位置,而绝对定位是“相对于”最近的已定位祖先元素
4.fixed(固定定位)
实例
相对定位:
<html>
<head>
<style type="text/css">
h2.pos_left
{
position:relative;
left:-20px
}
h2.pos_right
{
position:relative;
left:20px
}
</style>
</head>
<body>
<h2>这是位于正常位置的标题</h2>
<h2 class="pos_left">这个标题相对于其正常位置向左移动</h2>
<h2 class="pos_right">这个标题相对于其正常位置向右移动</h2>
<p>相对定位会按照元素的原始位置对该元素进行移动。</p>
<p>样式 "left:-20px" 从元素的原始左侧位置减去 20 像素。</p>
<p>样式 "left:20px" 向元素的原始左侧位置增加 20 像素。</p>
</body>
</html>
绝对定位:
<html>
<head>
<style type="text/css">
h2.pos_abs
{
position:absolute;
left:100px;
top:150px
}
</style>
</head>
<body>
<h2 class="pos_abs">这是带有绝对定位的标题</h2>
<p>通过绝对定位,元素可以放置到页面上的任何位置。下面的标题距离页面左侧 100px,距离页面顶部 150px。</p>
</body>
</html>
固定定位:
<html>
<head>
<style type="text/css">
p.one
{
position:fixed;
left:5px;
top:5px;
}
p.two
{
position:fixed;
top:30px;
right:5px;
}
</style>
</head>
<body>
<p class="one">一些文本。</p>
<p class="two">更多的文本。</p>
</body>
</html>
- 浮动
如果元素中的内容超出了给定的宽度和高度属性,overflow 属性可以确定是否显示滚动条等行为。
如果值为 scroll,不论是否需要,用户代理都会提供一种滚动机制。因此,有可能即使元素框中可以放下所有内容也会出现滚动条。默认值是 visible。
再请看下图,当框 1 向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖住了框 2,使框 2 从视图中消失。
如下图所示,如果包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。如果浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”:
实例
<html>
<head>
<style type="text/css">
div.container
{
width:100%;
margin:0px;
border:1px solid gray;
line-height:150%;
}
div.header,div.footer
{
padding:0.5em;
color:white;
background-color:gray;
clear:left;
}
h1.header
{
padding:0;
margin:0;
}
div.left
{
float:left;
width:160px;
margin:0;
padding:1em;
}
div.content
{
margin-left:190px;
border-left:1px solid gray;
padding:1em;
}
</style>
</head>
<body>
<div class="container">
<div class="header"><h1 class="header">Aliyun.com.cn</h1></div>
<div class="left"><p>"Never increase, beyond what is necessary, the number of entities required to explain anything." William of Ockham (1285-1349)</p></div>
<div class="content">
<h2>Free Web Building Tutorials</h2>
<p>At Aliyuncom.cn you will find all the Web-building tutorials you need,
from basic HTML and XHTML to advanced XML, XSL, Multimedia and WAP.</p>
<p>W3School.com.cn - The Largest Web Developers Site On The Net!</p></div>
<div class="footer">Copyright 2008 by YingKe Investment.</div>
</div>
</body>
</html>
- 剪切图像
clip 属性剪裁绝对定位元素。
vertical-align 属性设置元素的垂直对齐方式。
- z-index
z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
可能的值为1,-1,-1时元素含有最低的优先级;1优先级最高。
-
CSS float 属性
元素的左右移动。 -
边框和清理clear
浮动框旁边的行框被缩短,从而给浮动框留出空间,行框围绕浮动框。因此,创建浮动框可以使文本围绕图像