H5+C3

html5新标签

HTML标签的语义化

  • 语义化标签更具有可读性,便于团队的开发和维护
  • 没有css的情况下,网页也能很好的呈现出内容结构和代码结构
  • 关于SEO,搜索引擎更能理解到网页中各部分之间的关系,更准确更快速搜索信息

header标签(头部)

  1. 用来定义文档(网页或者是某一个段落)的页眉(头部)
  2. 可能包含一些标题元素,也可能包含其他元素,比如logo、搜索框、作者信息等等
  3. <header> 元素不是分段内容,而是属于独立分块的头部.因此不会往 大纲 中引入新的段落。也就是说,<header> 元素通常用于包含周围部分的标题(h1 至 h6 元素),但这不是必需的。
  4. 完成的网页或者是完整的块(网页的一个独立区域)是头部、内容、 尾部组成的(并不是强制)
  5. 整个页面没有header限制个数,可以使用多个
  6. <header> 元素不能作为 <address><footer> 或另一个 <header> 元素的子元素。

footer标签(底部)

  1. footer标签代表一个网页或者章节内容的底部区域(页脚)
  2. footer通常包含章节的作者,版权数据和文章的其他链接
  3. 其他和header同理,比如不是独立的区域,应该是隶属于一个章节或者是网页
  4. <footer> 元素不能作为 <address><header> 或另一个 <footer> 元素的子元素。

nav 标签(导航栏)

  1. <nav>元素表示页面的一部分,其目的是在当前文档或其他文档中提供导航链接。
  2. 导航部分的常见示例是菜单,目录和索引
  3. 并不是所有的导航都需要用nav标签,只是当前页面中比较重要的热门的可以使用nav,比如在底部导航,就没有必要加入链接
  4. 一个网页可能会有多个导航,比如整个网页的导航,也可以是某一块区域的导航

注意 nav使用有两种方法:

  1. 当nav中的导航列表是静态的:nav中直接嵌套a标签使用即可
  2. 当nav中的导航是动态的(需要滑动查看更多,主要出现在移动端):nav中最好嵌套ul>li>a标签

section标签(代替div 分块)

  1. section是html中一个独立的区域(主要针对网页分块),没有其他语义,一般会包含一个独立的标题
  2. 假设有一个效果,上边是nav导航栏,导航栏一般对对应一个区域,用来显示这个导航到的内容,这个区域我们就可以使用section
  3. section主要是对网页进行分块,也可以对网页中的某块内容进行分块
  4. 通常一个完整的section是有标题和内容组成的,不推荐给没有标题的区域设置section
  5. 如果想要给一个内容设置有个容器用来书写样式,那么还是推荐使用div

article标签(很强独立性)

  1. 代表文档、页面、或程序中,可以独立的完整的被外部引用的内容
  2. 比如一篇博客、一篇文章、一段用户的评论、一个日历插件,或者是其他独立内容
  3. 一般来说 一个article也有自己的头部header,或者是footer

div article 和 section

  • article和section

    1. article元素可以看做是特殊的section,但是强调独立性比section更强
    2. section主要强调分段分块,article是强调很强的独立性
    3. 原则上来说能用article的时候,也可以使用section,但是假设用article更合适,请使用article
  • div、article和section

    1. div、section、article语义依次递增

    2. div没有任何的语义,仅仅是用作样式,可以用在任何场景,但是我们容易看不清上下文关系

    3. 对于主题性的区域,我们可以使用section

    4. 加入这个区域可以脱离上下文,作为完整独立的内容存在,使用article

aside元素(侧边栏)

  1. 表示一个和其余页面内容几乎无关的区域
  2. 被认为是独立于内容的一部分,并且可以拆出来而不会使整体收到影响,通常表现为侧边栏
  3. 这个里边的内容和其他元素内容关联性不强

figure元素(引用)

  1. 代表一块独立的内容,是一个独立的引用单元
  2. 这个标签在主文中用来引用 图片、插画、表格、代码段等等信息
  3. 一般会在figure元素中插入figcaption元素(标题元素),将figcaption代表的标题与figure内容相关联
  4. 如果是单独一张图片 或者 单独的表格等等,那么直接使用相应的标签即可,如果存在图片和标题,那么请使用figure标签
   <figure>
        <figcaption>海贼王的图片</figcaption>
        <img src="../images/05.jpg" alt="" width="300">
    </figure>

