CSS
- [CSS(Cascading Style Sheets)级联样式表](#CSS(Cascading Style Sheets)级联样式表)
- 选择器
- 字体属性
- 背景属性
- 文本属性
- 表格属性
- 关系选择器
- [盒子模型(box model)](#盒子模型(box model))
- [弹性盒子模型(flex box)](#弹性盒子模型(flex box))
- 浮动
- 定位
- CSS3的新特性
- 动画
- 呼吸效果
- 媒体查询
- 雪碧图
- 字体图标
CSS(Cascading Style Sheets)级联样式表
网页的变美指南,后缀名.css
语法
由两部分构成:选择器和一条或者多条声明(样式)
javascript
//内部样式
<style>
<h1>{
color:blue;
font-size:12px;
}
</style>
//内联样式
<h2 style="background-color:red;">这是一个标题</h2>
//外部样式
<link rel="stylesheet" href="./public.css">
选择器
全局选择器
一般用于初始化样式
javascript
*{
margin:0;
padding:0;
}
元素选择器
描述一类的标签
span p 等标签
所有的标签都可以是选择器
类选择器
规定用圆点来定义,针对想要的标签使用。灵活
javascript
<h2 class="oneclass">你好</h2>
.oneclass{
color:red;
}
类选择器可以被多种标签使用,类名不能用数字开头,同一个标签可以使用多个类选择器,用空格分开
javascript
<h2 class="oneclass size">你好</h2>
.oneclass{
color:red;
}
.size{
font-size:30px;
}
ID选择器
针对某一个特定标签使用,只能使用一次(不能重复使用),css中的ID选择器以#来定义
javascript
<p id="mytitle">你好</p>
#mytitle{
color:red;
font-size:30px;
}
ID是唯一的;ID不能以数字开头
合并选择器
语法:选择器1,选择器2,...{}
javascript
.header, .footer{
color:red;
font-size:30px;
}
p,h3{
color:red;
font-size:30px;
}
选择器的优先级
CSS中,权重用数字衡量,元素选择器的权重为1,class选择器的权重为10,id选择器的权重为100,内联样式权重为1000。
优先级排名:(行内样式)内联样式>id选择器>class选择器>元素选择器
字体属性
字体颜色
1、color
html
div{color:red;}
div{color:#ff0000;}
div{color:rgb(255,0,0);}
div{color:rgba(255,0,0,.5);}
2、font-size 字体大小
chrome浏览器接受最小字体为12px
3、font-weight 设置文本粗细
- bold:定义粗体字符
- bolder:定义更粗的字符
- lighter:定义更细的字符
- 100-900:定义由细到粗,700等同于bold
4、font-style 字体样式
italic:定义斜体
normal:默认值
5、font-family
指定字体,每个值用逗号隔开
javascript
font-family:Microsoft YaHei,"Simun","simHei";
背景属性
background-color属性
设置背景颜色
javascript
<div class="box"></div>
.box{
width: 300px;
height:300px;
background-color:palevioletred;
}
background-image属性
设置背景图片
javascript
<div class="box"></div>
.box{
width: 300px;
height:300px;
background-image:url("images/1.jpg");
}
background-repeat属性
设置如何平铺背景图像
repeat:默认值
repeat-x:只向水平方向平铺
repeat-y:只向垂直方向平铺
no-repeat:不平铺
javascript
<div class="box"></div>
.box{
width: 300px;
height:300px;
background-image:url("images/1.jpg");
}
background-size属性
设置背景图像大小
length:设置背景图片的高度和宽度,第一个值宽度,第二个值高度,若只设置一个,第二个值auto
percentage:计算相对位置区域的百分比,第一个值高度,如果只设置一个,第二个值为auto
cover:保持图片纵横比并将图片缩放成完全覆盖背景区域的最小大小
contain:保持图片纵横比并将图片缩放成完全覆盖背景区域的最大大小(可能不会填满整个容器)
javascript
<div class="box"></div>
.box{
width: 300px;
height:300px;
background-image:url("images/1.jpg");
background-repeat:no-repeat;
background-size:1200px 1200px;
//background-size:50% 100%;
//background-size:cover;
//background-size:contain;
}
background-position属性
设置背景图像的起始位置,默认值是0% 0%
left top:左上角
left center:左中
left bottom:左下
right top:右上角
right center:右中
right bottom:右下
center top:中上
center center:中中
center bottom:中下
javascript
<div class="box"></div>
.box{
width: 300px;
height:300px;
background-image:url("images/1.jpg");
background-repeat:no-repeat;
background-size:1200px 1200px;
background-position:center;
}
文本属性
text-align
指元素文本的水平对齐方式
- left:居左
- right:居右
- center:居中
javascript
h1{text-align:left;}
h2{text-align:right;}
h3{text-align:center;}
text-decoration
规定添加到文本的修饰,下划线、上划线、删除线
- underline:下划线
- overline:上划线
- line-through:删除线
javascript
h1{text-decoration:underline;}
h2{text-decoration:overline;}
h3{text-decoration:line-through;}
text-transform
控制文本属性的大小写
- capitalize:定义每个单词大写
- uppercase:定义全部字母大写
- lowercase:定义全部字母小写
javascript
h1{text-transform: capitalize;}
h2{text-transform: uppercase;}
h3{text-transform: lowercase;}
text-indent
控制文本首行缩进
javascript
p{text-indent:50px;}
可以是负值
表格属性
表格边框
javascript
table, td{
border: 1px solid red;
}
折叠边框
javascript
table{border-collapse: collapse;}
table, td{border: 1px solid red;}
表格宽度和高度
javascript
table{
border-collapse: collapse;
width: 500px;
height: 300px;
}
表格文字对齐
表格的中文本对齐和垂直对齐属性
javascript
td{
text-align: right;
vertical-align: top;//center,bottom
}
表格填充
控制空格之间的边框,
javascript
td{
padding:20px;
}
表格颜色
控制空格之间的边框,
javascript
table,td,tr{border:1px solid green;}
td{
padding:20px;
background-color:green;
color:white;
}
关系选择器
后代选择器
选择所有被E元素包含的F元素,中间用空格隔开
javascript
E F{}
ul li{color: red;}
子代选择器
选择所有作为E元素的直接子元素F,对更深一层的元素不起作用,用>表示。
javascript
E>F{}
div>p{color: red;}
相邻兄弟选择器
选择紧跟E元素后的F元素,用加号表示,选择相邻的第一个兄弟元素,只能向下选择。
javascript
E+F{}
h3+p{color: blue;}
通用兄弟选择器
选择E元素之后的所有兄弟元素,用~隔开
javascript
E~F{}
h3~p{color: blue;}
盒子模型(box model)
CSS
margin:外边距(盒子本身)
border:围绕内边距和内容外的边框
padding:内边距,内边距是透明的(第一个值代表上下,第二个值代表左右)
content:实际内容,盒子的内容,显示文本和图像
弹性盒子模型(flex box)
设置display属性为flex定义为弹性容器
javascript
<div class="container">
<div class="box1"></div>
<div class="box2"></div>
</div>
.container{
display: flex;
width: 500px;
height: 500px;
background-color: gray;
}
flex默认水平排列
flex-direction属性
指定弹性子元素在父容器中的位置
javascript
flex-direction:row;//row-reverse,column,column-reverse
row:水平排列
row-reverse:水平翻转,靠右摆放
column:垂直摆放
justify-content属性
内容对齐,垂直方向
javascript
justify-content:flex-start|flex-end|center;//靠上、靠下、居中
align-items属性
水平方向,居左、居中、居右
javascript
justify-content:flex-start|flex-end|center;//靠上、靠下、居中
javascript
//一个子盒子在父盒子中上下左右都居中
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
子元素上的属性
flex-grow/flex
权重
浮动
设置浮动
float属性定义元素在哪个方向移动,任何元素都可以浮动
left:元素向左浮动
right:元素向右浮动
left浮动可以让元素水平摆放
当容器不足以横向摆放时,会在下一行摆放。
清除浮动
浮动副作用
当元素设置浮动时后,该元素会脱离文档流并且向左或向右浮动
1、浮动元素会造成父元素高度塌陷
2、后续元素会收到影响
解决方案
- 父元素设置高度
- 受影响的元素增加clear属性
- overflow清除浮动
- 伪对象方式
1、父元素设置高度
如果父元素高度塌陷,那么给父元素设置高度,撑开元素本身大小
2、受影响的元素增加clear属性
javascript
clear:both
3、overflow清除浮动(常用)
在父级标签添加overflow:hidden; clear:both;
4、伪对象方式
为父标签添加伪类after,设置空内容,并使用clear:both
这种情况父布局不能设置高度,代码如下:
javascript
.container::after{
content:"";
display:block;
clear:both;
}
定位
position属性,指定元素的定位类型
relative:相对定位
absolute:绝对定位
fixed:固定定位
绝对定位和固定定位会脱离文档流,只有相对定位不脱离文档流
设置定位之后,可以使用四个方向值进行调整位置:left、top、right、bottom
相对定位
javascript
div{
width: 200px;
height: 200px;
background-color: red;
position: relative;
left: 200px;
right: 200px;
}
绝对定位
脱离文档流调整位置
javascript
div{
width: 200px;
height: 200px;
background-color: red;
position: absolute;
left: 200px;
top: 100px;
}
每设置一个绝对定位就是一层
固定定位
javascript
div{
width: 200px;
height: 200px;
background-color: red;
position: absolute;
left: 200px;
top: 100px;
}
固定定位不会随着页面滚动而滚动,固定位置
设置定位之后,相对定位和绝对定位是相对于具有定位的父级元素进行位置调整,如果父级元素不存在定位,则继续向上寻找,直到顶层文档。
(相对于父级文档移动,如果父级元素没有定位,则相对于文档进行移动)
Z-index
设置元素的堆叠顺序,可以调整覆盖的顺序,大的覆盖小的
CSS3的新特性
圆角
使用border-radius属性,可以给任何元素制作"圆角"
一个值:四个圆角值相等;(常用)
两个值:第一个值为左上角与右下角,第二个值为右上角和左下角;
三个值:第一个值为左上角,第二个值为右上和左下角,第三个值为右下角;
四个值:左上角,右上角,右下角,左下角
阴影
box-shadow向框添加一个或多个阴影
box-shadow:h-shadow v-shadow blur color;
h-shadow:水平阴影的位置
v-shadow:垂直阴影的位置
blur:模糊距离
color:阴影颜色
.box{
width: 200px;
height: 200px;
background-color: red;
position: relative;
left: 200px;
right: 200px;
box-shadow: 10px 10px 20px rgba(0, 0, 0, 0.5);
}
动画
使元素从一个样式逐渐变成另一种样式的效果
使用百分比规定变化发生的时间,或者使用关键词"from"和"to",相当于0%和100%
@keyframes创建动画
@keyframes name{
}
name:动画名称
percent:百分比值,可以添加多个百分比值
animation执行动画
animation:name duration timing-function delay iteration-count direction;
-
name:设置动画名称
-
duration:动画持续时间
-
timing-function:动画效果的速率
ease:逐渐变慢
linear:匀速
ease-in:加速
ease-out:减速
ease-in-out:先加速后减速
-
delay:设置动画开始的时间(延迟执行)
-
iteration-count:设置动画循环的次数,infinite为无限次数的循环
-
direction:动画的方向
normal:向前播放
alternate:动画播放在第偶次向前播放,第奇次向反方向播放
-
animation-play-state:控制动画的播放状态,running代表播放,paused代表停止播放
//鼠标放上暂停
div:hover{
animation-play-state: paused;
}
呼吸效果
@keyframes breathe {
0%{
background-color: red;
opacity: 0.2;/*透明度*/
box-shadow: 0 1px 2px rgba(255, 255, 255, 0.1);
}
50%{
width: 400px;
background-color: green;
}
100%{
width: 200px;
background-color: blue;
}
}
媒体查询
根据设备的大小自动识别加载不同的样式。
设置meta标签
使用设备的宽度最为视图宽度并禁止初始的缩放,在head标签里加入meta标签。
<meta name="viewport" content="width=device-width, initial-scale=1.0">
width=device-width:宽度等于当前设备的宽度
initial-scale初始的缩放比例,默认值为1.0
maximum-scale:允许用户缩放到的最大比例(默认设置为1.0)
user-scalable:用户是否可以手动缩放(默认no)
媒体查询语法

雪碧图
CSS Sprite:CSS精灵图、CSS雪碧图,是一种网页图片应用处理方式。允许将一个页面涉及到的所有零星图片都包含到一张大图去。
优点:减少了图片的字节,减少网页http的请求,从而大大提高页面的性能。
用background-image引入背景图片,然后通过background-position把背景图片移动到自己需要的位置。
字体图标
阿里字体图标库,iconfont.cn