css详解

1.CSS概述

1.1什么是CSS

Cascading Style Sheet 层叠级联样式表

css:表现(美化网页)

字体,颜色,边距,高度,宽度,背景图片,网页定位,网页浮动

1.2快速入门

css详解_第1张图片css详解_第2张图片css的优势:

1.内容表现分离

2.网页结构表现统一

3.样式十分丰富

4.建议使用独立于html的css文件

5.利用SEO,容易被搜索引擎收录

1.3 CSS的三种导入方式




    
    Title


    

    





张功铭

拓展:外部样式两种写法

  • 链接式

    
    
  • 导入式

    
        
    

2.选择器

作用:选择页面上的某一个或某一类元素

2.1 基本选择器

1.标签选择器:选择一类标签

标签{}


    "UTF-8">
    Title
    



 ; ;张功铭

张彬

张康妮

2.类选择器:选择所有class属性一致的标签,跨标签

.类名{}


    "UTF-8">
    Title

  



"rui">标题1

"ming">标题2

"qi">标题3

"qi">标题4

标题5

3.Id选择器:全局唯一


    "UTF-8">
    Title

    



"zhang">标题1

"hong">标题2

"rui">标题3

"bin">标题4

"ming">标题5

优先级:id选择器 > class选择器 > 标签选择器

2.2层次选择器

1、后代选择器:在某个元素的后面


2、子选择器

/*子选择器*/
body>p{
    background: red;
}

3、相邻兄弟选择器

/* 相邻兄弟选择器:只有下面一个 */
.html + p{
    background: green;
}

4、通用选择器

/*通用选择器,当前选中元素的向下的所有兄弟元素*/
.html~p{
    background: red;
}

2.3 结构伪类选择器

/*ul的第一个子元素*/
ul li:first-child{
    background: red;
}

/*ul的最后一个子元素*/
ul li:last-child{
    background: green;
}
/*选中p1:定位到父元素,选择当前的第一个元素*/
p:nth-child(3){
    background: pink;
}
/*选中父元素下的p元素的第二个类型*/
p:nth-of-type(1){
    background: aqua;
}

2.4 属性选择器




    
    Title

    




1 2 3 4 5 6 7 8 9 10

/*
= 绝对等于
*=  包含这个元素
^=  以这个开头
$=  以这个结尾
*/

css详解_第3张图片

3、美化网页元素

3.1、为什么要美化网页

  1. 有效的传递页面信息

  2. 使用CSS美化过的页面文本,使页面漂亮、美观,吸引用户

  3. 可以很好的突出页面的主题内容,使用户第一眼可以看到页面主要内容

  4. 具有良好的用户体验

标签:重点要突出的字,使用括起来

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
  
  <style>
    #title1{
      font-size: 50px;
    }
  style>
  
head>
<body>

欢迎学习   <span id="title1">  CSS span>

body>
html>

3.2、字体样式

css详解_第4张图片

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    

    <style>
        body{
            font-family: "Arial Black",新宋体;
        }
        h1{
            font-size: 50px;
            color: red;
        }
        .p1{
            font-weight: bold;
        }
    style>

head>
<body>

<h1>故事介绍h1>
<p class="p1">
《莽荒纪》为起点文学网白金作家我吃西红柿(番茄)创作的古典仙侠小说,同时也是作者完结《吞噬星空》后休整了近五个月精心准备的第七部小说。
p>
<p>小说于2012年12月16日正式上传,2013年2月1日正式上架,2015年4月10号完结,2018年4月30日晚,《莽荒纪》电视剧已在爱奇艺,腾讯视频同步播出。   
p>
body>
html>

css详解_第5张图片### 3.3、文本样式

  1. 颜色 color rgb rgba
  2. 文本对齐方式 text-align: center
  3. 首行缩进 text-indent: 2em;
  4. 行高 line-height: 20px
  5. 装饰 text-decoration
  6. 文本图片水平对齐 vertical-align: middle;

