一、CSS基础
1.CSS样式
样式是css最小的语法单元,每个样式包含两部分内容:选择器和声明(规则)。声明包含两个部分:属性和属性值
body { font-size: 12px; color: #333; }
body:选择器
{}:样式分隔符
font-size: 12px; :声明
font-size:属性
12px:属性值
2.CSS的注释
/*注释语句*/
3.CSS的应用
(1)行内样式
<!-- 行内样式一般放在html开始标签中的style属性中,
多个行内样式使用分号分隔,单个行内样式不用分号
其特点是:只能修饰该标签的内容 -->
<p style="background-color:#999900">行内样式</p>
<h2 style="background-color:#FF6633;color:#FFF">多个行内样式</h2>
(2)内嵌式
<!-- 内嵌式将CSS写在html的<style></style>标签对中,
其特点是:该样式只能在此页使用
例如下方的样式表示本页所有的<p>标签的样式 -->
<style>
p {
text-align: left; /* 文本左对齐 */
font-size: 18px; /* 字体大小18像素 */
line-height:25px; /* 行高25像素 */
width: 500px; /* 段落宽度 */
}
</style>
(3)链接式
<!-- 链接式通过html的<link>标签,将外部样式表文件链接到html文档中,
通过将html文档与css文件完全分离,实现结构层与表示层的彻底分离 -->
<link href="lianjie.css" type="text/css" rel="stylesheet" />
<link href="lianjie-2.css" type="text/css" rel="stylesheet" />
/* lianjie.css */
h3 {
font-weight: normal; /* 取消标题默认加粗效果 */
background: #66CC99;
height: 50px;
}
span {
color: #FF0000; /*字体颜色设置*/
font-weight: bold; /*字体加粗*/
}
(4)导入样式
<!-- 导入样式使用@import命令导入外部样式表
导入样式的语句要放在之前所有的样式使用语句之前 -->
@import daoru.css
@import 'daoru.css'
@import "daoru.css"
@import url(daoru.css)
@import url('daoru.css')
@import url("daoru.css")
4.CSS特性
(1)css样式的优先级
不同位置的样式优先级:
行内样式 > 内嵌式 > 链接式 > 导入样式
不同选择器选择了同一个对象:(可以使用加权值)
标签选择器:1(p {} )
伪元素或伪对象选择器:1
类选择器:10 ( .cent {} )
属性选择器:10
ID选择器:100 ( #imp {} )
其他选择器:0
!important:正无穷 ( span { font-size: 18px !important; } ) (!important命令要在声明与分号之间)
被继承的值:0
二、CSS选择器
1.标签选择器
p {font-size: 18px;}
2.类选择器
.font36px {font-size: 36px;}
3.ID选择器
#box {font-size: 18px;}
4.通配选择器(所有元素定义相同的样式)
* {font-size: 18px;}
5.组合选择器
(1)包含选择器
#main p {font-size: 18px;} /* main包含框内的所有的段落字体大小为18px */
(2)子选择器
#main>p {font-size:20px;} /*main元素的直接子元素*/
子选择器和包含选择器的区别:>作用于元素的第一代后代,空格作用于元素的所有后代。
(3)相邻选择器
p+h3 {background-color: #0099FF;} /*影响的是h3;h3必须在p后面且相邻*/
(4)兄弟选择器
h5~h1 {background: #000;} /*影响h5后面所有同级的h1*/
(5)分组选择器
h1,h2,h3 {color: #000;} /*h1,h2,h3没有任何关系,仅仅为了减少代码量,统一设置*/
6.属性选择器
代码 | 规则 |
---|---|
E[attr] | 使用了属性名,但没有属性值 |
E[attr=“value”] | 指定了属性名和属性值 |
E[attr~=“value”] | 指定了属性名,并且具有属性值,此属性值为一个词列表, 并且以空格隔开,其中词列表中包含了一个value词 |
E[attr^=“value”] | 属性值以value开头 |
E[attr$=“value”] | 属性值以value结尾 |
E[attr*=“value”] | 属性值包含value |
E[attr|=“value”] | 属性值为value或者以value-开头 |
E代表之前提到的4类基础选择器之一
eg: a[id] {background: #000;}
7.伪类选择器
伪选择器以冒号(:)作为前缀标识符,冒号前可以添加选择符,限定伪类应用的范围,冒号后为伪类和伪对象名,冒号前后没有空格。
a:link {color:red;}
a.selected:hover {color:blue;}
(1)动态伪类
锚点伪类: 一种在链接中常见的样式,如 :link(未访问)、:visited(已访问)
行为伪类: 用户操作伪类,如 :hover(鼠标覆盖)、:active(鼠标点击)
(2)结构伪类
伪类 | 说明 | 示例 |
---|---|---|
:first-child | 选择某个元素的第一个子元素 本伪类在子元素后 | li:first-child |
:last-child | 选择某个元素的最后一个子元素 | li:last-child |
:nth-child() | 选择某个元素的一个或多个特定的子元素 | li:nth-child(n) |
:nth-last-child() | 选择某个元素的一个或多个特定的子元素 从这个元素的最后一个子元素开始计算 | |
:nth-of-type() | 选择指定的元素 本伪类放在想要修饰的子元素后 | p:nth-of-type(2n) |
nth-last-of-type() | 选择指定的元素 从元素的最后一个开始计算 | p:nth-last-of-type(2n) |
:first-of-type | 选择一个上级元素下的第一个同类子元素 | |
:last-of-type | 选择一个上级元素下的最后一个子元素 | |
:only-child | 选择的元素是它的父元素的唯一 一个子元素 | |
:only-of-type | 选择的元素是它的上级元素的唯一 一个相同类型的子元素 | |
:empty | 选择的元素里面没有任何内容 |
nth-child( ):
代码 | 说明 | 示例 |
---|---|---|
:nth-child(length) | 参数是具体数字 | li:nth-child(2) 表示选择列表中第二项 |
:nth-child(n) | 参数是n n从0开始计算 | li:nth-child(n) 表示选择所有li元素 |
:nth-child(n*length) | n的倍数选择 | li:nth-child(2n) 表示选择li元素中2的倍数项(2、4、6、8) |
:nth-child(n+length) | 选择大于或等于length的元素 | li:nth-child(n+2) 表示选择li中大于等于第二项的 |
:nth-child(-n+length) | 选择小于或等于length的元素 | li:nth-child(-n+2) 表示选择li中小于等于第二项的 |
:nth-child(n*length+1) | 表示隔几个选一 | li:nth-child(2n-1) 表示选择所有满足2n-1的项(1、3、5) |
其余带括号的里面的参数与nth-child( )中的一致
(3)否定伪类
:not()表示否定选择器,即排除或者过滤掉特定元素(括号里面是另一个选择器)
eg: input:not([type=“submit”])
(4)状态伪类
伪类 | 说明 |
---|---|
:enabled | 表示匹配指定范围内所有可用的UI元素 UI元素一般指包含在form元素内的表单元素 |
:disabled | 表示匹配指定范围内所有不可用的UI元素 |
:checked | 表示匹配指定范围内所有可用的UI元素 |
三、CSS美化网页文本
1.字体样式
属性 | 说明 |
---|---|
font | 字体的复合属性,可设置多种字体属性 |
font-family | 指定文本的字体系列 |
font-style | 字体风格(斜体) |
font-variant | 以小型大写字体或者正常字体显示文本 |
font-weight | 指定字体的粗细 |
font-size | 指定文本的字体大小 |
2.字体颜色
color: 设置字体颜色
3.文本样式
属性 | 说明 |
---|---|
text-aligh: left | right | center | justify 左对齐 右对齐 居中对齐 两端对齐 | 定义文本的对齐方式 |
vertical-align: auto |baseline | sub | super | top | text-top | middle | bottom | text-bottom | length | 定义垂直对齐 |
line-height: normal | length | 定义行高 |
text-indent :length | 定义首行缩进 |
四、CSS美化图像
1.图像边框
图像边框包括两种:虚线框和实线框
虚线框包括:点线和实线
img {width: 250px; margin: 12px; }
.dotted { /*点线*/
border-style: dotted;
}
.dashed { /*虚线*/
border-style:dashed;
}
实线框包括实现(solid),双线(double),立体凹槽(groove),立体凸槽(ridge),
立体凹边(inset),立体凸边(outset)
单独定义边框样式:border-top-style、border-right-style、border-bottom-style、border-left-style
快速定义四个边框样式:border-style: top right bottom left
或者:border-style: top/bottom right/left
border-style: top left/right bottom
边框颜色和宽度:
img {
border-color:red blue green yello
border-width:10px 20px 30px
}
图像的透明度:
opacity属性可以设置图像的透明度
opacity:0~1
取值范围在0到1之间,数值越低透明度越高
定义图像圆角:
border-radius属性可以设置圆角样式,
border-radius参数包含两个:水平半径/垂直半径
如果参数只有一个则表示两个半径相同
2.设置背景图像
代码 | 说明 | 参数 |
---|---|---|
background-image | 定义背景图像 | 见下 |
background-color | 定义背景颜色 | #fff |
background-orgin | 指定背景的显示区域 | border-box:从边框区域开始显示背景 padding-box:从补白区域开始显示背景 content-box:仅在内容区域显示背景 |
background-clip | 指定背景的裁剪区域 | border-box:从边框区域向外裁剪(向外不要) padding-box:从补白区域向外裁剪 content-box从内容区域向外裁剪 text从前景内容向外裁剪 |
background-repeat | 设置背景图像是否及如何重复铺排 | 见下 |
background-size | 定义背景图像的大小 | <length>:长度值,不可为负 <percentage>0%~100%不可为负 cover:保持宽高比,缩放到完全覆盖所定义背景的区域 contain保持宽高比,缩放到正好适应背景区域 |
bakcground-position | 设置背景图像的位置 | 两个参数分别定位x轴和y轴 |
background-attachment | 定义背景图像的显示方式 | fixed:背景图像相对于浏览器窗口固定 scroll:背景图像相对于元素固定 local:背景图像相对于元素内容固定 |
background-image参数
参数 | 说明 |
---|---|
none | 无背景图 |
url | 图像的地址 |
linear-gradient | 线性渐变 |
radial-gradient | 放射性渐变 |
repeating-linear-gradient | 重复的线性渐变 |
repeating-radial-gradient | 重复的放射性渐变 |
background-repeat参数
参数 | 说明 |
---|---|
repeat-x | 背景图像在横向上平铺 |
repeat-y | 背景图像在纵向上平铺 |
repeat | 背景图像在横向和纵向上平铺 |
no-repeat | 背景图像不平铺 |
round | 背景图像自动缩放直到适应且填充满整个容器 |
space | 背景图像以相同的间距平铺且充满整个容器或整个方向 |
五、网页排版
1.浮动显示
可以使用float属性定义元素向左侧或右侧浮动
float: none | left | right
2.定位显示
可以使用position属性定义元素位置
position: static | relative | absolute | fixed
static:表示不定位,元素遵循HTML默认的流动模型
absolute:表示绝对定位,将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父定位包含框(有position属性)进行绝对定位,如果不存在这样的定位包含框,则相对于浏览器窗口。其层叠顺序通过z-index来定义(值越大,图层越高)
fixed:表示固定定位,与absolute定位类似,但他的定位包含框为视图本身,由于视图本身是固定的,他不会随浏览器窗口的滚动条滚动而变化
relative:表示相对定位,它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。其本质是先按static生成一个元素,然后移动这个元素。元素偏移前的位置留白。