datalist 元素

  1. 包含了一组option元素,代表是列表可选的值
  2. 和input进行相关联,用来配套使用
  3. input中的list属性 == datalist的id属性
	<input list="city" type="text">
    <datalist id="city">
        <option value="河南">河南</option>
        <option value="河北">河北</option>
        <option value="湖北">湖北</option>
        <option value="湖南">湖南</option>
        <option value="胡建">胡建</option>
    </datalist>

time元素

  1. 用来表示24小时制 或者是 一个公历时间
  2. 作用:以机器可读的格式去表示日期和时间,安排日程表的应用就可以使用这个time标签
  3. 通用时间格式 XXXX-XX-XX XX[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42hDfBVs-1610017824915)(https://github.githubassets.com/images/icons/emoji/XX.png)]XX
  4. 两种用法:
    1. time标签直接包含时间
    2. 使用datetime属性来表示时间
<p><time>2019-9-12 19:00:00</time></p>

 <p><time datetime="2019-9-12 18:00:00">一小时之前</time></p>

progress元素

  1. 主要用来显示一项任务的完成程度
  2. 规范没有规定默认的样式,所以各个浏览器默认的样式不一定相同
  3. 属性:
    1. value:是当前进度的值
    2. max:是总进度的长度
 <progress max="100" value="80"></progress>

HTML5新表单属性

表单的新属性规范

  1. h5规范允许 当属性名和属性值相等的时候 可以直接书写属性名即可

  2. 在js中,h5允许以布尔值的形式控制属性开启或关闭

    也就是在js中 给autofocus属性设置值为true(真,打开) 或者是 false(假,关闭)

    但是在元素的属性中 不允许使用true或者是false来控制开启或关闭

  3. 如果多个表单书写autofocus(只能出现一次的属性),那么以第一个书写的为准

表单的新属性(直接写在input后面的)

  • placeholder:

    占位符

  • autocomplete:

    是否提示用户曾经输入过的值 默认是on 关闭是off

  • autofocus:

    默认自动获取焦点

    他有唯一一个值是autofocus

  • required:

    必填项,当提交的时候,此表单必须填写

  • disabled:

禁用任何表单元素,这个元素就被禁止输入或选择等等操作

            使用disabled禁用表单,表单元素是不会在被提交了
  • checked:

    单选框或多选框 默认被选中

  • readonly:

对于可编辑的表单来说 表示不能再次被编辑 但是是可以被提交的

            对单选多选按钮不支持
  • form:
          如果input存在form属性,表示当前的input属于某一个表单

          此时form表单的id的值 就是这个input的值

          那么form表单 和当前的input就进行关联了

          无论input书写在哪里,都能随着表单发送数据
  • multiple(可以多选)

表单的新类型(type新类型)

type新类型

  1. color:

    用来引入或者打开指定颜色的控件

  2. date:

    日期的控件(年月日)

  3. week:

    日期的控件(年周)(火狐不支持)

  4. month:

    日期的控件(年月)(火狐不支持)

  5. email:

    编辑email的字段

    自带验证,但是验证不完整,一般还是自己书写

    在移动端上 有相对应的自动弹出键盘包含 @ .com 等按键

  6. number:

    用来输入数字的控件

    多了一个上下的按键,可以增加和降低数字大小

    验证必须是数字

    其他属性

    • min:最少数量
    • max:最大数量
    • value:当前数量
    • step:每次累加累减数量
  7. search:

    用来搜索框,当用户输入内容后,在末尾有一个删除按钮,单击可以删除输入好的文字

  8. tel:

    电话号码输入框

  9. url:

    url地址

  10. range:

    输入一个拖拽的控件

    属性:

    • max:最大值
    • min:最小值
    • step:每次走的最小单位
    • value:当前值
<form action="###" method="get">
        请选择你喜欢的颜色:
        <input type="color" name="color">
        <br>

        请选择你的出生日期:
        <input type="date" name="brithday">
        <br>

        请输入当前的周数:
        <input type="week" name="week">
        <br>

        请输入你几月生日:
        <input type="month" name="month">
        <br>

        请输入您的邮箱地址:
        <input type="email" name="email">
        <br>

        请选择您购买的数量:
        <input type="number" name="num" min="2" max="10" step="2">
        <br>

        请在本框中进行检索:
        <input type="search" name="sear">
        <br>

        请输入您的电话号码:
        <input type="tel" name="tel">
        <br>

        请输入你的个人博客的网址:
        <input type="url" name="url">
        <br>

        请选择:
        <input type="range" name="range" min="30" max="100" value="50">
        <br>
        <br>
        <button>提交</button>
    </form>

调用相册和摄像头

  • input的file补充:

    <input type="file" accept="image/*" capture="camera">

    文件域 的 accept属性书写 image/* 代表接受任何格式的图片

    capture=camera 代表从相机拍照接收

    capture=photo 代表从相册选取照片

    但是在pc端的表现都是选取文件

	<input type="file" accept="image/*" capture="camera">

    <input type="file" accept="image/*" capture="photo">

音视频:

视频基本标签用法 :

  • <video width=" " height="" src=""> </video>
    
  • src 属性:指定播放文件的URL。

  • width、height属性:

    • 设置媒体元素的大小,单位为像素;
    • 省略该属性,则使用播放源文件的大小;
    • 仅设置宽度值,将根据播放源文件的长宽比例自动生成一个与之对应的高度值,如果设置高度过高会在设置高度中居中
<video width="320" height="240" controls>
  <source src="movie.mp4" type="video/mp4">
  <source src="movie.ogg" type="video/ogg">
  <source src="movie.webm" type="video/webm">
您的浏览器不支持 video 标签。
</video>

音频基本格式 :

  • <audio  src="" controls> </audio>
    
  • src 属性:指定播放文件的URL。

  • 其他和视频一样。

  • 指定一种视频格式,不能播就提示: <video src="examp.mp4" >您的浏览器不支持</video>

  • 给定多个source标签,给定多种视频格式,浏览器根据自身支持程度选择播放哪一种 <source src="1.mp4" type="video/mp4" />

controls :添加控件
autoplay:制动播放 需开启静音
muted:静音
loop:是否循环
poster:视频播放前一帧

C3

浏览器前缀

一个css属性,可能是通用的,也可能是私有的(自己兼容或者正在测试,其他还不能用),需要给当前的属性添加前缀
前缀可能添加在属性名上,也可能添加到属性值上
谷歌前缀:-webkit-
safari:-webkit-
欧朋:-webkit- -o-
火狐前缀:-moz-
ie前缀:-ms-

结构选择器:

E:first-child选择第一个子元素E
E:last-child选择最后一个子元素E
E:nth-child(n)选择一个或多个特定的子元素 (第一个编号为1)
E:nth-last-child(n)选择一个或多个特定的子元素,从最后一个子元素开始算
E:only-child匹配父元素下仅有的一个子元素
E:empty匹配一个不包含任何子元素的元素 ( 文本节点也被看作子元素 )
E:not(s)匹配不符合当前选择器的任何元素( 反选 )

nth-of-type() 是当前同类型元素在父元素中的第几个

圆角边框

border-radius:

 /*8个值:1 2 3 4/5 6 7 8*/
 /*1 2 3 4代表横向上的4个位置    5 6 7 8 代表竖向上的4个位置*/(顺时针)
 border-radius: 10px 20px 30px 40px/50px 60px 70px 80px;
 
 /*设置每个角1个半径,总共4个值*/
 border-radius: 30px 40px 50px 60px;
 
 
  /*横向都是40  竖向都是60px*/
  border-radius: 40px/60px;
  
   /*左上右下是40  左下和右上是60*/
   border-radius: 40px 60px;
   
   
   /*border-radius百分比是相对于自身的宽高*/
   border-radius: 10% 0 0 0;
   

文字阴影

text-shadow: 1px 1px 1px color;

none: 无阴影

第1个长度值:阴影水平偏移值。可为负值

第2个长度值:阴影垂直偏移值。可为负值

第3个长度值:可选,阴影模糊值。不允许负值

color: 设置阴影的颜色

可以重叠做成其他效果

text-shadow:
		1px 1px 1px   color,
		1px 1px 1px   color,
		1px 1px 1px   color,
		1px 1px 1px   color;

盒子阴影

和文本阴影相比,盒阴影多一个属性值——阴影外延值(第四个值)

box-shadow: 0px 0px 0px 0px #666;
也可以重叠

 div p:nth-child(2){
            box-shadow:
                    1px -1px 0px 0px rgba(100,100,100,.8),
                    2px -2px 0px 0px rgba(100,100,100,.7),
                    3px -3px 0px 0px rgba(100,100,100,.6),
                    4px -4px 0px 0px rgba(100,100,100,.4),
                    5px -5px 0px 0px rgba(100,100,100,.3),
                    6px -6px 0px 0px rgba(100,100,100,.2),
                    7px -7px 0px 0px rgba(100,100,100,.1);
        }

图片移入阴影效果

 		img{
            transition: all .2s linear;
        }
        img:hover{
            box-shadow: 3px 3px 3px 0 #666;
        }

滤镜设置

  • 使用filter属性(IE不支持)

    blur(px):模糊

    brightness(%):亮度

    contrast(%):对比度

    opacity(%):透明度

    saturate(%):饱和度

….

合写:

filter: blur(1px) brightness(100%) contrast(100%) saturate(100%);

CSS3多列

  • css column 定义了多栏布局的模块
  • 表现出列之间怎么流动,及多列之间的间隙和分割线,并且使用了列高平衡,除了最后一列,其他列高度一样

多列属性

  • column-count

    1. 定义:规定元素应该被分隔的列数
    2. 语法:column-count: number;
  • column-width

    1. 定义:列的宽度
    2. 语法:column-width:像素值

    column-count和column-width用来控制列的宽度和数量:

    • column-count是控制列数
    • column-width是控制每一列的最小宽度
    • column-count和column-width冲突的时候,分为栏数少的优先

    columns是简写,后边跟 count和width 也可以随意跟count和width其中的一个值

    columns:200px 10;

  • column-gap

    1. 定义:规定列之间的间隔

    2. 语法:column-gap: 像素值;

  • column-rule(列与列之间的线)

    1. 定义:所有 column-rule-* 属性的简写属性(颜色,样式,宽度)

    2. 语法:column-rule: 颜色,样式,宽度;

    3. 列之间规则的颜色:[column-rule-color]

      列之间规则的样式:[column-rule-style]

      列之间规则的宽度:[column-rule-width]

  • column-span(一般是头部标题)

    1. 定义:元素应该横跨的列数
    2. 语法:column-span:all

图片瀑布流

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-awA6mxhc-1610017824924)(C:\Users\宋文现\AppData\Roaming\Typora\typora-user-images\image-20200628182120670.png)]

        .box{
            column-width: 300px;
        }
        .box img{
            width: 100%;
            /*
                img的宽百分百以当前列宽为参考
            */
        }