css详解_第6张图片css详解_第7张图片

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    

    

    <style>
        h1{
            color: rgba(0,255,255,1);
            text-align: center;  /*文本居中*/
        }
        .p1{
            text-indent: 2em;   /*首行缩进*/
        }
        .p3{
            background: #2700ff;  /*背景颜色*/
            height: 300px;        /*背景颜色的高度*/
            line-height: 20px;    /*行高度(字体高度)*/
        }
        .a1{
            text-decoration: underline;  /*下划线*/
        }
        .a2{
            text-decoration: line-through;  /*中划线*/
        }
        .a3{
            text-decoration: overline;   /*上划线*/
        }
    style>
head>
<body>

<p class="a1">123465p>
<p class="a2">132456p>
<p class="a3">123456p>

<h1>故事介绍h1>
<p class="p1">
    《莽荒纪》为起点文学网白金作家我吃西红柿(番茄)创作的古典仙侠小说,同时也是作者完结《吞噬星空》后休整了近五个月精心准备的第七部小说。
p>
<p>小说于2012年12月16日正式上传,2013年2月1日正式上架,2015年4月10号完结,2018年4月30日晚,《莽荒纪》电视剧已在爱奇艺,腾讯视频同步播出。   p>

<p class="p3">
    lf you were a teardrop In my eye,<br/>
    For fear of losing you,l would never cry<br/>
    And if the golden sun,Should cease to shine its light,<br/>
    Just one smile from you,Would make my whole world bright<br/>
p>
body>
html>
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    


    <style>
        img,span{
            vertical-align: middle;
        }
    style>

head>
<body>

<p>
    <img src="images/刘青松.jpg" alt="" width="300" height="500">
    <span >1234564654564132span>
p>
body>

2.4、文本阴影

css详解_第8张图片text-shadow属性在CSS2.0中出现,但迟迟未被各大浏览器所支持,因此在CSS2.1中被废弃,如今在CSS3中得到了各大浏览器的支持!

<style>
/*text-shadow:阴影颜色,水平偏移,垂直偏移,阴影半径*/
        #price{
            text-shadow:#ff0000 10px 10px 2px ;
        }
style>

3.5、超链接伪类

css详解_第9张图片

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        /*默认的颜色*/
        a{
            text-decoration: none;
            color: black;
        }
        /*鼠标悬停的状态颜色*/
        a:hover{
            color: orange;
            font-size: 25px;
        }
        /*鼠标点击没有释放的状态颜色*/
        a:active{
            color: green;
        }
        /*text-shadow:阴影颜色,水平偏移,垂直偏移,阴影半径*/
        #price{
            text-shadow:#ff0000 10px 10px 2px ;
        }
    style>
head>
<body>

<a href="#">
    <img src="images/陈钊立.jpg" alt="">
a>
<p>
    <a href="#">java前端开发手册a>
p>
<p>
    <a href="#">作者:张三a>
p>
<p id="price">
    $99
p>
body>
html>

3.6、列表

  • list-style-type
  • list-style-image
  • list-style-position
  • list-style
    ![在这里插入图片描述](https://img-blog.csdnimg.cn/39eb2381e52c47819bfb862bcbcae730.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA56em55aG55qE5a2m5b6S,size_20,color_FFFFFindex.html
DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表样式title>
    <link rel="stylesheet" href="CSS/style.css" type="text/css"/>
head>
<body>

<div id="nav">
<h2 class="title">全部商品分类h2>
<ul>
    <li>
        <a href="#">图书a>
        <a href="#">音像a>
        <a href="#">数字商品a>
    li>
    <li>
        <a href="#">家用电器a>
        <a href="#">手机a>
        <a href="#">数码a>
    li>
    <li>
        <a href="#">电脑a>
        <a href="#">办公a>
    li>
    <li>
        <a href="#">家居a>
        <a href="#">家装a>
        <a href="#">厨具a>
    li>
    <li>
        <a href="#">服饰鞋帽a>
        <a href="#">个性化妆a>
    li>
    <li>
        <a href="#">礼品箱包a>
        <a href="#">钟表a>
        <a href="#">珠宝a>
    li>
    <li>
        <a href="#">食品饮料a>
        <a href="#">保健食品a>
    li>
    <li>
        <a href="#">彩票a>
        <a href="#">旅行a>
        <a href="#">充值a>
        <a href="#">票务a>
    li>
ul>
div>

body>
html>

style.css

#nav{
    width: 300px;
}


