前端-CSS 一、CSS的引入方式 二、选择器 三、文本属性与字体属性 background 四、定位:

前端-CSS
一、CSS的引入方式
二、选择器
三、文本属性与字体属性
background
四、定位:

1.行内样式

<p style="color: blue;">这是一个p标签!</p>

2.内嵌样式

<style>
     p {
         color: red;
     }
 </style>

3.外联样式

  1.链接式(常用)

<link rel="stylesheet" href="index.css">

  2.导入式

<!--导入式-->
    <style type="text/css">
    @import url('./index.css');
    </style>

注意:@import url()必须写在文件最开始的位置。

链接式与导入式的区别

1、<link/>标签属于XHTML,@import是属性css2.1
2、使用<link/>链接的css文件先加载到网页当中,再进行编译显示
3、使用@import导入的css文件,客户端显示HTML结构,再把CSS文件加载到网页当中
4、@import是属于CSS2.1特有的,对于不兼容CSS2.1的浏览器来说就是无效的

二、选择器

1.基础选择器

前端-CSS
一、CSS的引入方式
二、选择器
三、文本属性与字体属性
background
四、定位:

“选择器”指明了{}中的“样式”的作用对象,也就是“样式”作用于网页中的哪些元素

  1.通用元素选择器 *: 所有的标签都变色

  2.标签选择器:匹配所有使用p标签的样式 p{color:red}

  3.id选择器:匹配指定的标签  #p2{color:red}

  4.class类选择器:谁指定class谁的变色,可选多个  .c1{color:red} 或者 div.c1{color:red}

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<style>
    /*标签选择器*/
    /*所有标签是div的都变了*/
    div{
        font-family: 华文彩云;
    }

    /*id选择器*/
    /*给id='c2'的设置样式,id一般不常用。因为id是不能重复的。*/
    #c2{
        background-color: blueviolet;
        font-size: larger;
    }

    /*calss类选择器*/
    .a1{
        color: red;
    }
    或
    p.a1{
        color: blue;
    }

    /*通用元素选择器*/
    *{
        background-color: aquamarine;
        color: red;
    }
</style>
<body>
<div id="c1">
    <div id="c2">
        <p>hello haiyan</p>
        <div class="a1">哇啊卡卡</div>
    </div>
    <p>hi haiyan</p>
</div>
<span>啦啦啦</span>
<p>p2</p>
<div class="a1">
    <p class="a2">你好啊</p>
    <h1>我是h1标签</h1>
</div>
</body>
</html>
复制代码

2.组合选择器

1.后代选择器 (不分层级,只让p标签变色) .c2 p{color:red} 
    2.子代选择器(只在儿子层找) .c2>p{color:red}
    3.多元素选择器:同时匹配所有指定的元素  .div,p{color:red}
                       或者
                        .c2 .c3,.c2~.c3{
                           color: red;
                            background-color: green;
                           font-size: 15px;
                }

 
    不常用    
  3.毗邻选择器(紧挨着,找相邻的,只找下面的,不找上面的).c2+p{color:red}
  4.兄弟选择器:同一级别的,离得很近的.c2~p{color:red}
   5.多元素选择器: .c2 .c3,.c2~ .c3{ color:red }
.a1 .a2, .a1~p{
 2             color: blue;
 3             font-size: 15px;
 4             background-color: red;
 5         }
 6         #下面的两个就相当于上面的一个,用逗号隔开可以减少代码的重用
 7         .a1 .a2{
 8             color: blue;
 9             font-size: 15px;
10             background-color: red;
11         }
12         .a1~p{
13              color: blue;
14              font-size: 15px;
15              background-color: red;
16         }

示例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>组合选择器</title>
    <style>
        /*后代选择器(部分层级):选择所有类为a1的p标签*/
        .a1 p{
            background-color: blue;
        }

        /*子代选择器*/
        .c2>p{
            color: crimson;
        }

        /*毗邻选择器*/
        .a2+p{
            background-color: aquamarine;
        }

        /*兄弟选择器:同一级别的,离得很近的*/
        .a2~p{
            background-color: blueviolet;
        }

        /*多元素选择器:同时匹配所有指定的元素*/
        .div,p{
            background-color: aquamarine;
        }

        .a1 .a2, .a1~p{
            color: blue;
            font-size: 15px;
            background-color: red;
        }
        #下面的两个就相当于上面的一个,用逗号隔开可以减少代码的重用
        /*.a1 .a2{*/
            /*color: blue;*/
            /*font-size: 15px;*/
            /*background-color: red;*/
        /*}*/
        /*.a1~p{*/
             /*color: blue;*/
             /*font-size: 15px;*/
             /*background-color: red;*/
        /*}*/
    </style>
