什么是CSS
CSS(Cascading Style Sheet ):级联样式表,表现HTML或XHTML文件样式的计算机语言。
CSS的优势:
- 内容与表现分离
- 网页的表现统一,容易修改
- 丰富的样式,使得页面布局更加灵活
- 减少网页的代码量,增加网页的浏览速度,节省网络带宽
- 运用独立于页面的CSS,有利于网页被搜索引擎收录
基本语法:
选择器{
声明1;
声明2
}
CSS的最后一条声明后的“;”可写可不写,但是,基于W3C标准规范考虑,建议最后一条声明的结束“;” 都要写上。
style标签
css样式写在html的styp标签里。例如:
<style type="text/css">
h1 {
font-size:12px;
color:#F00;
}
</style>
HTML引入样式
HTML样式的优先级:行内样式 > 内部样式 > 外部样式(就近原则)
行内样式
使用style属性引入CSS样式
<h1 style="color:red;">style属性的应用</h1>
内部样式
CSS代码写在 <head>
的 <style>
标签中
<style type="text/css">
...
</style>
优点:方便同页面中修改样式。
缺点: 不利于多个页面间共享复用代码及维护,对内容与样式的分离不够彻底。
外部样式
CSS代码保存在扩展名为 .css
的样式表中,HTML文件引用扩展名为 .css
的样式表有两种方式。
链接式
href:文件路径
rel:使用外部样式表
type:文件类型
<link href="style.css" rel="stylesheet" type="text/css" />
导入式
在内部样式加入如下代码即可:
<style type="text/css">
@import url("css/index.css");
</style>
链接式于导入时的区别:
- 标签属于XHTML,@import是属于CSS2.1
- 使用链接的CSS文件先加载到网页当中,再进行编译显示
- 使用@import导入的CSS文件,客户端显示HTML结构,再把CSS文件加载到网页当中
- @import是属于CSS2.1的特有,对不兼容的浏览器无效
CSS选择器
基本选择器
不遵循就近原则,一般都遵循ID选择器 > class类选择器 > 标签选择器的优先级。
- 标签选择器:
<p> {...}
- 类选择器:
.class {...}
- ID选择器:
#id {...}
- 标签选择器直接应用于HTML标签
- 类选择器可在页面中多次使用
- ID选择器在同一个页面中只能使用一次
高级选择器
层次选择器
选择器 | 类型 | 功能描述 |
---|---|---|
E F | 后代选择器 | 选择匹配的F元素,且匹配的F元素被包含在匹配的*E元素内 |
E>F | 子选择器 | 选择匹配的F元素,且匹配的F元素是匹配的E元素的子元素 |
E+F | 相邻兄弟选择器 | 选择匹配的F元素,且匹配的F元素紧位于匹配的E元素后面 |
E~F | 通用兄弟选择器 | 选择匹配的F元素,且位于匹配的E元素后的所有匹配的F元素 |
结构伪类选择器
使用
E F:nth-child(n)
和E F:nth-of-type(n)
的关键点:
E F:nth-child(n)
在父级里从一个元素开始查找,不分类型
E F:nth-of-type(n)
在父级里先看类型,再看位置
属性选择器
E[attr]
:选择匹配具有属性attr的E元素
E[attr=val]
:选择匹配具有属性attr的E元素,并且属性值为val(其中val区分大小写)
E[attr^=val]
:其属性值以val开头的任意字符串
E[attr$=val]
:其属性值以val结尾的任意字符串
E[attr*=val]
:其属性值中任意位置相匹配
常用属性
字体属性
字体属性的顺序:字体风格→字体粗细→字体大小→字体类型。
p span{font:oblique bold 12px "楷体";}
-
字体风格(
font-style
)- normal:默认值
- Italic、oblique:斜体
-
字体粗细(
font-weight
)-
normal:默认值
-
bold:粗体字体
-
bolder:更粗的字体
-
lighter:更细的字体
-
也可使用100-900书写,bold等同于700
-
-
字体大小(
font-size
)- 单位为px
-
字体类型(
font-family
)- 同时声明多种字体,字体之间用英文逗号分隔
- 如果写的是中文字体,则需要用双引号引起来,如果英文字体之间有空格的话,也需要将字体用双引号引起来
文本样式
属性名 | 解释 | 应用 |
---|---|---|
font-size | 字体大小 | “楷体” |
font-weight | 字体粗细 | 123px |
rgb | 三原色 | rgb(0,255,255) |
rgba | a:透明度 | rgba(0,0,255,0.5) |
text-align | 对齐方式 | Left、Right、Center、Justify(两端) |
text-indent | 首行缩进 | em或px |
text-height | 行高 | px |
text-decoration | 文本装饰 | None、Underline(下划线)、Overline(上划线)、Line-through(删除线) |
vertical-align | 垂直对其方式 | Middle、Top、Bottom |
text-shadow | 文本阴影 | red 12px 12px 12 |
超链接伪类样式
样式 | 说明 |
---|---|
link | 未单击访问时超链接样式 |
visited | 单机访问后超链接样式 |
hover | 鼠标悬浮其上的超链接样式 |
active | 鼠标单击未释放的超链接样式 |
列表样式
List-style
:列表项标记的类型
样式 | 说明 |
---|---|
none | 无标记符号 |
disc | 实心圆、默认类型 |
circle | 空心圆 |
square | 实心正方形 |
decimal | 数字 |
背景
背景颜色
Background-color
:transparent(透明)
背景图像
Background-image
:url(图片路径)
背景重复方式
Background-repeat
重复方式 | 说明 |
---|---|
repeat | 沿水平和垂直两个方向平铺 |
no-repeatn | 不平铺,即只显示一次 |
repeat-x | 只沿水平方向平铺 |
repeat-y | 只沿垂直方向平铺 |
背景定位
Background-position
属性值 | 说明 |
---|---|
Xpos Ypos | 单位:px,X表示水平位置,Y表示垂直位置 |
X% Y% | 使用百分比表示背景的位置 |
X、Y方向关键词 | 水平方向的关键词:left、center、right ;垂直方向的关键词:top、center、bottom |
设置背景
Background
: 背景颜色 背景图片 背景定位 背景重复方式
background:#C00 url(../image/arrow-down.gif) 205px 10px no-repeat;
背景尺寸
Background-Size
属性值 | 描述 |
---|---|
auto | 默认值,使用背景图片保持原样 |
percentage | 当使用百分值时,不是相对于背景的尺寸大小来计算的,而是相对于元素宽度来计算的 |
cover | 整个背景图片放大填充了整个元素 |
contain | 让背景图片保持本身的宽高比例,将背景图片缩放到宽度或者高度正好适应所定义背景的区域 |
线性渐变
线性渐变 :颜色沿着一条直线过渡:从左到右、从右到左、从上到下等
径向渐变 :圆形或椭圆形渐变,颜色不再沿着一条直线变化,而是从一个起点朝所有方向混合
Linear-gradient
:线性渐变(渐变方向,第一个颜色,第二个颜色……)
渐变方向:
渐变方向 | 说明 |
---|---|
to top | 从下到上 |
to bottom | 从上到下 |
to left | 从右到左 |
to right | 从左到右 |
to top left | 从右下到左上 |
to top right | 从左下到右上 |
to bottom left | 从右上到左下 |
to bottom right | 从左上到右下 |
边框
顺序一般没有强制要求,一般来说:粗细–颜色–样式。
边框颜色
Border-color
:上 右 下 左
边框粗细
Border-width
属性值 | 说明 |
---|---|
thin | 细的边框 |
medium | 默认值,2px |
tthick | 粗的边框 |
Xpx | 像素值 |
边框样式
Border-style
属性值 | 说明 |
---|---|
none | 无边框 |
dotted点 | 线边框 |
dashed | 虚线边框 |
silid | 实线边框 |
圆角边框
border-radius
盒子阴影
box-shadow
- inset(内阴影,否则不写)
box-shadow: inset x-offset y-offset blur-radius color;
边距
外边距
Margin
- 遵循上右下左的顺序
- Auto为特殊值,居中
如果要使用外边距居中效果,则需要当前元素为块元素以及有固定宽度。
内边距
Padding
准则与外边距一致。
Display
属性值 | 说明 |
---|---|
block | 块级元素 |
inline | 内联元素 |
inline-block | 行内块元素 |
none | 隐藏 |
浮动
Float
属性值 | 说明 |
---|---|
Left | 左边 |
Right | 右边 |
None | 默认 |
如果进行浮动,会脱离标准文档流,没有设置浮动的文字,会环绕在浮动元素周围进行显示,这是最初创造浮动的目的,浮动的文字在没有设置宽度的时候,会占满一行
Display和float的区别
Display:inline-block
- 可以让元素排在一行,并且支持宽度和高度,代码实现方便
- 位置不可控制
Float
- 可以让元素排在一行并且支持宽度和高度,可以决定排列方向
- Float在浮动之后元素脱离标准文档流,会对周围的元素产生影响,必须在父级清除浮动样式
定位
Static
:默认值,没有定位
Relative
:相对定位
- Left为正时,向右移动。top为正时,向下移动
- 设置相对定位的盒子会相对它原来的位置,通过指定偏移,到达新的位置
- 设置相对定位的盒子仍在标准文档流中,它对父级盒子和相邻的盒子都没有任何影响
- 设置相对定位的盒子原来的位置会被保留下来
- 使用场景:一般很少自己单独使用,都是配合绝对定位使用,为绝对定位创造定位父级而又不设置偏移量
Absolute
:绝对定位
- 使用绝对定位的元素会以它最近的一个“已经定位”的“祖先元素”为基准进行偏移
- 如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位
- 绝对定位的元素从标准文档流中脱离,这意味着它们对其他元素的定位不会造成影响
- 元素位置发生偏移后,它原来的位置不会被保留下来
- 使用场景:下拉菜单、焦点图轮播、弹出数字气泡等
Fixed
:固定定位
- 相对浏览器窗口来定义
- 偏移量不会随滚动条的移动而移动
- 使用场景:左右两边固定广告、返回顶部图标、吸顶导航栏等
Z-index属性
调整元素定位时重叠层的上下位置
- Z-index属性值:整数,默认值为0
- 设置了
position
属性时,z-index属性可以设置各元素之间的重叠高低关系 - Z-index值大的层次位于其值小的层上方
设置透明度
Opacity
:x:x值为0~1,值越小越透明Filter:alpha(opacity=x)
:x值为0~100,值越小越透明
CSS变形
transform
效果:平移、旋转、缩放、倾斜效果
平移函数
translate(tx,ty)
:平移函数,基于X、Y坐标重新定位元素的位置。
- Tx:X轴(横坐标)移动的向量长度
- Ty:Y轴(纵坐标)移动的向量长度
- 只有一个值的时候,表示水平位移;如果想只设置垂直位移,就必须设置第一个参数为0
- 平移只能移动块元素
- 如果只想设置一个方向上的位移,还可以使用TranslateX(tx)和TranslateY(ty)
旋转函数
rotate(a)
- 参数a单位使用deg
- 取正值时相对原来中心顺时针转
缩放函数
scale(sx,sy)
:可以只接收一个值,也可以接收两个值,只有一个值时,第二个值默认和第一个值相等。
倾斜函数
skew(ax,ay)
:倾斜的单位为deg(°)
过度
transition
:呈现的是动画转换的过程,单位:s。
过渡功能更像是一种“黄油”,通过一些简单动作触发样式平滑过渡
语法格式:
Transition:[过渡或动态模拟的CSS属性 完成过渡所需要的时间 指定过渡函数 过渡开始出现的延迟时间]
过渡属性
定义转换动画的CSS属性名称。
属性值 | 说明 |
---|---|
ident | 指定CSS属性(width、height等) |
all | 指定所有元素属性 |
过渡动画函数
指定浏览器的过渡速度,以及过渡期间的操作进展情况。
属性值 | 说明 |
---|---|
ease | 由快到慢(默认值) |
linear | 速度均衡(匀速运动) |
ease-in | 速度越来越快(渐显效果) |
ease-out | 速度越来越慢(渐隐效果) |
ease-in-out | 速度先加速再减速(渐显渐隐效果) |
触发机制
:hover
:active
:focus
:checked
总结
表单
链接标签
target:_self
、_blank
<a href="path" target="目标窗口位置">链接文本或图像</a>
input
<input type="..." name="..." value="..." />
type:text、password、checkbox(复选框)、radio(单选框)、submit、reset(复位)、file、hidden、email、url、、number、range(滑块)、search、image和button,默认为text。
maxlength:type为text 或 password 时,输入的最大字符数
checked:type为radio或checkbox时,指定按钮是否是被选中
step:type为number或range时,合法的数字间隔
**required:**规定文本框填写内容不能为空,否则不允许用户提交表单
**placeholder:**提示语默认显示,当文本框中输入内容时提示语消失
下拉列表框
`
… … `selected:指定按钮是否是被选中
表格
表格合并:rowspan(跨行)、colspan(跨列)
文本域
<textarea name="showText" cols="x" rows="y">文本内容 </textarea >
媒体元素
controls:提供暂停的按键
autoplay:自动播放
视频:<video src="视频路径" controls autoplay></video>
音乐:<audio src="音频路径" controls></video>
度量
<meter value="3" min="0" max="10">3/10</meter>
CSS
样式:
h1 style="color:red;"></h1>
<style type="text/css">...</style>
<link href="style.css" rel="stylesheet" type="text/css" />
<style type="text/css">@import url("css/index.css");</style>
文本
字体属性的顺序:字体风格→字体粗细→字体大小→字体类型
font: font-style font-weight font-size font-family
背景
边线
border: 1px dashed red;
居中对齐
网页居中对齐:margin:0px auto;
文本水平对齐:text-align: center;