.title{
    font-size: 18px;
    font-weight: bold;
    text-indent: 1em;
    line-height: 35px;
    background: red;
}

/*
list-style:
        none:去掉圆点
        circle:空心圆
        decimal:数字
        square:正方形
*/
ul{
    background: darkgrey;
}
ul li{
    height: 30px;
    list-style: none;
    text-indent: 1em;

}

a{
    text-decoration: none;
    font-size: 14px;
    color: #000;

}

a hover{
    color: orange;
    text-decoration: underline;
}

css详解_第10张图片### 3.7、背景

背景图片

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        div{
            width: 1000px;
            height: 700px;
            border: 1px solid red;
            background-image:url(images/QQ.jpg) ;
        }
        .div1{
            background-repeat:repeat-x ;
        }
        .div2{
            background-repeat:repeat-y ;
        }
        .div3{
            background-repeat:no-repeat ;
        }

    style>
head>
<body>

<div class="div1">div>
<div class="div2">div>
<div class="div3">div>
body>
html>

css详解_第11张图片

设置背景

.title { 
	font-size:18px; 
	font-weight:bold;
	color:#FFF;
	text-indent:1em;
	line-height:35px;
	background:#C00 url(../image/arrow-down.gif) 205px 10px no-repeat;
}
background: 背景颜色 背景图像 背景定位 背景不重复显示

背景尺寸 background-size

css详解_第12张图片

3.8、渐变

网址:http://color.oulu.me/

​ https://www.grabient.com/

  • 线性渐变
    • 颜色沿着一条直线过渡:从左到右、从右到左、从上到下等
  • 径向渐变
    • 圆形或椭圆形渐变,颜色不再沿着一条直线变化,而是从一个起点朝所有方向混合
    <style>
        body{
            background-color: #4158D0;
            background-image: linear-gradient(43deg, #4158D0 0%, #C850C0 46%, #FFCC70 100%);
        }
    style>

css详解_第13张图片

4、盒子模型

4.1、什么是盒子模型

css详解_第14张图片

margin:外边框

padding:内边距

border:边框

css详解_第15张图片

4.2、边框

边框颜色 border-color

  • 边框颜色设置方式与文本颜色对比讲解,都是使用十六进制
  • 强调同时设置4个边框颜色时,顺序为上右下左
  • 详细讲解分别上、下、左、右各边框颜色的不同设置方式,及属性值的顺序
属性 说明 实例
border-top-color 上边框颜色 border-top-color:#369
border-right-color 右边框颜色 border-right-color:#369
border-bottom-color 下边框颜色 border-bottom-color:#fae45b
border-left-color 左边框颜色 border-left-color:#efcd56
border-color 四个边框同色 border-color:#eeff34
border-color 上下:#369;左右:#000 border-color:#369 #000
border-color 上:#369;左右:#000;下:#000 border-color:#369 #000 #f00
border-color 上:#369;右:#000;下:#f00左:#00f border-color:#369 #000 #f00 #00f

边框粗细 border-width

  • thin
  • medium
  • thick
  • 像素值
border-top-width:5px;
border-right-width:10px;
border-bottom-width:8px;
border-left-width:22px;
border-width:5px ;
border-width:20px 2px; 
border-width:5px 1px 6px; 
border-width:1px 3px 5px 2px;

边框样式 border-style

  • none 定义无边框。
  • hidden 与 “none” 相同。不过应用于表时除外,对于表,hidden 用于解决边框冲突。
  • dotted 定义点状边框。
  • dashed 定义虚线。
  • solid 定义实线。
  • double 定义双线。
border-top-style:solid;
border-right-style:solid;
border-bottom-style:solid; 
border-left-style:solid; 
border-style:solid ;
border-style:solid dotted;
border-style:solid dotted dashed; 
border-style:solid dotted dashed double;

border简写

同时设置边框的颜色、粗细和样式

border:1px solid #3a6587;
border: 1px dashed red;

实例代码

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        /*body总有一个默认的外边距margin:0*/
        /*h1,u1,li,a,body{*/
        /*    margin:0;*/
        /*    padding: 0;*/
        /*    text-decoration: none;*/
        /*}*/
        /*border:粗细,样式,颜色*/
        #box{
            width: 300px;
            border:1px solid red;
        }
        h2{
            font-size: 16px;
            background-color: black;
            line-height: 30px;
            margin: 0;
            color: white;
        }

        form{
            background: #3cbd16;
        }
        div:nth-of-type(1) input{
            border: 3px solid black;
        }
        div:nth-of-type(2) input{
            border: 3px dashed red;
        }
        div:nth-of-type(3) input{
            border: 2px dashed blue;
        }
    style>
