html5+css-06(pink老师课程笔记)

HTML5(最常用)

新增标签

语义化

<div class=“header”> </div>
<div class=“nav”> </div>
<div class=“content”> </div>
<div class=“footer”> </div>

header:头部 nav:导航 article:内容

section:定义文档某个区域,块级 aside:侧边栏 footer:尾部

主要针对搜索引擎

可多次使用

在IE9中需要转化为块级标签

多媒体

audio:音频(.mp3)

<audio src="文件地址" controls="controls"></audio>
  • autoplay:音频就绪后马上播放

  • controls:向用户显示控件,比如播放按钮

  • loop:当音频结束后重新开始播放

video:视频(尽量使用.mp4)

与audio基本一致

  • autoplay: 视频就绪自动播放

  • controls:向用户显示播放控件

  • width :设置播放器宽度

  • height : 设置播放器高度

  • loop:播放完是否继续播放该视频,循环播放

  • preload
    auto(预先加载视频)
    none(不应加载视频)

  • 规定是否预加载视频(如果有了autoplay 就忽略该属性)

  • muted:静音播放

新的表单

  • email

  • url

  • number

  • range

  • time

  • Date pickers (date, month, week, time, datetime, datetime-local)

  • search

  • tel

  • color

    限制输入的元素

新的表单属性

新的 form 属性:

  • autocomplete
  • novalidate

新的 input 属性:

  • autocomplete
  • autofocus
  • form
  • form overrides (formaction, formenctype, formmethod, formnovalidate, formtarget)
  • height 和 width
  • list
  • min, max 和 step
  • multiple :提交多个文件
  • pattern (regexp)
  • placeholder :提示文本
  • required :必须书写,不能为空

CSS3

属性选择器

选择具有type属性且属性值为text的input元素

input[type=text] {
	color:pink;
}

选择具有type属性且属性值为text开头的input元素

input[type^=text] {
	color:pink;
}

选择具有type属性且属性值为text结尾的input元素

input[type$=text] {
color:pink;
}

选择具有type属性且属性值为包含text的input元素

input[type*=text] {
color:pink;
}

属性权重与类选择器相同,10

结构伪类选择器

E:first-child父元素中第一个E元素

ul li:first-child

E:last-child父元素中最后一个E元素

E:nth-child(n)父元素中一个或多个E元素

ul li:nth-child(2)第二个

ul li:nth-child(even)偶数选出来

ul li:nth-child(odd)奇数选出来

ul li:nth-child(n)所有

ul li:nth-child(2n)偶数

……

n+5:从第5个开始

-n+5:前5个

E:first-of-type:指定类型E的第一个

E:last-of-type

E:nth-of-type(n)

伪元素选择器

权重为1

::before元素内部的前面插入内容

::after后面

语法:element::before{}

必须具有content属性

属行内元素

p::before {
position: absolute;
right: 20px;
top: 10px;
content: '\ea50';
font-size: 20px;
}

清楚浮动

第一种

.clearfix::after {
  	content: '';
    display: block;
   	height: 0;
    clear: both;
    visibility: hidden;
   }

第二种

.clearfix::before,
.clearfix::after {
	content: '';
	display: table;
}

.clearfix::after {
	clear: both;
}

盒子模型

margin和padding会撑大盒子

box-sizing:content-box|border-box

content-box(默认),会撑大

border-box则不会撑大

照片模糊处理

filter:burl(5px);数值越大越模糊

calc函数

进行计算

子盒子永远比父盒子小30px

width:clac(100%-30px);

过渡

transition:属性 花费时间(0.5s) 运动曲线(ease) 何时开始(默认0)

div {
      position: relative;
      width: 400px;
      height: 420px;
      border: 5px solid orange;
      background-color: pink;
      box-sizing: border-box;
      transition: width 1s;
    }

    div:hover {
      width: 800px;
    }

多个属性

div {
      position: relative;
      width: 400px;
      height: 420px;
      border: 5px solid orange;
      background-color: pink;
      box-sizing: border-box;
      transition: all 1s;
    }

   div:hover {
      width: 800px;
      height: 800px;
      background-color: blue;
    }

谁做过渡给谁加transition

2D转换(transform)=变形

2维坐标

x轴:水平向右

y轴:垂直向下

translate移动

类似与定位

transform: translate(x,y); 或者分开写
transform: translateX(n);
transform: translateY(n);

 2D 转换中的移动,沿着 X 和 Y 轴移动元素
 translate最大的优点:不会影响到其他元素的位置
 translate中的百分比单位是相对于自身元素的 translate:(50%,50%);
 对行内标签没有效果

子盒子在父盒子中水平居中

方法一:position+margin

方法二:position+translate(-50%,-50%)

rotate旋转

transform:rotate(度数)    如:rotate(45deg)

顺时针为正数,逆时针为负数

默认中心点为元素的中心点

2D转换中心点transform-orgin

transform-origin: x y;

空格隔开

方位词或像素

默认中心点(50%,50%)

