CSS总结
CSS是级联样式表(Cascading Style Sheets)的缩写。
CSS的核心概念
css的核心概念是对html的元素进行装饰,即对同样的元素进行同样的装饰。
此处的装饰包括对页面的布局,元素的距离,大小,颜色,显示方式,透明度,倾斜等等
CSS语法
CSS的基础使用规则是由两个部分组成,即 对什么操作什么
或者用成体系一点的说法叫
选择器
+{声明}
- 选择器,即需要改变样式的对象
- 声明是包含在大括号内的一条或多条
属性:值
,多条用;
隔开
选择器
选择器也有所分类,id or class
id选择器
id选择器前面有#号
#man{
color:red;
}
这句话是指让id为man的元素变为红色
class选择器
class选择器前有`.`号
.center{
text-align:center;
}
.red{
color:red;
}
示意,只要某元素的class符合条件,即执行装饰规则
CSS使用方法
外部样式表
<link rel="stylesheet" type="text/css" href="mycss.css">
在html文件中的<head>
部分中进行导入,此处导入的链接在href后的mycss.css中,表示为使用与html同级目录下的mycss.css文件中的外部样式表进行html中元素的包装。
内部样式表
<style>
h1 {
color: red;
}
p {
text-align: center;
}
</style>
在html文件中的<head>
部分中进行插入,此处利用<style>
标签,将内部样式表插入在html中,使得对此html中的元素进行装饰。
内联样式
<h1 style="color:blue;">I am blue</h1>
内联样式比之前两种最不灵活,只针对具体某处进行样式制定,可复用性低下。
样式优先级
- 内联样式
- 内部样式表或外部样式表
- 浏览器缺省样式
颜色
颜色在网页中起到基垫作用,一个好的网页配色可以让网页变得高端大气上档次。
我们在给元素设置颜色时,可以使用
- 颜色名称
- 颜色RGB16进制
- 颜色RGBA(红绿蓝透明度)
以上三种方式来设置前景色或者背景色
<!-- 颜色名称 -->
<h3 style="background-color:gray">gray</h3>
<h3 style="background-color:green">green</h3>
<!-- 颜色值 #xx(red)xx(green)xx(blue)三个分量0~255 -->
<h3 style="background-color:#0000ff">#0000ff</h3>
<h3 style="background-color:#0099ff">#0000ff</h3>
<!-- RGBA -->
<h3 style="background-color:rgba(0,0,255,0.5)">rgba(0,0,255,0.5)</h3>
<h3 style="background-color:rgba(0,0,255,0.3)">rgba(0,0,255,0.3)</h3>
<!-- 加上文字颜色 -->
<!-- RGBA -->
<h3 style="background-color:rgba(20,255,20,0.3);color:rgba(255,255,255,0.9)">背景:rgba(20,255,20,0.3)<br>字:rgba(255,255,255,0.9)</h3>
尺寸
元素大小使用height
和width
分别设置元素的长和宽。
常用单位为px
和百分比
例如:
<h3 style="background-color:rgba(0,0,255,0.5);width: 100%;
height: 200px;text-align: center">rgba(0,0,255,0.5)</h3>
<h3 style="background-color:rgba(0,0,255,0.3); height: 100px;
width: 500px;">rgba(0,0,255,0.3)</h3>
对齐
通常对不同方向的对齐采用不同方案
文本横对齐
: text-align: center
left、center、right
盒子模型
html元素可以看作一个盒子,他的样式可以在各层进行加工,包括
- Content 内容(文本、图片等)
- Padding 内边距(内容与边框的距离)
- Border 边框(默认无大小)
- Margin 外边距(边框外到其他元素距离)
选择该元素真实占用的宽度为
左外边距 + 左边框宽度 + 左内边距 + 内容宽度 + 右内边距 + 右边框宽度 + 右外边距
故width
属性设置宽度只修改了内容部分宽度
其中,padding和margin都是完全透明的没有背景颜色,
border可以增加颜色并改变其样式
边距与边框
无论边框、内边距还是外边距,它们都有上下左右四个方向。
所以设置上来说都可以使用
- xxx-top
- xxx-bottom
- xxx-right
- xxx-left
来对应设置其边距
同时,border还可以设置样式,包括其
- 宽度
- 线条样式
- 颜色
<div style="border:5px dotted green;background-color:rgba(0,0,255,0.2);color:gray">边框</div>
定位
position
用于对元素定位,它可以
- static 静态
- relative 相对
- fixed 固定
- absolute 绝对
static 静态
默认定位方式,先上后下,从左到右的方式排布出现的元素
relative 相对
这是对其原本静态位置偏移一部分
<div style="position: relative;
left: 60px;
top: 40px;
background-color: rgb(173, 241, 241);">我偏移了正常显示的位置。去掉我的样式对比看看?</div>
fixed 固定
此处的固定指的是相对浏览器可以看见的部分,也就是说,会固定在某个位置,无论你怎么拖动滚动条
absolute 绝对定位
设置absolute
属性后,该元素对最近的非static父元素偏移,最早可以追溯到<body>
<div style=" position: relative;
width: 400px;
height: 200px;
border: 3px solid rgb(87, 33, 173);">这是父元素,有 relative 定位属性
<div style="position: absolute;
top: 80px;
right: 5px;
width: 200px;
height: 100px;
border: 3px solid rgb(218, 73, 16);">
这是子元素,有 absolute 定位属性
</div>
</div>
<div style=" position: relative;
width: 400px;
height: 200px;
left:100px;
border: 3px solid rgb(87, 33, 173);">这是父元素,有 relative 定位属性
<div style="position: absolute;
top: 80px;
right: 5px;
width: 200px;
height: 100px;
border: 3px solid rgb(218, 73, 16);">
这是子元素,有 absolute 定位属性
</div>
</div>
溢出
当元素内容过多,所指定区域不够排布,通过overflow
属性处理,其有以下属性:
- visible 默认值,溢出部分不被裁剪,在区域外面显示
- hidden 裁剪溢出部分且不可见
- scroll 裁剪溢出部分,但提供上下和左右滚动条供显示
- auto 裁剪溢出部分,视情况提供滚动条
同时我们还可以单独对上下或左右进行设置,即使用属性
overflow-y
、overflow-x
分别制定上下和左右的溢出处理
浮动
浮动即将一个元素进行偏好设置,希望他能够出现在哪里,将剩下的元素围绕着偏好的进行标准排布。
使用float
属性来进行设置。例如 float:right;
不透明度
前面在颜色的地方使用了rgba来调颜色,其中a就是控制不透明的。
而对所有元素的透明度进行调节又专门的属性opacity
常用于图片,值在[0.0~1.0]之间,越低越透明
进阶——组合选择器
后代选择器
.tgm p {
background-color: yellow;
}
即以空格分隔的组合选择器,.tgm p
代表在具有.tgm
类的元素下的所有p
都有此修饰。
子选择器
.tgm > p {
background-color: yellow;
}
也称为直接后代选择器,以>
作为分隔,如:.tgm > p
代表在有.tgm
类的元素内的直接<p>
元素才有修饰。
并行选择器
此处不是组合选择器,只是当有多种类型或者多个类具有同样的属性,可以使用,
分割,让多个类拥有同样的属性。
伪类和伪元素
主要是对元素变化的特定状态或位置进行操作,此处我们采用了老师的案例进行解释,笔者仅使用过链接访问前后样式改变。
比如某些情况:
- 鼠标移到某元素上变换背景颜色
- 超链接访问前后访问后样式不同
- 离开必须填写的输入框时出现红色的外框进行警示
- 保证段落的第一行加粗,其它正常
- …
语法
/* 选择器后使用 : 号,再跟上某个伪类/伪元素 */
selector:pseudo-class/pseudo-element {
property:value;
}
举例
a:link {color:#FF0000;} /* 未访问的链接 */
a:visited {color:#00FF00;} /* 已访问的链接 */
a:hover {color:#FF00FF;} /* 鼠标划过链接 */
/* 鼠标移到段落则改变背景颜色 */
p:hover {background-color: rgb(226, 43, 144);}
p:first-line{color:blue;} /* 段落的第一行显示蓝色 */
p:first-letter{font-size: xx-large;} /* 段落的第一个字超大 */
h1:before { content:url(smiley.gif); } /* 在每个一级标题前插入该图片 */
h1:after { content:url(smiley.gif); } /* 在每个一级标题后插入该图片 */
在这里 before和after属性使用可能会有独特的效果。