head>
<body>

<div id="box">
    <h2>会员登陆h2>
    <form action="#">
        <div>
            <span>用户名:span>
            <input type="text">
        div>
        <div>
            <span>密码:span>
            <input type="text">
        div>
        <div>
            <span>邮箱:span>
            <input type="text">
        div>
    form>
div>
body>
html>

css详解_第16张图片

4.3、内外边距

外边距margin

  • margin-top
  • margin-right
  • margin-bottom
  • margin-left
margin-top: 1 px
margin-right : 2 px
margin-bottom : 2 px 
margin-left : 1 px
margin :3px 5px 7px 4px;
margin :3px 5px;
margin :3px 5px 7px;
margin :8px;

外边距的妙用:网页居中对齐

margin:0px auto;

内边距

  • padding-left
  • padding-right
  • padding-top
  • padding-bottom
padding-left:10px;
padding-right: 5px;
padding-top: 20px; 
padding-bottom:8px;
padding:20px 5px 8px 10px ;
padding:10px 5px; 
padding:30px 8px 10px ; 
padding:10px;
DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    
    <style>

        #box{
            width: 300px;
            border:10px solid red;
            margin: 0 auto;
        }
        /*
        顺时针旋转
        margin:0
        margin:0 1px
        margin:0 1px 2px 3px
        */
        h2{
            font-size: 16px;
            background-color: rgb(199, 237, 204);
            line-height: 30px;
            /*margin-top: 0;*/
            /*margin-bottom: 0;*/
            margin: 0;
            color: white;
        }

        form{
            background: #3cbd16;
        }
        input{
            border: 1px solid black;
        }
        div:nth-of-type(1){
            padding: 10px 2px;
        }

        div:nth-of-type(2){
            padding: 10px 2px;
        }
        div:nth-of-type(3){
            padding: 10px 2px;
        }
    style>
head>
<body>

<div id="box">
    <h2>会员登陆h2>
    <form action="#">
        <div>
            <span>用户名:span>
            <input type="text">
        div>
        <div>
            <span>密码:span>
            <input type="text">
        div>
        <div>
            <span>邮箱:span>
            <input type="text">
        div>
    form>
div>
body>
html>

css详解_第17张图片

4.4、盒子模型尺寸

css详解_第18张图片

box-sizing

css详解_第19张图片

DOCTYPE html>
<html>
    <head lang="en">
        <meta charset="UTF-8"> 
        <title>box-sizingtitle> 
        <style>
            div{
                width: 100px; 
                height: 100px;
                padding: 5px;
                margin: 10px; 
                border: 1px solid #000000;
                box-sizing: border-box; 
                /*box-sizing: content-box; /!* 默认值*!/*/ 
            }
        style> 
    head>
    <body>
        <div>div> 
    body>
html>

4.5、圆角边框

/*四个属性值按顺时针排序*/
border-radius: 20px 10px 50px 30px;

css详解_第20张图片

    <style>
        div{
            width: 100px;
            height: 100px;
            border: 10px solid red;
            border-radius: 100px;
            margin: 0 auto;
            margin-top: 300px;
        }
    style>

4.6、盒子阴影

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        img{
            width: 100px;
            height: 100px;
            border: 10px solid red;
            border-radius: 100px;
            box-shadow: 10px 10px 10px yellow;
        }
    style>

head>
<body>

<div style="width: 1500px;display: block;text-align: center">
    <img src="QQ.jpg" alt="">
div>

body>
html>
box-shadow: offset-x offset-y blur spread color inset;

box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展] [阴影颜色] [投影方式];

css详解_第21张图片

5、浮动

5.1、标准文档流

块级元素:

<h1><h6><p><div>、列表

行内元素:

<span><a><img/><strong>...

