层叠样式表(英文全称:Cascading Style Sheets)是一种用来表现HTML或 XML等文件样式的计算机语言。CSS不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。
语法结构:
选择器 { 属性 : 属性值 ; 属性 : 属性值 ; 属性 : 属性值 ; }
三种引入方式:
<div style="width: 100px; height: 100px; background-color: red">CSS的第一种装饰方式div>
<head>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
}
style>
head>
<body>
<div>CSS的第二种装饰方式div>
body>
file: my.css
div {
width: 100px;
height: 100px;
background-color: red;
}
file: my.html
"stylesheet" type="text/css" href="my.css" />
CSS的第三种装饰方式
注意页面css样式通常都应该写在单独的css文件中
匹配文档中所有与标签名匹配的标签:如div{}会匹配文档中全部div,span{}会匹配文档中所有span
div {
background-color: yellow;
}
匹配文档中所有拥有class属性且属性值为red的标签:如 均会被匹配
.red {
color: red;
}
注意:
样式类名不要用数字开头(有的浏览器不认)。
标签中的class属性如果有多个,要用空格分隔。
匹配文档中所有拥有id属性且属性值为div的标签:如
均会被匹配,id选择器必须保证单文档的唯一性#div {
text-align: center;
}
匹配文档中所有标签:通常指html、body及body中所有显示类的标签
* {
border: solid;
}
分组,不同的选择器可以共用一个样式
div, p, span{
color: red;
}
嵌套,后代选择器与标签组合使用
div p,span{
color: red;
}
子代选择器用>连接
div > span {
color: red;
}
后代选择器用空格连接
.sup .sub {
color: red;
}
相邻选择器用+连接 对下不对上
.d1 + .d2 {
color: red;
}
兄弟选择器用~连接 对下不对上
.d1 ~ .d3 {
color: red;
}
选择器 | 权重 |
---|---|
通配 | 1 |
标签 | 10 |
类、属性 | 100 |
id | 1000 |
!important | 10000 |
选择器 | 功能描述 |
---|---|
[ attr ] | 匹配拥有attr属性的标签 |
[ attr = val ] | 匹配拥有attr属性,属性值为val的标签 |
[ attr ~= val ] | 匹配拥有attr属性,属性值中包含指定词汇的标签。 |
[ attr |= val ] | 匹配拥有attr属性,属性值带有以指定值开头的属性值的标签,该值必须是整个单词。 |
[ attr ^= val ] | 匹配拥有attr属性,属性值以val开头的标签 |
[ attr $= val ] | 匹配拥有attr属性,属性值以val结尾的标签 |
[ attr *= val ] | 匹配拥有attr属性,属性值包含val的标签 |
<head>
<style>
只要有xxx属性名的标签都找到
[xxx] {
color: red;
}
只要标签有属性名为xxx并且值为
[xxx='1'] {
color: blue;
}
规定p标签内部必须有属性名为xxx并且值为2的标签
p[xxx='2'] {
color: green;
}
style>
head>
<body>
<p xxx>我只有属性名p>
<p xxx="1">我有属性名和属性值并且值为1p>
<p xxx="2">我有属性名和属性值并且值为2p>
body>
选择器 | 类型 | 功能描述 |
---|---|---|
a:link | 链接伪类选择器 | 选择匹配的a元素,而且匹配元素被定义了超链接并未被访问过。常用于链接描点上 |
a:hover | 用户行为选择器 | 选择匹配的a元素,且用户鼠标停留在元素a上。 |
a:active | 用户行为选择器 | 选择匹配的a元素,且匹配元素被激活。常用于链接描点和按钮上 |
a:visited | 链接伪类选择器 | 选择匹配的a元素,而且匹配元素被定义了超链接并已被访问过。常用于链接描点上 |
a:focus | 用户行为选择器 | 选择匹配的a元素,而且匹配元素获取焦点 |
<head>
<style>
未访问的链接
a:link {
color: red;
}
鼠标移动到链接上
a:hover {
color: yellow;
}
选定的连接
a:active {
color: black;
}
已访问的链接
a:visited {
color: green;
}
input输入框获取焦点时样式
input:focus {
background-color: red;
}
style>
head>
<body>
<a href="https://www.baidu.com">百度a>
<a href="http://www.xiaohuar.com">笑话网a>
<a href="http://www.sogo.com">sogo网a>
<input type="text">
body>
first-letter
常用的给首字母设置特殊样式
p:first-letter {
font-size: 48px;
color: red;
}
before
在每个元素之前插入内容
p:before
{
content:"*";
color:red;
}
after
在每个元素之后插入内容
p:after
{
content:"[?]";
color:blue;
}
相同选择器,不同的引入方式:就进原则,谁越靠近标签谁说了算
不同选择器,相同的引入方式:行内样式 > id选择器> 类选择器 > 标签选择器
<head>
<style>
div {
width: 100px;
height: 100px;
background-color: red;
}
style>
head>
长度
颜色
font-family: "STSong", "Arial";
left 居左 、center 居中 、right 居右、justify 两端对齐
baseline:将支持valign特性的对象的内容与基线对齐
sub:垂直对齐文本的下标
super:垂直对齐文本的上标
top:将支持valign特性的对象的内容与对象顶端对齐
text-top:将支持valign特性的对象的文本与对象顶端对齐
middle:将支持valign特性的对象的内容与对象中部对齐
bottom:将支持valign特性的对象的文本与对象底端对齐
text-bottom:将支持valign特性的对象的文本与对象底端对齐
p{
text-indent: 48px;
}
underline:下划线、overline:上划线、line-through:中划线、none:没有划线、inherit:承父元素的text-decoration属性的值
normal:默认换行规则
break-all:允许在单词内换行
background-color: green;
background-image: url("bg.png");
background-repeat: no-repeat;
repeat(重复)、 no-repeat(不重复) 、repeat-x(X轴重复) 、repeat-y(Y轴重复)
background-position: center;
top、bottom、left、right 、center
scroll、fixed
可以写到一起:
background: no-repeat center url("bg.png") blue ;
border-width: 3px;
none: 默认无边框、dotted: 点线框、dashed: 虚线框、solid: 实线边界、double: 两个边界、groove: 3D沟槽边界、ridge: 3D脊边界
border-color:
transparent:透明
{
border-top-style:dotted;
border-top-color: red;
border-right-style:solid;
border-bottom-style:dotted;
border-left-style:none;
}
属性可以有1-4个值
border-style:dotted solid double dashed;
可以写到一起:
border: 3px solid red;
div {
width: 400px;
height: 400px;
background-color: red;
border: 3px solid black;
border-radius: 50%;
}
属性 | 说明 |
---|---|
border-image | 设置所有边框图像的属性。 |
border-radius | 一个用于设置所有四个边框- *-半径属性属性 |
box-shadow | 附加一个或多个下拉框的阴影 |
用于控制HTML元素的显示效果。
值 | 意义 |
---|---|
display:“none” | HTML文档中元素存在,但是在浏览器中不显示。一般用于配合JavaScript代码使用。 |
display:“block” | 默认占满整个页面宽度,如果设置了指定宽度,则会用margin填充剩下的部分。 |
display:“inline” | 按行内元素显示,此时再设置元素的width、height、margin-top、margin-bottom和float属性都不会有什么影响。 |
display:“inline-block” | 使元素同时具有行内元素和块级元素的特点。 |
display:"none"与visibility:hidden的区别:
visibility:hidden: 可以隐藏某个元素,但隐藏的元素仍需占用与未隐藏之前一样的空间。也就是说,该元素虽然被隐藏了,但仍然会影响布局。
display:none: 可以隐藏某个元素,且隐藏的元素不会占用任何空间。也就是说,该元素不但被隐藏了,而且该元素原本占用的空间也会从页面布局中消失。