CSS的介绍
- HTML用来搭建网页的结构,而CSS的作用是用来对页面上的HTML标签设置样式或者排版。在HTML里,一共可以使用三种方式来对界面上的标签设置样式。
行内样式
- 直接在HTML标签里使用style属性来给元素设置属性。
<div style="font-size:26px;font-weight:bold;color:red">一个div</span>
内部样式
- 在
<hesd>
标签里,添加 <style>
子标签,在子标签里通过选择器找到元素,再使用CSS属性给找到的元素添加样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<style>
span {
font-size:26px;
color:yellowgreen;
}
</style>
</head>
<body>
<span>一个span</span>
</body>
</html>
外部样式
- 将CSS样式写入到一个单独的.css文件,再在标签里,使用 标签,将 .css 文件里写入的样式导入到HTML文档里。
demo.css
span{
color:red;
}
demo.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<link rel="stylesheet" href="demo.css">
</head>
<body>
<span>一个span</span>
</body>
</html>
- 比较:三种CSS的使用各有优缺点,可以根据各自的特点,结合实际情况选择适合的方式
方式 | 优点 | 缺点 |
---|
行内样式 | 优先级高,如果样式重复,行内样式的优先级默认要高于其他两种形式 | 只能手动的给每一个标签设置样式,不能一次性给多个标签设置样式,重用率很低 |
内部样式 | 可以通过选择器同时给多个标签设置统一的样式 | 只能在当前 HTML 文档里使用,不能够跨文件使用 |
外部样式 | 可以通过选择器同时给多个标签设置统一的样,而且可以跨文件使用 | 会产生新的文件,不便于项目管理 |
CSS基本选择器
通配符选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
*{
color: aqua;
}
</style>
</head>
<body>
<div>一个div</div>
<span>一个span</span>
</body>
</html>
标签选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
div{
color: aqua;
}
span{
color: red;
}
</style>
</head>
<body>
<div>一个div</div> <br>
<span>一个span</span> <br>
<p>一个p</p>
</body>
</html>
类选择器
- 使用类选择前,需要先给符合一定规律的标签按照特点进行分类,给这些标签添加class属性,再通过class属性来找到对应的元素。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.xiyouji{
color: red;
}
.marvel{
color: blue;
}
.kenan{
color: orange;
}
</style>
</head>
<body>
<span class="xiyouji">孙悟空</span>
<span class="marvel">蜘蛛侠</span>
<span class="xiyouji">猪八戒</span>
<span class="kenan">柯南</span>
<span class="xiyouji">白骨精</span>
<span class="marvel">钢铁侠</span>
<span class="kenan">毛利小五郎</span>
</body>
</html>
id选择器
- 给指定的元素指定全文档唯一的id,然后通过id找到这个元素,给这个元素设置样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.xiyouji{
color: red;
}
.marvel{
color: blue;
}
.kenan{
color: orange;
}
#sunwukong,#kenan{
font-size:26px;
}
</style>
</head>
<body>
<span class="xiyouji" id="sunwukong">孙悟空</span>
<span class="marvel" id="super-man">蜘蛛侠</span>
<span class="xiyouji" id="zhubajie">猪八戒</span>
<span class="kenan" id="kenan">柯南</span>
<span class="xiyouji" id="baigujing">白骨精</span>
<span class="marvel" id="iron-man">钢铁侠</span>
<span class="kenan" id="maolixiawulang">毛利小五郎</span>
</body>
</html>
属性选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
span[title]{
color: red;
font-size:26px;
}
p[title]{
color: blue;
}
span[title="four"]{
color: green;
}
</style>
</head>
<body>
<span class="xiyouji" id="sunwukong" title="one">孙悟空</span>
<p class="marvel" id="super-man" title="two">蜘蛛侠</p>
<span class="xiyouji" id="zhubajie" title="three">猪八戒</span>
<span class="kenan" id="kenan">柯南</span>
<span class="xiyouji" id="baigujing" title="four">白骨精</span>
<span class="marvel" id="iron-man">钢铁侠</span>
<span class="kenan" id="maolixiawulang">毛利小五郎</span>
</body>
</html>
- 基本选择器之间:通配符选择器(*)< 标签选择器(标签名)< 类选择器(.类名)< id选择器(#id名)< 行内样式 < !important
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
*{
color: red;
}
p{
color: blue;
}
.kenan{
color: orange;
}
#maolixiawulang{
color: green;
}
</style>
</head>
<body>
<span class="xiyouji" id="sunwukong" title="one">孙悟空</span>
<span class="marvel" id="super-man" title="two">蜘蛛侠</span>
<span class="xiyouji" id="zhubajie" title="three">猪八戒</span>
<span class="kenan" id="kenan">柯南</span>
<span class="xiyouji" id="baigujing" title="four">白骨精</span>
<p class="marvel" id="iron-man">钢铁侠</p>
<p class="kenan" id="maolixiawulang">毛利小五郎</p>
</body>
</html>
CSS组合选择器
并集选择器
- 多个选择器之间使用逗号,进行分隔,表示给这多个选择器对应的元素设置样式。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.kenan,#sunwukong{
color: red;
font-size: 28px;
}
</style>
</head>
<body>
<span class="xiyouji" id="sunwukong" title="one">孙悟空</span>
<span class="marvel" id="super-man" title="two">蜘蛛侠</span>
<span class="xiyouji" id="zhubajie" title="three">猪八戒</span>
<span class="kenan" id="kenan">柯南</span>
<span class="xiyouji" id="baigujing" title="four">白骨精</span>
<span class="marvel" id="iron-man">钢铁侠</span>
<span class="kenan" id="maolixiawulang">毛利小五郎</span>
</body>
</html>
交集选择器
- 多个选择器写在一起,可以找到同时满足所有条件的标签。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
span.kenan{
color: blue;
font-size: 28px;
}
</style>
</head>
<body>
<span class="xiyouji" id="sunwukong" title="one">孙悟空</span>
<span class="marvel" id="super-man" title="two">蜘蛛侠</span>
<span class="xiyouji" id="zhubajie" title="three">猪八戒</span>
<span class="kenan" id="kenan">柯南</span>
<span class="xiyouji" id="baigujing" title="four">白骨精</span>
<p class="marvel" id="iron-man">钢铁侠</p>
<p class="kenan" id="maolixiawulang">毛利小五郎</p>
</body>
</html>
后代选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.father span{
color: blue;
font-size: 28px;
}
</style>
</head>
<body>
<div class="father">
<div class="son">
<span class="one">father里son里的span</span>
</div>
<span class="two">father里的p</span>
</div>
</body>
</html>
子元素选择器
- 选择器之间使用大于号>连接,表示直接子元素选择器。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.father span{
color: blue;
font-size: 28px;
}
.father > span{
color: red;
}
</style>
</head>
<body>
<div class="father">
<div class="son">
<span class="one">father里son里的span</span>
</div>
<span class="two">father里的p</span>
</div>
</body>
</html>
相邻兄弟选择器
- 多个选择器之间使用加号+连接,表示下一个相邻的兄弟元素选择器。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
.number+span{
color:blue;
}
</style>
</head>
<body>
<div class="number">234</div>
<span>一个span</span>
<p>第一个p</p>
<div class="number">456</div>
<p>第二个p</p>
<span>一个span</span>
</body>
</html>
伪类选择器
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
a {
background-color:green;
}
a:hover{
background-color:pink;
}
a:active{
background-color:yellow;
}
a:visited{
background-color:purple;
}
</style>
</head>
<body>
<a href="https://www.baidu.com">百度</a>
</body>
</html>
优先级权重计算
- 先比较id选择器的个数,如果id选择器个数一样,再比较类选择器个数,如果类选择器的个数一样,再比较标签选择器的个数
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
#father #son #one{
color:purple;
}
.father .son p{
color:green;
}
.father .son p.one{
color:blue;
}
#one{
color:red;
}
</style>
</head>
<body>
<div class="father" id="father">
<div class="son" id="son">
<p class="one" id="one">一个p</p>
</div>
</body>
</html>
CSS属性
文本相关属性
属性 | 取值 | 描述 |
---|
color | HTML 颜色值,可以是颜色名,例如red ; 也可以是十六进制的颜色,例如#FF0000 ; 还可以使用rgb 来生成颜色,例如rgb(255,0,0) | 用来设置文本的颜色 |
text-align | center /left /right /justify | 居中/左对齐/右对齐/分散两端对齐 |
text-indent | 数字/百分比 | 表示文字的缩进距离 |
line-height | 数字/百分比 | 用来设置行高 |
text-shadow | x-offset y-offset blur color | 用来给文字设置阴影效果 |
text-decoration | underline /overline /line-through | 设置文字的装饰样式 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
div{
color:red;
text-align:center;
text-shadow:3px -2px 1px green;
}
</style>
</head>
<body>
<div>
一个div
</div>
</body>
</html>
字体相关属性
属性 | 取值 | 描述 |
---|
font-family | 系统可用字体 | 用来设置文字的字体 |
font-size | 数字/百分比 | 用来设置字体的大小 |
font-style | normal /italic /oblique | 设置字体的样式,normal 表示普通样式,italic 和oblique 都表示斜体 |
font-weight | 关键字和数字 | 用来设置字体的粗细 |
font | 用来设置所有的字体相关属性 | 至少要设置font-size 和font-family 属性,而且这两个属性必须要按照顺序放在所有属性的最后面 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
div{
font:italic 700 26px/40px "华康方圆体W7";
}
</style>
</head>
<body>
<div>
一个div
</div>
</body>
</html>
背景相关属性
属性 | 取值 | 描述 |
---|
background-color | 颜色取值 | 用来设置背景颜色 |
background-image | url(图片路径) | 用来设置一张背景图片 |
background-size | 宽度 高度 | 用来设置背景图片的大小 |
background-repeat | repeat-x /repeat-y /repeat /no-repeat | 设置背景图片是否重复 |
background-position | 关键字或者px 值 | 用来设置背景图片的位置 |
background-attachment | fixed /scroll | 设置背景图片是否随着内容滚动 |
background | | 用来设置所有的背景相关属性 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>标签</title>
<style>
div{
width: 400px;
height: 400px;
background: blue url("01.webp") no-repeat fixed 10px 10px/200px 200px;
}
</style>
</head>
<body>
<div></div>
</body>
</html>
其他属性
属性 | 取值 | 描述 |
---|
border-collapse | separate /collapse | 只能用于表格元素,用来设置单元格边框是否合并,默认值是separate ,不合并 |
overflow | visible /hidden /scroll /auto | 用来规定当内容超出父元素的范围以后的表现方式 |
CSS布局
- CSS不仅可以给HTML的标签添加样式,同时还可以对HTML里的标签进行布局,修改标签的位置。HTML里常见的布局方式有三种:
- 盒子模型,通过设置元素的宽高,修改内外边距来布局
- 浮动,修改float属性对应的值,让元素向左或者向右浮动
- 定位,修改元素的position属性,将元素直接放在指定的位置上
盒子模型
属性名 | 取值 | 描述 |
---|
width | 数字 | 用来设置元素的宽度 |
height | 数字 | 用来设置元素的高度 |
padding | 数字 | 用来设置内边距 |
margin | 数字 | 用来设置外边距 |
border | 数字 样式 颜色 | 用来设置边框的线宽,颜色和样式 |
display | line /block /inline-block /none | 用来修改元素的显示方式 |
box-sizing | conten-box /border-box | 用来规定边框和padding 是否会撑大盒子 |
浮动
属性名 | 取值 | 描述 |
---|
float | left /right | 用来设置元素向左和向右浮动 |
定位
属性 | 取值 | 描述 |
---|
position | static | 元素框正常生成 |
position | relative | 可以修改left 和right 属性让元素框偏移某个距离,元素原本所占的空间仍保留 |
position | absolute | 元素框从标准文档流完全删除,并相对于其父元素定位 |
position | fixed | 固定定位 |
left | 数字 | 设置元素向左的偏移像素 |
right | 数字 | 设置元素向右的偏移像素 |