5.2、display





    <style>
        div{
            width: 100px;
            height: 100px;
            border: 1px solid red;
            display: inline-block;
        }
        span{
            width: 100px;
            height: 100px;
            border: 1px solid red;
            display: inline-block;
        }
    style>

<body>
<div>块元素   div>
<span>行内元素span>
body>

5.3、浮动float

#father{
    border: 1px #000 solid;
}

.layer01{
    border: 1px #F00 dashed;
    display: inline-block;
    float: right;
}
.layer02{
    border: 1px #00F dashed;
    display: inline-block;
    float: right;
}
.layer03{
     border: 1px #060 dashed;
    display: inline-block;
    float: left;
 }
.layer04{
    border: 1px #666 dashed;
    font-size: 12px;
    line-height: 23px;
    display: inline-block;
}

css详解_第22张图片

5.4、边框塌陷

clear属性

/*clear: right;右侧不允许有浮动元素*/
/*clear: left;左侧不允许有浮动元素*/
/*clear: both;两侧不允许有浮动元素*/
/*clear: none;允许浮动元素出现在两侧*/
.layer04{
    border: 1px #666 dashed;
    font-size: 12px;
    line-height: 23px;
    display: inline-block;
    float: right;
    clear: right;
}

解决父级边框塌陷的方法

  • 浮动元素后面加空div
.clear
{ clear:both; margin: 0; padding: 0; }
  • 设置父元素的高度
浮动的盒子可以向左或向右浮动
#father
{ border: 1px #000 solid; height: 1000px; }
  • 级添加overflow属性(溢出处理)

css详解_第23张图片

hidden属性值,这个值在网页中经常使用,通常与< div>宽度结合使用设置< div>自动扩展高度,或者隐藏超出的内容

日用品
图书
鞋子
浮动的盒子……
#father
{overflow: hidden;border:1px #000 solid; }
  • 父级添加伪类after
日用品
图书
鞋子
浮动的盒子……
.clear:after
{ content: '';/*在clear类后面添加内容为空*/ display: block; /*把添加的内容转化为块元素*/ clear: both; /*清除这个元素两边的浮动*/ }

小结:【清除浮动,防止父级边框塌陷的四种方法】

  • 浮动元素后面加空div:简单,空div会造成HTML代码冗余
  • 设置父元素的高度:简单,元素固定高会降低扩展性
  • 父级添加overflflow属性:简单,下拉列表框的场景不能用
  • 父级添加伪类after:写法比上面稍微复杂一点,但是没有副作用,推荐使用

css详解_第24张图片

6、定位

6.1、相对定位

position 属性规定元素的定位类型。

描述
absolute 生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 “left”, “top”, “right” 以及 “bottom” 属性进行规定。
relative 生成相对定位的元素,相对于其正常位置进行定位。因此,“left:20” 会向元素的 LEFT 位置添加 20 像素
static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
inherit 规定应该从父元素继承 position 属性的值。
DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        body{
            padding: 20px;

        }
        div{
            margin: 10px;
            padding: 5px;
            font-size: 12px;
            line-height: 25px;
        }
        #father{
            border: 1px solid red;
            /*margin: 0;*/
            padding: 0;
        }
        #first{
            border: 1px dashed blue;
            background-color: #40ffb5;
            position: relative; /* 相对定位*/
            top: -20px; /*上移20*/
            left: 20px; /*右移20*/

        }
        #second{
            border: 1px dashed black;
            background-color: #40ccff;
        }
        #third{
            border: 1px dashed green;
            background-color: #c7edcc;
            position: relative;
            bottom: -10px;
            right: 20px;
        }
    style>

head>
<body>

<div id="father">
    <div id="first">第一个盒子div>
    <div id="second">第一个盒子div>
    <div id="third">第一个盒子div>
div>

body>
html>

相对定位元素的规律

  • 设置相对定位的盒子会相对它原来的位置,通过指定偏移,到达新的位置
  • 设置相对定位的盒子仍在标准文档流中,它对父级盒子和相邻的盒子都没有任何影响
  • 设置相对定位的盒子原来的位置会被保留下来

css详解_第25张图片

