目录
1.选择器
1.1 基础选择器
全局选择器 元素选择器 类选择器 ID选择器
1.2 关系选择器
子代选择器 后代选择器 相邻兄弟 通用兄弟
1.3 伪类选择器:
:link 超链接点击之前 (只适用于a)
:visited 超链接点击之后 (只适用于a)
:hover 鼠标悬停 (适用于所有元素)
:active 鼠标按下 (适用于所有元素)
1.4 伪对象选择器 伪元素选择器
伪对象也称作伪元素;
伪类更多的是定义元素的状态,而伪元素则是改变文档结构,在结构外另加一个没有实际存在的元素(伪元素)。
1)在元素内部之前插入内容(相当于第一个子元素)
元素::before{
content:"";
}
2)在元素内部之后插入内容(相当于最后一个子元素)
元素::after{
content:"";
}
css样式:
.box::before{
content:"我是在元素内部之前用css写出的文字--"
}
.box::after{
content:"我是在元素内部之后用css写出的文字"
}
html部分则是只有一个盒子
<div class="box">html里的内容--</div>
呈现效果如图:
检查浏览器时可看出在HTML中用伪对象选择器写的部分没有具体文字
3)自定义伪元素
伪元素默认是行内元素,行内元素无法设置宽度和高度,因此需要转化为块级元素
可以用:display:block;
或者:float:left;
就可以转化为块级元素
示例:
css:样式:(使用float:left)
.box::before{
content:"";
width: 300px;
height: 20px;
background-color: pink;
float: left;
}
效果:(float最开始是做文字环绕因此文字在右边)
css样式(使用display:block)
.box::before{
content:"";
width: 300px;
height: 20px;
background-color: pink;
display: block;
}
效果:(单纯转化为块级元素因此在下方)
1.5属性选择器
利用html的属性(了解)
[属性]
[属性=属性值]
元素[属性=属性值]
2.position 元素定位
2.1 static 默认值 静态定位
2.2 relative 相对定位
相对于原位置定位
配合left,right,top,bottom四个属性移动,当四个属性同时存在,left,top生效。
参照点为左上角,往右下移动取正值;往左上移动取负值
参照点为右下角,往左上移动取正值;往右下移动取负值
相对定位后原位置保留
应用场景:
1)配合绝对定位使用
2)自己小范围移动
2.3 fixed 固定定位
相对于浏览器窗口定位
配合left,right,top,bottom四个属性移动,当四个属性同时存在,left,top生效。
固定定位后原位置不保留
应用场景:
固定在页面某个位置
2.4 sticky 粘性定位
相当于相对定位和固定定位的结合
默认为相对定位.当页面滚动,转换为固定值
示例:页面滚动时,图片转换为固定值(固定在浏览器顶部)
css:
body{
/* 使页面能够下拉 */
height: 5000px;
}
img{
position: sticky;
top: 0;
/* 将图片变为块元素并使其居中 */
display: block;
margin: 0 auto;
height: 400px;
}
html:
<body>
<div>
<img src="./images/0848d9ebbb01fa0f2d1648bab16c44f.jpg" alt="">
<img src="./images/10503ac70ca51058a659a251f6cb6f0.jpg" alt="">
<img src="./images/4716bedff6353ac7f970c76e64ac25d.jpg" alt ="">
<img src="./images/0848d9ebbb01fa0f2d1648bab16c44f.jpg" alt="">
<img src="./images/56420d3c25e3ae5f33ac209803cf87a.jpg" alt="">
<img src="./images/acde8ee17baf4e1b04fd73881b34f5f.jpg" alt="">
<img src="./images/ada0dc5c033a2b896f4ebbee448b50c.jpg" alt="">
<img src="./images/bf2e4f48ad391aae7b7f3b05f4c64a7.jpg" alt="">
<img src="./images/d2f494efcf3f47199fe09f7a54661ef.jpg" alt="">
<img src="./images/f33ef6c75aceb7b4733cff1d352ef07.jpg" alt="">
<img src="./images/fcfe081077a097c0633b99799cd709c.jpg" alt="">
</div>
</body>
效果:
sticky粘性定位-动态效果
2.5 absolute 绝对定位
相对于已经定位的父元素定位
若父元素没有定位,则逐级向上寻找,最后相对于初始包含框定位(浏览器视口)
配合left,right,top,bottom四个属性移动,当四个属性同时存在,left,top生效。
应用场景:
在页面形成独立的一层
示例一:;实现如图效果:
分析:
1.一个大盒子里面包含一个小盒子
2.这里文字部分不进行描写主要练习布局
css:
<style>
.big-box{
/* 子绝父相 */
width: 303px;
height: 375px;
position: relative;
}
img{
width: 100%;
}
.wenzi{
width: 100%;
height: 88.5px;
position: absolute;
bottom:26px;
background-color: pink;
}
</style>
html部分:
<div class="big-box">
<a href="#">
<img src="./图1.png" alt="">
<div class="wenzi"></div>
</a>
</div>
最终效果成型:
示例二:实现如图效果:
利用绝对定位设置样式
css:
.big-box{
width: 400px;
height: 400px;
position: relative;
/* 隐藏溢出部分 */
overflow: hidden;
}
img{
width: 100%;
}
/* 鼠标悬停效果,让阴影部分到图片中 改变以后距左边为0px */
.big-box:hover .shadow{
left: 0px;
}
.shadow{
position:absolute;
/* 阴影盒子在big-box的右边 */
left: 400px;
top:0px;
width: 400px;
height: 400px;
background-color: rgba(0,0,0,.5);
/* 过渡效果 */
transition: 1s;
}
html:
<div class="big-box">
<a href="#">
<img src="./images/4716bedff6353ac7f970c76e64ac25d.jpg" alt="">
<div class="shadow"></div>
</a>
</div>
2.6 z-index 堆叠顺序
取值为负数,取值越大,层级越高,越往上
可以取负值
默认值为auto,和父元素同一等级
必须配合定位(static除外)元素使用
3.不占据位置的属性
3.1 float:left|right;
3.2 position:fixed;
3.3 position:absolute;
3.4 display:none;
4.display
4.1作用
规定了元素的类型
4.2属性值
inline: 行内元素 默认值 行内元素设置宽高不生效,在同一行显示
block: 块级元素 可以设置宽高,独占一行
inline-block: 行内块,即在同一行显示,又可以设置宽高 img/input/button等
缺点:会识别代码之间的空白
none:隐藏 隐藏后不占据位置
flex:弹性盒模型
<!-- 了解 -->
table:转换为表格 类似于<table></table>
table-row: 转换为行 类似于<tr></tr>
table-cell: 转换为单元格 类似于<td></td>
5.隐藏属性
overflow:hidden ; 溢出部分隐藏
display:none; 隐藏元素,隐藏后不占据位置
visibility:hidden; 隐藏元素,隐藏后不占据位置
opacity:0; 元素的透明度为0,隐藏元素,隐藏后占据位置
6.转换为块级元素
display:block;
float:left|right;
position:absolute;
position:fixed;
7.块级元素默认宽度变为由内容撑开
float:left|right;
position:absolute;
position:fixed;