线性渐变

渐变的写法:

  • 从上到下(默认):background: linear-gradient(red,blue);
  • 从左到右:background: linear-gradient(to right,red,blue);
  • 对角:background: linear-gradient(to right bottom,red,blue);
  • 角度background: linear-gradient(45deg,red,blue);

重复渐变

background: repeating-linear-gradient(90deg,red 0%,blue 20%);

background: repeating-linear-gradient(90deg,red 0%,blue 10%,red 20%);

径向渐变

background: radial-gradient(at center center,red 25%,white 25%);

第一个参数at书写圆心的地址

背景设置

背景图原点:

  • background-origin :padding-box; (默认)

    border-box | padding-box | content-box

  • background-origin是用来决定图片的原始起始位置。

  • 它有三个可选值content-box,padding- box,border-box,即可以选择背景图片是从内容区域或者内边距或者边框开始显示。

背景图裁剪:

  • background-clip

    border-box | padding-box | content-box

  • background-clip的作用为将背景图片做适当的裁剪,以适应需要。

  • background-clip有content- box,padding-box,border-box,text几个值剪裁方法:根据设置的盒子部位,那么图片在这个部位的外边缘以外的部分都会不可见。

设置原点与裁剪互不冲突

背景图大小:

背景图大小:(不会设置背景颜色)
background-size:
cover: 充满容器,比例不发生变化,但是图片可能超出

