一.定位(相对定位,绝对定位,固定定位)-重点
1.定位相关属性
1.定位属性
属性:position
取值:
(1)static 静态,默认值
(2)relative 相对定位
(3)absolute 绝对定位
(4)fixed 固定定位
注意:将元素的position设置为relative/absolute/fixed任何一个值,那该元素就称为"已定位"元素。
2.偏移属性
top/bottom/left/right
以上四个属性取值均为数字(px单位)
ex:
top:150px; 元素向下偏移
bottom:-200px;元素向下偏移
left:100px;元素向右偏移
注意:只有"已定位"元素才能使用偏移属性
3.定位详解
1.相对定位
1.什么是相对定位
元素会相对于它原来的位置偏移某个距离
2.使用场合
在做元素位置的微调时使用
3.语法
position:relative;
配合着偏移属性使用
2.绝对定位
1.特点
1.绝对定位的元素会脱离文档流,不占页面空间
2.绝对定位的元素会相对于离他"最近的" "已定位的" "祖先元素"去实现位置的初始化,如果没有已定位的祖先元素,那么元素相对于body去实现位置的初始化。
(一般子元素要实现绝对定位,父元素通常都设置为相对定位)
2.语法
position:absolute;
配合偏移属性来使用
3.使用场合
1.弹出菜单
2.有堆叠效果的元素
4.注意
1.脱离文档流
2.绝对定位会将元素变为块级元素
3.堆叠顺序
一旦将元素变为已定位元素的话,元素们有可能会出现堆叠的效果。如果想要改变默认的堆叠顺序,可以使用z-index
属性:z-index
取值:无单位的数字,数字越大越靠上
注意:
1.父子元素间,z-index无效,永远都是子元素压在父元素上。
2.只有已定位元素才能使用z-index
4.固定定位
1.什么是固定定位
将元素固定在页面的某个位置,位置不会随着滚动条而发生位置的变化,始终固定在可视化的区域中。
2.语法
position:fixed;
配合偏移属性来使用。
3.注意
1.固定定位脱离文档流,不占页面空间
2.固定定位的元素会变成块级元素,允许修改尺寸
3.固定定位的元素永远都是相对于body去实现位置的初始化。
练习:仿照京东右下角返回顶部的效果,将图片固定在网页的右下角,点击图片时返回到网页的顶部。
CSS3 Core=====================================
二.复杂选择器
1.兄弟选择器
兄弟元素:具备相同父元素的平级元素之间称为兄弟元素。
ex:
1.相邻兄弟选择器
作用:获取紧紧挨在某元素后的兄弟元素。
语法:选择器1+选择器2{}
注意:兄弟选择器,只能向后找,不能向前找。
2.通用兄弟选择器
作用:获取某元素后所有满足条件的兄弟元素
语法:选择器1~选择器2{}
练习:通过兄弟选择器设置样式:
1.h3与div之间有30px的外边距
2.从第二个div开始,每个div都有10px的上外边距。(3分钟)
<h3>静夜思</h3>
<div>床前明月光</div>
<div>疑是地上霜</div>
<div>举头望明月</div>
<div>低头思故乡</div>
2.属性选择器
id,class,style,title,name,type,value等
1.作用
允许通过元素所附带的属性及值来匹配页面元素。
2.语法
(1)基本写法
[attr] attr:表示任意属性
作用:匹配页面中所有附带attr属性的元素。
ex:
[id] 匹配页面中所有附带id属性的元素
[class] 匹配页面中所有附带class属性的元素
(2)elem[attr]
elem:表示任意元素
attr:表示任意属性
作用:匹配页面中所有附带attr属性的elem元素。
ex:
div[id] 匹配带有id属性的div元素
(3)[attr1][attr2]…
作用:匹配同时附带多个属性的元素
ex:
[id][class] 匹配同时附带id属性和class属性的元素
(4)[attr=value]
作用:匹配页面中attr属性值为value的元素
[attr~=value]:获取属性值中包含指定词汇的元素
[attr^=value]:匹配属性值以指定值开头的每个元素
[attr$=value]:匹配属性值以指定值结尾的每个元素
[attr*=value]:匹配属性值中包含指定值的每个元素
ex:
[id=“one”]{color:red;}
等同于:
#one{color:red;}
3.伪类选择器
已经学过的伪类:
链接伪类: :link
:visited
动态伪类: :hover
:active
:focus
1.目标伪类
作用:突出显示活动的HTML锚点元素,匹配被激活的锚点。
语法:
选择器:target{…}
2.结构伪类
作用:通过元素的结构关系来匹配元素(上下级嵌套)
1.:first-child
匹配的元素是属于其父元素中的第一个子元素。
p1
p2
p3
ex:
p:first-child{…}
2.:last-child
匹配的元素是属于其父元素中的最后一个子元素。
ex:
p:last-child{…}
练习:
1.创建一个4*4表格,并填充内容
2.设置第一行的数据背景颜色为黄色
3.设置最后一行的数据背景颜色为红色(3分钟)
3.:nth-child(n)
匹配的元素是属于其父元素中的第n个元素。
ex:
tr:nth-child(3){…}
练习:在上面表格的基础上,设置表格第三行第三列中的文字为粗体并倾斜显示,字体大小为30px
4.:empty
匹配没有子元素的元素。(空格也不能包含)
课后作业:
1.完成"课后作业1.png"的布局效果(参考www.codeboy.com)
2.完成"课后作业2.png"的布局效果
3.继续开发个人项目