鼠标经过div里面的before出现——div:hover::before{ }

scale缩放

transform:scale(x,y);
  • 逗号隔开,数字不加单位(倍数)

  • transform:scale(2,2) :宽和高都放大了2倍

  • transform:scale(2) :只写一个参数,第二个参数则和第一个参数一样,相当于 scale(2,2)

  • transform:scale(0.5,0.5):缩小

  • 可设置缩放中心

鼠标变小手——cursor:pinter;

综合写法

  1. 同时使用多个转换,其格式为:transform: translate() rotate() scale() ...等,

  2. 其顺序会影转换的效果。(先旋转会改变坐标轴方向

  3. 当我们同时有位移和其他属性的时候,记得要将位移放到最前

animation动画

两步走:定义;调用

keyframes定义动画

@keyframes move {
            0% {
                transform: rotateY(0deg);
            }

            100% {
                transform: rotateY(360deg);
            }
        }
  • move——动画名称
  • 0%——动画开始
  • 100%——动画结束

动画序列——0% 100%

也可使用from 和to

多个序列(0% 25% 50% 75% 100%)

百分比为时间的划分(整数)

元素使用动画

div {
width: 200px;
height: 200px;
background-color: aqua;
margin: 100px auto;
/* 调用动画 */
animation-name: move;
/* 持续时间 */
animation-duration: 5s;
}

常用属性

@keyframes ——动画。
animation—— 所有动画属性的简写属性,除了animation-play-state属性
animation-name—— @keyframes动画的名称。(必须的)
animation-duration—— 动画完成一个周期所花费的秒或毫秒,默认是0。(必须的)
animation-timing-function——动画的速度曲线,默认是“ease”。linear-匀速
animation-delay—— 规定动画何时开始,默认是0。
animation-iteration-count——动画被播放的次数,默认是1,还有infinite(无限)
animation-direction ——动画是否在下一周期逆向播放,默认“normal“,alternate逆播放
animation-play-state ——动画是否正在运行或暂停。默认是"running",还有"paused"。
animation-fill-mode ——动画结束后状态,保持forwards回到起始backwards

速度曲线animation-timing-function

linear——匀速;ease——以低速开始,然后加快,在结束前变慢

ease-in——以低速开始;ease-out——以低速结束

ease-in-out——低速开始和结束

steps(步长)——分几步完成动画

animation: bear 1s steps(8) infinite, move 8s forwards;

综合写法

animation: move 25s linear 2s infinite alternate;
  • 暂停动画+鼠标经过
  • 动画来回走——alternate
  • 动画结束后,停在结束位置——forwards
  • 不包括animation-play-state
  • 前两个不可省略

3D转换

z轴:垂直屏幕向外

3D位移: translate3d(x,y,z)

translform:translateX(100px):仅在x轴上移动
translform:translateY(100px):仅在Y轴上移动
translform:translateZ(100px):仅在Z轴上移动(注意:translateZ一般用px单位)
transform:translate3d(x,y,z):其中 x、y、z 分别指要移动的轴的方向的距离

透视: perspective

产生3D效果;写在被观察盒子的父盒子里面;透视越小,盒子越大

  • d:就是视距,视距就是一个距离人的眼睛到屏幕的距离。
  • z:就是 z轴,物体距离屏幕的距离,z轴越大(正值) 我们看到的物体就越大。

3D旋转: rotate3d(x,y,z)

transform:rotateX(45deg):沿着x轴正方向旋转 45度
transform:rotateY(45deg) :沿着y轴正方向旋转 45deg
transform:rotateZ(45deg) :沿着Z轴正方向旋转 45deg

正值:从上往里转(X);从右往里转(Y);顺时针(Z)

transform:rotate3d(1,0,0,45deg) 就是沿着x轴旋转 45deg
transform:rotate3d(1,1,0,45deg) 就是沿着对角线旋转 45deg

3D呈现 transfrom-style

控制子元素是否开启三维立体环境。(写给父级,影响子盒子)

默认不开启,开启为preserve-3d

案例-翻转盒子

<div class="box">
        <div>一万元</div>
        <div>10000元</div>
</div>
.box {
            /* perspective: 500px; */
            position: relative;
            width: 200px;
            height: 200px;
            margin: 100px auto;
            transition: all 2s;
            transform-style: preserve-3d;
        }

        .box:hover {
            transform: rotateY(180deg);
        }

        div {
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            border-radius: 50%;
            text-align: center;
            line-height: 200px;
            color: #fff;
        }

        div:first-child {
            background-color: orange;
            transform: translateZ(1px);
        }

        div:last-child {
            background-color: purple;
            transform: rotateY(180deg);
        }

私有前缀

-moz-:代表 firefox 浏览器私有属性
-ms-:代表 ie 浏览器私有属性
-webkit-:代表 safari、chrome 私有属性
-o-:代表 Opera 私有属性

posted @ 2023-10-20 17:20  齐嘉树  阅读(3)  评论(0编辑  收藏  举报