</head>
<body>
<p>hi say hello........</p>
<div class="a1">
    <div class="a2">
        <p id="s1">过去永远是画面</p>
        <div class="c2">
            <p>那片海</p>
        </div>

    </div>
    <p>huhhdhshsdfdfgfdgd</p>
    <h1 class="a3">第一章</h1>
    <h2>第二章</h2>
</div>
<div class="a1">
    <em>lalalalla啦啦啦啦案例</em>
    <div class="a2">
        <p>hohou后</p>
        <b>海燕&reg;</b>
    </div>
</div>
<h5>你好</h5>
<p>好好好</p>
</body>
</html>

3.属性选择器

1 E[att]          匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略。
 2                 比如“[cheacked]”。以下同。)   p[title] { color:#f00; }
 3  
 4  
 5 E[att=val]      匹配所有att属性等于“val”的E元素   div[class=”error”] { color:#f00; }
 6  
 7  
 8 E[att~=val]     匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素
 9                 td[class~=”name”] { color:#f00; }
10  
11 E[attr^=val]    匹配属性值以指定值开头的每个元素                    
12                 div[class^="test"]{background:#ffff00;}
13  
14 E[attr$=val]    匹配属性值以指定值结尾的每个元素    div[class$="test"]{background:#ffff00;}
15  
16 E[attr*=val]    匹配属性值中包含指定值的每个元素    div[class*="test"]{background:#ffff00;}

index.css

/*1.匹配所有haiyan属性的,并且只是在div标签的*/
div[haiyan]{
    color: yellowgreen;
}


/*2.匹配所有haiyan=wawa的并且只是在div标签的*/
div[haiyan=wawa]{
        color: aqua;
    }

/*2.上面的优先级和下面的优先级本应该是一样的*/
/*应该显示下面的,但是,由于上面查找的范围
比下面的范围广,所以它会把上面的也显示了。*/



/*3.匹配所有属性为haiyan,并且具有多个空格分割的值,*/
/*其中一个只等于wawa的*/
 div[haiyan~=wawa]{
            color: blueviolet;
        }

 /*4.匹配属性值以指定值开头的每个元素,
 并且是在div标签里的*/
div[haiyan^=w]{
            background-color: aquamarine;
        }
div[egon^=w]{
            background-color: aquamarine;
        }

/*5.匹配属性值以指定值结尾的每个元素  */
div[haiyan$=a]{
            background-color: blueviolet;
        }

/*6.匹配属性值中包含指定值的每个元素 */
div[haiyan*=a]{
            background-color: blueviolet;
        }
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>属性选择器</title>
    <link rel="stylesheet" href="index.css">
</head>
<body>
<div>
    <div haiyan = "  wawa ">你好</div>
    <div haiyan = "wawa">哎呀呀啊</div>
    <div egon = "wawa">da大</div>
    <div haiyan="cccc">啊啊哈</div>
</div>
</body>
</html>

4.伪类

anchor伪类:专用于控制链接的显示效果

'''
        a:link(没有接触过的链接),用于定义了链接的常规状态。

        a:hover(鼠标放在链接上的状态),用于产生视觉效果。
        
        a:visited(访问过的链接),用于阅读文章,能清楚的判断已经访问过的链接。
        
        a:active(在链接上按下鼠标时的状态),用于表现鼠标按下时的链接状态。
        
        伪类选择器 : 伪类指的是标签的不同状态:
        
                   a ==> 点过状态 没有点过的状态 鼠标悬浮状态 激活状态
        
        a:link {color: #FF0000} /* 未访问的链接 */
        
        a:visited {color: #00FF00} /* 已访问的链接 */
        
        a:hover {color: #FF00FF} /* 鼠标移动到链接上 */
        
        a:active {color: #0000FF} /* 选定的链接 */ 格式: 标签:伪类名称{ css代码; }

'''
1 <!DOCTYPE html>
 2 <html lang="en">
 3 <head>
 4     <meta charset="UTF-8">
 5     <title>伪类</title>
 6     <style>
 7         /*没访问之前*/
 8         a:link{
 9             color: blue;
10         }
11         /*鼠标放在链接上的状态*/
12         a:hover{
13             color: chartreuse;
14         }
15         /*访问过后*/
16         a:visited{
17             color: red;
18         }
19         /*鼠标点击的时候*/
20         a:active{
21             color: aqua;
22         }
23 
24         /*在p标签属性为c2的后面加上内容*/
25         p.c2:after{
26             content: 'hello';
27             color: chartreuse;
28         }
29 
30         /*在所有的p标签的前面加上内容*/
31         p:before{
32             content: '你猜';
33             color: forestgreen;
34         }
35         span{
36             background-color: aqua ;
37             /* 100px;*/
38             /*height: 50px;*/
39             /*span标签是一个内联标签,设置了窗宽不起作用*/
40            /*它是跟着你设置的文本的大小变化的*/
41         }
42     </style>
43 </head>
44 <body>
45 <p>你是谁?</p>
46 <p class="c2">你是谁?</p>
47 <p class="c3">你是谁?</p>
48 <a href="" id="c1">lalala</a>
49 <span>zzzz小</span>
50 </body>
51 </html>

before after伪类

:before    p:before       在每个<p>元素之前插入内容     
 :after     p:after        在每个<p>元素之后插入内容     

例:p:before{content:"hello";color:red;display: block;}

5.css优先级和继承

css的继承

继承是CSS的一个主要特征,它是依赖于祖先-后代的关系的。继承是一种机制,它允许样式不仅可以应用于某个特定的元素,还可以应用于它的后代。例如一个BODY定义了的颜色值也会应用到段落的文本中。

继承:给父级设置一些属性,子级继承了父级的该属性,这就是我们的css中的继承。

有一些属性是可以继承下来 : color 、 font-*、 text-*、line-* 。主要是文本级的标签元素。

但是像一些盒子元素属性,定位的元素(浮动,绝对定位,固定定位)不能继承。

层叠性

层叠性: 权重的标签覆盖掉了权重小的标签

权重: 谁的权重大,浏览器就会显示谁的属性

数:id的数量 class的数量 标签的数量,按此顺序 

/*1  0  0 */显示红色
#box{


    color: red; 
}
/*0  1  0*/
.container{
    color: yellow;
}
/*0  0  1*/
p{
    color: purple;
}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>层叠性2</title>
    <style type="text/css">
        /*2 0 1*/
        #box1 #box2 p{
            color:yellow;
        }
        /*1 1 1*/
        #box2 .wrap3 p{
            color:red;
        }
        /*1 0 3*/
        div div #box3 p {
            color:purple;
        }

        /*0 3 4*/
        div.wrap1 div.wrap2 div.wrap3 p{
            color:blue;
        }
    </style>
</head>
<body>
    <div id="box1" class="wrap1">
        <div id="box2" class="wrap2">
            <div id="box3" class="wrap3">
                <p>再来猜猜我是什么颜色?</p>
            </div>
        </div>
    </div>

</body>
</html>

显示黄色

层叠性权重相同的处理

当权重一样的时候 是以后设置的属性为准。 前提是权重一样,后来者居上

总结:
先看有没有被选中,如果选中了,就数数( id,class,标签的数量)谁的权重大,就显示谁的属性。权重一样大,后来者居上。
如果没有被选中,权重为0,如果属性都是被继承下来的,继承的为0,若权重都是0,'就近原则':谁描述的近,就显示谁的属性。

第一种现象:当权重相同时,以后来设置的属性为准,前提一定要权重相同

第二种现象: 第一个选择器没有选中内层标签,那么它是通过继承来设置的属性,那么它的权重为0。第二个选择器选中了内层标签,有权重。

第三种现象:如果都是继承来的属性,谁描述的近,显示谁的属性。'就近原则'

!important 的使用

!important :设置权重为无限大 
!important 不影响继承来的权重,只影响选中的元素。尽量不用!important,因为使用它会影响页面的布局

盒模型

"box model"这一术语是用来设计和布局时使用

盒模型有两种:标准模型和IE模型。我们在这里重点讲标准模型。

盒模型的属性

width:内容的宽度

height: 内容的高度

padding:内边距,边框到内容的距离

border: 边框,就是指的盒子的宽度

margin:外边距,盒子边框到附近最近盒子的距离

盒模型的计算

如果一个盒子设置了padding,border,width,height,margin(先不设置margin)

盒子的真实宽度=width+2*padding+2*border

盒子的真实宽度=height+2*padding+2*border

要保持盒子真实的宽度,那么加padding就一定要减width,减padding就一定要加width。真实高度一样设置。

padding

padding:就是内边距的意思,它是边框到内容之间的距离

padding的区域是有背景颜色的。并且背景颜色和内容的颜色一样

background-color这个属性将填充所有的border以内的区域

padding的设置

padding有四个方向,分别描述4个方向的padding。

描述的方法有两种

1、写小属性,分别设置不同方向的padding

padding-top: 30px;
padding-right: 30px;
padding-bottom: 30px;
padding-left: 30px;

2、写综合属性,用空格隔开

/*上 右 下 左*/
padding: 20px 30px 40px 50px ;

/*上 左右  下*/
padding: 20px 30px 40px;

/* 上下 左右*/
padding: 20px 30px;
            
/*上下左右*/
padding: 20px;

默认有padding的标签

比如ul标签,有默认的padding-left值。

那么我们一般在做站的时候,是要清除页面标签中默认的padding和margin。以便于我们更好的去调整元素的位置。

 我们现在初学可以使用通配符选择器,这种方法效率不高

*{
  padding:0;
  margin:0;    
}
我们要使用并集选择器选中页面中应有的标签
body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,
        fieldest,legend,input,button,textarea,p,blockquote,th,td{
        margin:0
        padding:0}

边框-border

border:边框的意思,描述盒子的边框

边框有三个要素: 粗细 线性样式 颜色

border-radius: 5px; 设置圆角

写border的方法

按照三要素写:
border- 3px; border-style: solid; border-color: red;

bordr: 10px solid red;综合写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>border制作三角形</title>
    <style type="text/css">
        /*用border制作三角*/
        div{
            width:0;
            height:0;
            border-bottom:200px solid red;
            border-left:200px solid transparent;
            border-right:200px solid transparent;
        }
    </style>
</head>
<body>
    <div></div>

</body>
</html>

margin:外边距。表示边框到最近盒子的距离。

/*表示四个方向的外边距离为20px*/
margin: 20px;

/*表示盒子向下移动了30px*/
margin-top: 30px;

/*表示盒子向右移动了50px*/
margin-left: 50px;

什么是标准文档流

指的是元素排版布局过程中,元素会自动从左往右,从上往下的流式排列

脱离文档流,也就是将元素从普通的布局排版中拿走,其他盒子在定位的时候,会把  脱离文档流的元素  当做不存在而进行定位。

标准文档流下 有哪些微观现象?

1.空白折叠现象:多个空格会被合并成一个空格显示到浏览器页面中

2.高矮不齐,底边对齐:文字还有图片大小不一,都会让我们页面的元素出现高矮不齐的现象,但是在浏览器查看我们的页面总会发现底边对齐

3.自动换行,一行写不满,换行写:如果在一行内写文字,文字过多,那么浏览器会自动换行去显示我们的文字。

css中一共有三种手段,使一个元素脱离标准文档流:

  • (1)浮动
  • (2)绝对定位
  • (3)固定定位

块级元素与行内元素

CSS块级元素和行内元素的分类:

行内元素:除了p之外,所有的文本级标签,都是行内元素。p是个文本级,但是是个块级元素。

块级元素:所有的容器级标签都是块级元素,还有p标签。

块级元素可以转换为行内元素:

给一个块级元素(比如div)设置:

display: inline;

这个标签将立即变为行内元素,此时它和一个span无异,inline就是“行内”,设置宽高无效,可并排

行内元素转换为块级元素:

给一个行内元素(比如span)设置:

display: block;

这个标签将立即变为块级元素,此时它和一个div无异。block”是“块”的意思,设置宽度、高度,独占一行,若不设宽度,将充满整个父级。

/*隐藏标签,不占位置*/
            display:none;

/*隐藏当前的标签,占位置*/
            visibility:hidden;

浮动

浮动是css里面布局最多的一个属性

浮动四大特性:

1.浮动的元素脱标

2.浮动的元素互相贴靠

3.浮动的元素由"子围"效果:div浮动,文字围绕着div中的img围绕来  

4.收缩的效果:一个浮动元素。如果没有设置width,那么就自动收缩为文字的宽度(这点跟行内元素很像)

清除浮动:

清除浮动的方法:

  1. 给父盒子设置高度
  2. clear:both :给浮动元素的后面加一个空的div,并且该元素不浮动,然后设置clear:both
  3. 伪元素清除法
  4. overflow:hidden

常用:

伪元素清除法

.clearfix:after{
    /*必须要写这三句话*/
    content: '.';
    clear: both;
    display: block;
}
给浮动子元素的父盒子,也就是不浮动元素,添加一个clearfix的类,然后设置

overflow:hidden

overflow属性规定当内容溢出元素框时发生的事情。

margin塌陷问题

当给两个标准流下兄弟盒子 设置垂直方向上的margin时,以大的数值为准,那么我们称这种现象叫塌陷.常见于不浮动的盒子垂直margin垂直方向的问题

给两个标准流下的兄弟盒子设置浮动之后,就不会出现margin塌陷的问题。

margin:0 auto;

使用margin:0 auto;注意点:

1.使用margin: 0 auto;水平居中盒子必须有width,要有明确width,文字水平居中使用text-align: center;

2.只有标准流下的盒子 才能使用margin:0 auto; 

当一个盒子浮动了,固定定位,绝对定位  margin:0 auto,不能用

3.margin:0 auto;居中盒子。而不是居中文本,文字水平居中使用text-align: center;

margin属性是描述兄弟盒子的关系,而padding描述的是父子盒子的关系

父盒子里有子盒子,可以选择padding,进行调整位置

三、文本属性与字体属性

文本属性

文本对齐

text-align 属性规定元素中的文本的水平对齐方式。

属性值:none | center | left | right | justify

文本颜色

color属性

文本首行缩进

text-indent 属性规定元素首行缩进的距离,单位建议使用em

文本修饰

text-decoration属性规定文本修饰的样式

属性值:none(默认) | underline(下划线) | overline(定义文本上的一条线)  | line-through (定义穿过文本下的一条线) | inherit(继承父元素的text-decoration属性的值。)

行高

line-height就是行高的意思,指的就是一行的高度。

阴影

text-shadow:水平方向偏移量 垂直方向偏移量 模糊度 阴影颜色

文字溢出

ext-overflow:clip | ellipsis

字体属性

字体大小  font-size:20px;
字体粗细:

属性值:none(默认值,标准粗细) | bold(粗体) | border(更粗)| lighter(更细) | 100~900(设置具体粗细,400等同于normal,而700等同于bold)| inherit(继承父元素字体的粗细值)

字体系列:font-family

font-family: "Microsoft Yahei", "微软雅黑", "Arial", sans-serif

font 属性能够将font-size、line-height、font-family合三为一: font:12px/30px "Times New Roman","Microsoft YaHei","SimSun";

行高 line-height

单行文本垂直居中:

行高的高度等于盒子的高度,可以使当行文本垂直居中

多行文本垂直居中:

行高的高度不能小于字体的大小,不然上下字之间会紧挨一起。

看共几行,文字占的总高度。看盒子高度,进行计算,算出合适的居中值。

vertical-align

定义行内元素的基线相对于该元素所在行的基线的垂直对齐

background

background-color属性表示背景颜色

background-color: rgb(0,0,0);
background-color: red;
background-color: #ff0000;

background-img:表示设置该元素的背景图片

background-repeat:表示设置该元素平铺的方式

background-position: 属性设置背景图像的起始位置。

background-attach :设置fixed之后,该属性固定背景图片不随浏览器的滚动而滚动

四、定位:

1.相对定位 2.绝对定位 3.固定定位

相对定位

相对于自己原来的位置定位

绝对定位

特性:

1.脱标 2.做遮盖效果,提成了层级。设置绝对定位之后,不区分行内元素和块级元素,都能设置宽高。

参考点(重点):

一、单独一个绝对定位的盒子:页面的左上角或者首屏页面左下角为参考点来调整位置。

二、以父辈盒子作为参考点

1.父辈元素设置相对定位,子元素设置绝对定位,那么会以父辈元素左上角为参考点

2.如果父亲设置了定位,那么以父亲为参考点。

绝对定位的盒子居中

*{
            padding: 0;
            margin: 0;
        }
        .box{
            width: 100%;
            height: 69px;
            background: #000;
        }
        .box .c{
            width: 960px;
            height: 69px;
            background-color: pink;
            /*margin: 0 auto;*/
            position: relative;
            left: 50%;
            margin-left: -480px;

            /*设置绝对定位之后,margin:0 auto;不起任何作用,如果想让绝对定位的盒子居中。当做公式记下来 设置子元素绝对定位,然后left:50%; margin-left等于元素宽度的一半,实现绝对定位盒子居中*/
        }

固定定位

固定当前的元素不会随着页面滚动而滚动

特性: 

1.脱标 2.遮盖,提升层级 3.固定不变

参考点:

设置固定定位,用top描述。那么是以浏览器的左上角为参考点
如果用bottom描述,那么是以浏览器的左下角为参考点

作用: 1.返回顶部栏 2.固定导航栏 3.小广告

练习:返回顶部

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style type="text/css">
        *{
            padding:0;
            margin:0;
        }
        p{
            width:100px;
            height:100px;
            background-color:red;
            position:fixed;
            bottom:100px;
            right:100px;
            line-height:100px;
            font-size:20px;
            text-align:center;
            color:#fff;
        }
    </style>
</head>
<body>
    <div>
        <p>返回顶部</p>
        <img src="./1.jpg" alt="">
        <img src="./1.jpg" alt="">
        <img src="./1.jpg" alt="">
        <img src="./1.jpg" alt="">
        <img src="./1.jpg" alt="">
        <img src="./1.jpg" alt="">
    </div>
    <script src="./jquery-3.2.1.js"></script>
    <script type="text/javascript">
        $(function () {
            $('p').click(function () {

                $('html').animate({
                    "scrollTop":0
                },2000)
            })
            
        })
    </script>
</body>
</html>

固定导航栏

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>固定导航栏</title>
    <style type="text/css">
        *{
            padding:0;
            margin:0;
        }
        body{
            /*给body设置导航栏的高度,来显示下方图片的整个内容*/
            padding:49px;
        }
        ul{
            list-style:none;
        }
        a{
            text-decoration: none;
        }
        .wrap{
            width:100%;
            height:49px;
            background-color:#000;
            /*设置固定定位后,一定要加top与left属性    */
            position:fixed;
            top:0;
            left:0;
        }
        .wrap .nav{
            width:960px;
            height:49px;
            margin:0 auto;
        }
        .wrap .nav ul li{
            float:left;
            width:160px;
            height:49px;
            /*line-height:49px;*/
            text-align:center;
        }
        .wrap .nav ul li a{
            width:160px;
            height:49px;
            display:block;
            color:#fff;
            font:20px/49px "HanziPen SC";
        }
        .wrap .nav ul li a:hover{
            background-color:red;
            font-size:23px;
        }
    </style>
</head>
<body>
    <div class="wrap">
        <div class="nav">
            <ul>
                <li>
                    <a href="#">网页开发</a>
                </li>
                <li>
                    <a href="#">网页开发</a>
                </li>
                <li>
                    <a href="#">网页开发</a>
                </li>
                <li>
                    <a href="#">网页开发</a>
                </li>
                <li>
                    <a href="#">网页开发</a>
                </li>
                <li>
                    <a href="#">网页开发</a>
                </li>
            </ul>
        </div>
    </div>
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
    <img src="./1.jpg" alt="">
</body>
</html>

z-index

设置元素的堆叠顺序

四大特性

  1. 数值大的压盖住数值小
  2. 定位了的元素,才能有z-index,浮动元素不能使用z-index
  3. z-index值没有单位,就是一个正整数,默认值为0
  4. 从父现象:父辈的z-index起到决定性作用。父辈值小,子辈值再大也是小。