​ contain: 保证至少有一边充满容器,比例不发生变化,图片可能不能填充满容器

​ 百分比: x和y的值 百分比是相对容器的宽高 图片比例可能发生变化

            background-size: cover;
            background-size: contain;
            background-size: 100% 100%;
            background-size: 100px 150px;

多重背景

多重背景:书写在前边的覆盖书写后边的

background:
           url("../images/03.jpg") left center no-repeat,
           url("../images/01.jpg") right center no-repeat;

css动画

过渡动画(transition)对自己设

  • 允许 CSS 的属性值在一定时间区间内平滑的过渡,在鼠标点击,鼠标滑过或对元素任何改变中触发,并圆滑地以动画改变css的属性值

  • transition-property :规定过渡的属性,多个可以使用逗号间隔,或者直接书写all

  • transition-duration :规定当前动画持续时间。

  • transition-timing-function :控制动画类型
    http://cubic-bezier.com/(贝塞尔曲线生成器),可以自定义动画类型。

    ​ linear:匀速

  • transition-delay:控制动画延迟时间

  • 常用合写:

    transition: all 1s linear 1s;

  • 注意事项:

    并不是所有元素都支持过渡

    元素没有渲染完的情况下,过渡不生效

过渡动画的触发方式

1.hover触发

2.js触发