练习

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>

    <style>
        body{
            padding: 20px;

        }
        div{
            margin: 10px;
            padding: 5px;
            font-size: 12px;
            line-height: 25px;
        }
        #father{
            border: 1px solid red;
            /*margin: 0;*/
            padding: 0;
        }
        #first{
            border: 1px dashed blue;
            background-color: #40ffb5;
            position: relative; /* 相对定位*/
            top: -20px; /*上移20*/
            left: 20px; /*右移20*/

        }
        #second{
            border: 1px dashed black;
            background-color: #40ccff;
        }
        #third{
            border: 1px dashed green;
            background-color: #c7edcc;
            position: relative;
            bottom: -10px;
            right: 20px;
        }
    style>

head>
<body>

<div id="father">
    <div id="first">第一个盒子div>
    <div id="second">第一个盒子div>
    <div id="third">第一个盒子div>
div>

body>
html>

css详解_第26张图片

6.2、绝对定位

position:absolute;

absolute属性值:偏移设置: left、right、top、bottom

绝对定位:

  • 使用了绝对定位的元素以它最近的一个“已经定位”的“祖先元素” 为基准进行偏移
  • 如果没有已经定位的祖先元素,会以浏览器窗口为基准进行定位
  • 绝对定位的元素从标准文档流中脱离,这意味着它们对其他元素的定位不会造成影响
  • 元素位置发生偏移后,它原来的位置不会被保留下来

6.3、固定定位

类似绝对定位,不过区别在于定位的基准不是祖先元素,而是浏览器窗口

position: fixed;
        body{
            height: 1000px;
        }
        div:nth-of-type(1){
            width: 100px;
            height: 100px;
            background: red;
            position: absolute;
            right: 0;
            bottom: 0;
        }
        div:nth-of-type(2){
            width: 50px;
            height: 50px;
            background: black;
            position: fixed;
            right: 0;
            bottom: 0;
        }

6.4、z-index

图层

css详解_第27张图片

网页元素的透明度

属性 说明
opacity:x x值为0~1,值越小越透明
filter:alpha(opacity=x) x值为0~100,值越小越透明

index.html

DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Titletitle>
    <link rel="stylesheet" href="css/style.css">
head>
<body>
<div id="content">
    <ul>
        <li><img src="images/蜡笔.jpg" alt="">li>
        <li class="tipText">学习微服务,找狂神li>
        <li class="tipBg">li>
        <li>时间:2022-03-22li>
        <li>地点:湖北经济学院li>
    ul>
div>
body>
html>

style.css

#content{
    width: 276px;
    padding: 0px;
    margin: 0px;
    overflow: hidden;
    font-size: 12px;
    line-height: 25px;
    border: 1px solid #000;
}
ul,li{
    padding: 0px;
    margin: 0px;
    list-style: none;
}

/*父级元素相对定位*/
#content ul{
    position: relative;
}
.tipText,.tipBg{
    position: absolute;
    width: 380px;
    height: 25px;
    top: 250px;
}
.tipText{
    color: white;
    z-index: 99;
}
.tipBg{
    background: black;
    opacity: 0.5; /*透明度*/
    /*filter:Alpha(opacity=50);*/
}

小结

  • 网页中的元素都含有两个堆叠层级
  • 未设置绝对定位时所处的环境,z-index是0
  • 设置绝对定位时所处的堆叠环境,此时层的位置由z-index的值确定
  • 改变设置绝对定位和没有设置绝对定位的层的上下堆叠顺序,只需调整绝对定位层的z-index值即可

css详解_第28张图片

7、动画

​ RJ4587

7.1、css变形

CSS3变形是一些效果的集合

  • 如平移、旋转、缩放、倾斜效果
  • 简言之,平移就是一个变形,旋转就是一个变形。。。

每个效果都可以称为变形(transform),它们可以分别操控元素发生平移、旋转、缩放、倾斜等变化。

css详解_第29张图片

变形函数

  • translate():平移函数,基于X、Y坐标重新定位元素的位置
  • scale():缩放函数,可以使任意元素对象尺寸发生变化
  • rotate():旋转函数,取值是一个度数值
  • skew():倾斜函数,取值是一个度数值

2D位移

css详解_第30张图片

一个方向上的偏移

css详解_第31张图片

2D缩放
css详解_第32张图片

scale()函数能够用来缩放元素大小,该函数包含两个参数值,分别用来定义宽度和高度的缩放比例,默认值为1,0~0.99的任意值都可以使元素缩小,而任何大于1的值都能让元素放大。

