目录
CSS基础
一.样式表的位置、字体样式、文本样式
1.1 样式表的位置
样式表分为行内样式表、内部样式表、外部样式表
行内样式
也称为嵌入样式,使用HTML标签的style属性定义
只对设置style属性的标签起作用
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<p style = color:red;”>
第二次作业
</p><!行内样式>
</body>
</html>
内部样式
也称为内嵌样式,在页面头部通过style标签定义
对当前页面中所有符合样式选择器的标签都起作用
即使有公共CSS代码,也是每个页面都要定义的
适合文件很少,CSS代码也不多的情况
使用单独的 .CSS 文件定义,然后在页面中使用 link标签 或 @import指令 引入
<!DOCTYPE HTML>
<html>
<head>
<style type="text/css">
p{
color:red; /*设置字体颜色*/
}
</style>
</head>
<body>
<p >
第二次作业
</p><!内嵌样式>
</body>
</html>
外部样式
使用单独的 .CSS 文件定义,然后在页面中使用 link标签 或 @import指令 引入
页面结构HTML代码与样式CSS代码的完全分离
维护方便
如果需要改变网站风格,只需要修改公共CSS文件
可以在同一个 HTML 文档内部引用多个外部样式表
<!DOCTYPE HTML>
<html>
<head>
<link rel="stylesheet" href="css/style.css" />
</head>
<body>
<p>第二次预习用</p><!外部样式>
</body>
</html>
p{
color:red;/*设置文字颜色*/
}
效果图
行内样式> 内嵌样式> 链接样式>浏览器默认样式
1.2 样式表的字体样式、文本样式
字体样式
文本属性
单位
二.css的基础选择器及权重
2.1 css的基础选择器
选择器(选择符)就是根据不同需求把不同的标签选出来这就是选择器的作用。简单来说,就是选择标签用的。
基础选择器是由单个选择器组成的
基础选择器又包括:标签选择器、类选择器、id选择器和通配符选择器。
1.标签选择器
标签选择器(元素选择器)是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签制定统一的CSS样式。
<style type="text/css">
body{background-color: #ccc;
text-align:center;
font-size:12px; }
h1{font:“黑体";font-size:20px;}
p {color:red; font-size:16px;}
hr {width:200px;}
</style>
<body>
<h1>标题</h1>
<hr>
<p>正文的段落</p>
版权所有
</body>
把某一类标签全部选出来,快速为同类型的标签统一设置样式不能设置差异化样式。
2.类选择器
差异化选择不同的标签,单独选一个或几个标签,可以用类选择器。类选择器在HTML中用class属性表示,在CSS中,用”.”表示。
<style type="text/css">
p { font-size:12px; }
.one{ font-size:18px; }
.two{font-size:24px; }
</style>
<body>
<p class="one">类别1</p>
<p class="one">类别1</p>
<p class="two">类别2</p>
<p class="two">类别2</p>
<p>普通段落中的文字</p>
</body>
3.id选择器
id选择器可以为标有特定id的HTML元素指定特定的样式。HTML元素用id属性来设置id选择器,CSS中用“#”来定义。
<style type="text/css">
#one{font-size:12px;}
#two{font-size:24px;}
</style>
<body>
<p id="one">文字1</p>
<p id="two">文字2</p>
</body>
4.通配符选择器
在CSS中,通配符选择器使用“*”定义,它表示选取页面中所有元素。
注意:
混合
多个class选择器混用,用空格分开
<,div class=“one yellow left”>……<,/div>
id和class混用
<,div id=“my” class=“one yellow left” >
id选择器不可以多个同时使用
2.2 CSS权重
css权重指的是css6大基础选择符的优先级,优先级高的css样式会覆盖优先级底的css样式,优先级越高说明权重越高,反之亦然。
css6大基础选择器:
a)、id选择器(#box{})
b)、类选择器(.box{})
c)、属性选择器(a[href=“http://www.xxx.com”])
d)、伪类和伪对象选择器(:hoevr{}和::after{})
e)、标签类型选择器(p{})
f)、通配符选择器(*{})
2、css权重计算规则
计算css权重是有一定规则的,根据w3c制定的css规范,css权重计算规则如下:
a)、计算选择符中的id选择器的数量
一个id选择器为一个a,一个a为100
b)、计算选择符中的类选择器、属性选择器以及伪类选择器的数量
一个类选择器、属性选择器以及伪类选择器为一个b,一个b为10
c)、计算标签类型选择器和伪对象选择器的数量
一个标签类型选择器、伪对象选择器为一个c,一个c为1
d)、忽略通配符选择器
通配符选择器忽略不计
如下面这张图就是一个css选择器权重的例子:
如果两个选择符的权重相同,则可依照”就进原则”来判断,最后定义的选择符会被采用。但尽量避免出现这种依靠定义的顺序决定选择符优先级的情况,因为在后续的维护中很难保证定义的顺序不会被打乱。
三.css样式的三大特性
**css有三个非常重要的特性:**层叠性、继承性、优先级
1.层叠性
相同选择器给设置相同的样式,此时一个样式就会覆盖(层叠) 另一个冲突的样式。层叠性主要解决样式冲突的问题
层叠性原则:
- 样式冲突,遵循的原则是就近原则,哪个样式离结构近,就执行哪个样式
- 样式不冲突,不会层叠
2.继承性
CSS中的继承:子标签会继承父标签的某些样式,如文本颜色和字号。简单的理解就是:子承父业。
恰当的使用继承可以简化代码,降低CSS样式的复杂性
子元素可以继承父元素的样式(text-,font-,line-这些元素开头的可以继承,以及color属性)
行高的继承
body {
font: 12px/1.5 Microsoft YaHei;
}
行高可以跟单位也可以不跟单位
如果子元素没有设置行高,则会继承父元素的行高为 1.5
此时子元素的行高是:当前子元素的文字大小 * 1.5
body行高 1.5 这样写法最大的优势就是里面子元素可以根据自己文字大小自动调整行高
3. 优先级
当同一个元素指定多个选择器,就会有优先级的产生。
选择器相同,则执行层叠性
选择器不同,则根据选择器权重执行(具体内容看权重部分)
选择器权重如下表所示。
选择器 选择器权重 简单记忆
继承 或者 * 0,0,0,0 0
元素选择器 0,0,0,1 1
类选择器,伪类选择器 0,0,1,0 10
ID选择器 0,1,0,0 100
行内样式 style=“” 1,0,0,0 1000
四.行内元素、块级元素特点及转换
4.1 特点
行内元素
- 可以和其他元素处于一行,不用必须另起一行。
- 元素的高度、宽度及顶部和底部边距不可设置。
- 元素的宽度就是它包含的文字、图片的宽度,不可改变。
<a> //标签可定义锚 ==常用==
<abbr> //表示一个缩写形式
<acronym> //定义只取首字母缩写
<b> //字体加粗
<bdo> //可覆盖默认的文本方向
<big> //大号字体加粗
<br> //换行
<cite> //引用进行定义
<code> // 定义计算机代码文本
<dfn> //定义一个定义项目
<em> //定义为强调的内容
<i> //斜体文本效果
<img> //向网页中嵌入一幅图像 ==常用==
<input> //输入框
<kbd> //定义键盘文本
<label> //标签为 input 元素定义标注(标记)
<q> //定义短的引用
<samp> //定义样本文本
<select> // 创建单选或多选菜单
<small> //呈现小号字体效果
<span> //组合文档中的行内元素 ==常用==
<strong> //加粗
<sub> //定义下标文本
<sup> //定义上标文本
<textarea> //多行的文本输入控件
<tt> //打字机或者等宽的文本效果
<var> // 定义变量
块状元素
- 每个块级元素都是独自占一行。
- 元素的高度、宽度、行高和边距都是可以设置的。
- 元素的宽度如果不设置的话,默认为父元素的宽度(父元素宽度100%)。
<address>//定义地址
<caption>//定义表格标题
<dd> //定义列表中定义条目
<div> //定义文档中的分区或节 ==常用==
<dl> //定义列表
<dt> //定义列表中的项目
<fieldset> //定义一个框架集
<form> //创建 HTML 表单
<h1> //定义最大的标题 ==常用==
<h2> // 定义副标题
<h3> //定义标题
<h4> //定义标题
<h5> //定义标题
<h6> //定义最小的标题
<hr> //创建一条水平线
<legend> //元素为 fieldset 元素定义标题
<li> //标签定义列表项目 ==常用==
<noframes> //为那些不支持框架的浏览器显示文本,于 frameset 元素内部
<noscript> //定义在脚本未被执行时的替代内容
<ol> //定义有序列表
<ul> //定义无序列表
<p> //标签定义段落 ==常用==
<pre> //定义预格式化的文本
<table> //标签定义 HTML 表格
<tbody> //标签表格主体(正文)
<td> //表格中的标准单元格
<tfoot> //定义表格的页脚(脚注或表注)
<th> //定义表头单元格
<thead> //标签定义表格的表头
<tr> //定义表格中的行
4.2 转换
可以通过修改元素的display属性来切换行内元素和块级元素。