​ 直接改变样式

​ 改变或添加删除类名

关键帧动画:

@keyframes

关键帧名称 animation-name

关键帧持续时间 animation-duration

动画执行方式 animation-timing-function: linear 逐帧动画用steps(多少份)

动画延迟时间 animation-delay:

动画循环次数 animation-iteration-count: infinite为无限次

动画播放方式 animation-direction:

默认normal,动画正常播放; alternate,动画轮流反向播放(播放完又倒播放回去)

合写:animation:名字 时间 方式 延迟 循环次数

 @keyframes change {
            from{
                width: 100px;
                height: 100px;
                background-color: red;
            }
            to{
                width: 200px;
                height: 200px;
                background-color: pink;
            }
            
  <!--
    @keyframes用来定义关键帧
    关键帧的起点是0%(from)  结束点是100%(to)

    当from和to不是默认样式的话,动画开始后会直接跳到0%的样式,动画结束后,会跳到动画默认样式

    如果百分之0和百分之百不写,那么默认效果就是百分之0和百分百


-->        

动画的暂停和播放

animation-play-state 属性

  • paused:规定动画已暂停
  • running:规定动画正在播放

动画开始和结束状态

animation-fill-mode 属性

  • none:使用得动画不会对动画等待和动画完成的元素样式产生改变
  • forwards:告诉浏览器动画结束后,元素的样式将设置为动画的最后一帧的样式
  • backwards :那么在动画等待的那段时间内,元素的样式将设置为动画第一帧的样式
  • both:在动画等待和动画结束状态,元素将分别应用动画第一帧和最后一帧的样式

元素变换(transform)2D

  • 可以分为旋转(rotate) 移动(translate)缩放(scale)扭曲(skew)

  • rotate沿着中心旋转 ,正值为顺时针,负值为逆时针

    rotateX 沿着x轴旋转,正值元素的上侧,向屏幕内旋转

    rotateY 沿着y轴旋转,正值元素的左侧,向屏幕外旋转

    transform:rotatey(30deg)

  • scaleX水平方向缩放 scaleYf垂直方向缩放,缩放的值是比例。

    scale则是合写 ,水平垂直一起缩放。

    transform:scale(倍数)

  • translate移动,translateX水平移动 ,translatey垂直移动

    合写translate:后跟两个值,一个代表X,一个代表Y; 只有一个值的话代表X.

    transform:translate(x y)

  • skew(deg)扭曲 ,skewX水平方向扭曲,skewY垂直方向扭曲

    合写skew:后跟两个值,一个代表X,一个代表Y; 只有一个值的话代表X.

    transform:skew( deg deg)

弹性盒子(flex布局)

  • 开启:display:flex;(safari兼容)-webkit-flex
  • 开启flex的元素自身不会受影响,子元素的浮动会失效,vertical-align也会失效
  • flex盒子只能影响子元素,不会影响子元素以下的元素,如要的话可以给子元素再设。
  • 开启后父级叫伸缩容器,子元素叫伸缩项目
  • 默认情况下从左往右排,横向主轴,竖向叫侧轴(交叉轴),开始是主轴开始,结束是主轴结束。

开启后特性:

项目沿着主轴从左至右依次排列(可以改变主轴方向,从而改变元素的排列方向)

项目没有设置高度的话则高度撑满容器

当项目宽度超出总宽度,并不会超出或换行,而是按比例压缩项目。

不会影响当前元素的浮动和定位。

flex-direction:主轴布局方向(按方向元素依次排)

​ row:默认 主轴方向从左至右。

​ row-reverse:主轴方向从右至左。

​ column: 主轴方向从上至下,侧轴主轴交换位置(元素未设宽的话,侧轴充满)

​ column-reverse:主轴方向从下至上,侧轴主轴交换位置,侧轴依然从左往右。

justify-content:主轴富裕空间管理

​ flex-start:项目排列在主轴开始位置

​ flex-end:项目排列在主轴结束位置(和反转主轴不一样 ,这个是整体移动到结束位置)

​ center:项目居中

​ space-between:项目包含富裕空间

​ space-around:富裕空间包含项目

​ space-evenly:富裕空间包含项目,所有项目左右富裕空间一致。

align-items:侧轴富裕空间管理

​ flex-start:元素在侧轴的开始位置

​ flex-end:元素在侧轴的结束位置

​ center:元素在侧轴居中

​ baseline:元素以基线对齐

​ stretch:默认,项目撑满侧轴(如果设置了宽高,以宽高为优先)

flex-grow:富裕空间分配(设置给项目的)后接数字

flex-wrap:项目换行(超出才换)

​ nowrap:不换行

​ wrap:换行(无论主轴方向如何,超出容器的宽度或高度都会换行)

​ wrap-reverse:换行并且反转侧轴。(从左至右变从右到左排;从上至下变从下至上排)

超出换行后每行都有自己独立的主轴侧轴。操作都在自己的轴里进行。

align-content:控制项目换行后,整体的侧轴对齐方式。(必须有换行才能生效)

意思是换行元素跳出自己独立的轴空间,整体打包 相对于整个容器的侧轴的对齐方式。

​ flex-end:结束位置

​ flex-start:开始位置

​ center:居中位置

​ space-between:项目包含侧轴富裕空间

​ space-around:侧轴富裕空间包含项目

​ space-evenly:侧轴富裕空间包含项目,富裕空间一致。

align-self:项目自身侧轴的富裕空间(设置给项目)不需要换行也可以

每一个项目控制自身的侧轴

align-self: flex-start;

align-self: flex-end;

align-self: center;

order排序:设置给项目 后接数字

正order > 无order(order为0)> 负order

order越大越往后排,越小越往前排,可以用来改变顺序。

flex-basis: 0 子元素的基准值 设置给项目

定义了在分配剩余空间之前,项目所占据主轴的位置多少。

一般和flex-grow 搭配使用,使项目等高等宽(等高等宽视主轴方向而定)

flex-shrink:项目的收缩率 设置给项目 超出压缩分配

默认为1

flex属性合写 设置给项目

flex: flex-grow flex-shrink flex-basis的合写

默认值: 1 1 auto

flex-flow属性合写 设给容器

flex-flow: flex-wrap flex-direction

低版本IE兼容

<script src="https://cdn.jsdelivr.net/npm/html5shiv@3.7.3/dist/html5shiv.min.js"></script>

<script src="https://cdn.jsdelivr.net/npm/respond.js@1.4.2/dest/respond.min.js"></script>
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值