scale()函数和translate()函数的语法非常相似,可以只接收一个值,也可以接收两个值,只有一个值时,第二个值默认和第一个值相等,例如,scale(1,1)元素不会有任何变化,而scale(2,2)会让元素放大2倍

2D倾斜

可以仅设置沿着X轴或Y轴方向倾斜

  • skewX(ax):表示只设置X轴的倾斜
  • skewY(ay):表示只设置Y轴的倾斜

css详解_第33张图片

2D旋转

rotate(a);
  • 参数a单位使用deg表示
  • 参数a取正值时元素相对原来中心顺时针旋转

小结

  • rotate( )函数只是旋转,而不会改变元素的形状
  • skew( )函数是倾斜,元素不会旋转,会改变元素的形状

7.2、css过渡

transition呈现的是一种过渡,是一种动画转换的过程,如渐现、渐弱、动画快慢等

CSS3 transition的过渡功能更像是一种“黄油”,通过一些CSS的简单动作触发样式平滑过渡
css详解_第34张图片

过渡属性的使用

  • 过渡属性( transition-property )
    • 定义转换动画的CSS属性名称
      • IDENT:指定的CSS属性(width、height、background-color属性等)
      • all:指定所有元素支持transition-property属性的样式,一般为了方便都会使用all
  • 过渡动画函数( transition-timing-function )
    • 指定浏览器的过渡速度,以及过渡期间的操作进展情况,通过给过渡添加一个函数来指定动画的快慢方式
      • ease:速度由快到慢(默认值)
      • linear:速度恒速(匀速运动)
      • ease-in:速度越来越快(渐显效果)
      • ease-out:速度越来越慢(渐隐效果)
      • ease-in-out:速度先加速再减速(渐显渐隐效果)
  • 过渡延迟时间( transition-delay )
    • 指定一个动画开始执行的时间,当改变元素属性值后多长时间去执行过渡效果
      • 正值:元素过渡效果不会立即触发,当过了设置的时间值后才会被触发
      • 负值:元素过渡效果会从该时间点开始显示,之前的动作被截断
      • 0:默认值,元素过渡效果立即执行

过渡的触发机制

  • 伪类触发
    • :hover
    • :active
    • :focus
    • :checked
  • 媒体查询:通过@media属性判断设备的尺寸,方向等
  • JavaScript触发:用JavaScript脚本触发

**注意:**媒体查询和JavaScript的方法在后面课程会详细讲解,现在只需要大家了解即可。重点需要掌握伪类触发的方法,这种方法也是实际开发中用的比较多的一种

使用transition实现过渡动画的使用步骤

  • 在默认样式中声明元素的初始状态样式
  • 声明过渡元素最终状态样式,如悬浮状态
  • 在默认样式中通过添加过渡函数,添加一些不同的样式

7.3、css动画

  • animation动画简介
    • animation实现动画主要由两个部分组成
      • 通过类似Flash动画的关键帧来声明一个动画
      • 在animation属性中调用关键帧声明的动画实现一个更为复杂的动画效果

CSS动画的使用过程

  • 设置关键帧

css详解_第35张图片

  • @keyframes的浏览器兼容性
    在这里插入图片描述

​ 写兼容的时候浏览器前缀是放在@keyframes中间

​ 例如:@-webkit-keyframes、@-moz- keyframes

  • 调用关键帧

css详解_第36张图片

  • 动画的播放次数(animation-iteration-count)
    • 值通常为整数,默认值为1
    • 特殊值infifinite,表示动画无限次播放
  • 动画的播放方向(animation-direction)
    • normal,动画每次都是循环向前播放
    • alternate,动画播放为偶数次则向前播放
  • 动画的播放状态(animation-play-state)
    • running将暂停的动画重新播放
    • paused将正在播放的元素动画停下来
  • 动画发生的操作(animation-fifill-mode)
    • forwards表示动画在结束后继续应用最后关键帧的位置
    • backwards表示会在向元素应用动画样式时迅速应用动画的初始帧
    • both表示元素动画同时具有forwards和backwards的效果

css详解_第37张图片

你可能感兴趣的:(html5,css,前端,css3)