CSS:Cascading Style Sheets)是层叠样式表用来定义网页的显示效果。可以解决html代码对样式定义的重复,提高了后期样式代码的可维护性,并增强了网页的显示效果功能。
作用:CSS将网页内容和显示样式进行分离,提高了显示功能。
CSS与HTML的结合方式
利用标签中style属性来改变每个标签的显示样式。
例:
<p style="background-color:#FF0000; color:#FFFFFF"> p标签段落内容。</p>
该方式比较灵活,但是对于多个相同标签的同一样式定义比较麻烦,适合局部修改。
在head标签中加入style标签,对多个标签进行统一修改。
<head> <style type=”text/css”> p { color:#FF0000;} </style></head>
该方式可以对单个页面的样式进行统一设置,但对于局部不够灵活。
前提是已经存在一个定义好的CSS文件。网页的一部分样式需要用到,那么就用到这种方式。
例:
<style type="text/css"> @import url(css_3.css); p { color:#FF0000;}</style>
定义一个外部的CSS文件(.css)结尾的。
@import url("css文件的地址");需要写在<style>标签的内部
注:url括号后面必须要用分号结束。如果导入进来的样式与本页面定义的样式重复,以本页定义样式为准。
通过head标签中link标签来实现,前提也是先要有一个已定好的CSS文件。
例:
<link rel="stylesheet" type="text/css" href="css_3.css" />
<link rel="stylesheet" type="text/css" href="CSS文件的地址" > ,不能写在<style>内部,写在<head>标签的内部。
rel:代表当前的文件和引入文件的关系。
type:类型
href:CSS的地址
注:可以通过多个link标签链接进来多个CSS文件。重复样式以最后链接进来的CSS样式为准。
(一般情况下)从上到下,由外到内,优先级从低到高的。
特殊情况:标签名选择器 < class选择器 < ID选择器 < style属性
(1)选择器名称{属性名:属性值;属性名:属性值;...}
(2)属性与属性之间用 分号 隔开
(3)属性与属性值直接按用 冒号 连接
(3)如果一个属性有多个值,值与值直接用空格隔开
例子
p{border:值1 值2 值3}
编写的CSS代码作用在哪个标签上。
(1)标签名选择器
每一个标签都定义了class属性和id属性。用于对标签进行标识,方便对标签进行操作。
在定义的中,多个标签的class属性值可以相同,而id值要唯一,因为JavaScript中经常用。
(2)class选择器:(常用的)
在标签中定义class属性并赋值。通过 标签名.class值 对该标签进行样式设置。
例:
相同标签设置不同样式的时候,用class进行区分。
p.pclass_1 {color:#FF0000;} p.pclass_2 {color:#0000FF;}
<p class=”pclass_1”>P标签样式</p><p class=”pclass_2”>P标签样式</p>
不同标签进行相同设置的时候,用class进行统一定义。
.classname {color:#00FF00;}<p class=”classname”>P标签样式</p><p class=”classname”>p标签样式</p>
(3)id选择器:
与class选择器类似,但格式不同,选择器的名称为:#id值。
例:
#pid { color:#0000FF;}<p id=”pid”>P标签样式</p>
注:多个标签同样可以定义相同的id值,但是对于JavaScript对标签元素的获取就会出错。所以形成习惯,确保id值的唯一性对于以后的数据库设计也很有好处。
优先级(特殊):
标签名选择器 < class选择器 < ID选择器 < style属性
(1)关联选择器:多个标签之间产生关系。
标签是可以嵌套的,要让相同标签中的不同标签显示不同样式,就可以用此选择器。
例:
p { color:#00FF00;} p b { color:#FF000;}<p>P标签<b>刘德华</b>段落样式</p><p>P标签段落</p>
注:中间用空格隔开
(2)组合选择器:对多个不同的选择器设置相同的样式
p,p { color:#FF0000;}<p>P标签显示段落。</p><p>p标签显示段落</p>
注:中间用逗号隔开
(3)伪元素选择器:CSS定义好的选择器
如果使用超链接的4个状态,使用的顺序: L V H A
其实就在html中预先定义好的一些选择器。称为伪元素。是因为CSS的术语。
格式:标签名:伪元素。类名 标签名。类名:伪元素。都可以。
a:link 超链接未点击状态。 text-decoration: none;
a:visited 被访问后的状态。
a:hover 光标移到超链接上的状态(未点击)。
a:active 点击超链接时的状态。
使用顺序 L – V – H - A
p:first-line 段落的第一行文本。
p:first-letter 段落中的第一个字母。
p:focus 具有焦点的元素。IE6浏览器不支持,在FireFox中可以看到效果。
CSS的简单练习(查阅文档)
table { font-family: 隶书; font-size:14px; color:black; border-width: 1px; border-color: gray; border-collapse: collapse; width: 200px; } table th { border-width: 1px; padding: 8px; border-style: solid; border-color: gray; background-color: #dedede; } table td { border-width: 1px; padding: 8px; border-style: solid; border-color: gray; background-color: #ffffff; }
在进行布局前需要把数据封装到一块一块的区域内,这个区域的专业术语叫盒子。
边框(border)分为上 下 左 右
内边距(padding)分为上 下 左 右
外边距(margin)分为上 下 左 右
float(漂浮)
none : 默认值。对象不飘浮
left : 文本流向对象的右边
right : 文本流向对象的左边
clear(清除)
none : 默认值。允许两边都可以有浮动对象
left : 不允许左边有浮动对象
right : 不允许右边有浮动对象
both : 不允许有浮动对象
position
static : 默认值。无特殊定位,对象遵循HTML定位规则
absolute : 将对象从文档流中拖出,使用 left , right , top , bottom 等属性相对于其最接近的一个最有定位设置的父对象进行绝对定位。如果不存在这样的父对象,则依据 body 对象。而其层叠通过 z-index 属性
relative : 对象不可层叠,但将依据 left , right , top , bottom 等属性在正常文档流中偏移位置