HTML+CSS-前端学习一阶段-周5.md

目录

 

 

# HTML5

## 一、HTML5简介

## 二、新增语义化标签

### 三、其他标签

### 四、兼容处理

##  五、表单新特性

## 六、多媒体

## 七、删除的标签(了解)

# CSS3

## 一、CSS3简介

## 二、新增选择器(权值为10)

## 三、新增背景属性

## 四、渐变

## 五、用户界面

## 六、多列布局


 

# HTML5

## 一、HTML5简介

> HTML5是html的最新的标准(版本)

- 浏览器支持:ie9+对html5新特性部分支持,新的主流浏览器(chrome、火狐\safari)

- 向前向后兼容,语法变化:

   - 标签可以自动闭合

   - 属性值可以省略引号

   - 属性值和属性名相同,可以省略属性值

   - 引入样式表link标签可以省略type

- *增加了语义化标签、智能表单、音频视频(多媒体)、canvas绘图、svg矢量图、地理定位、web存储

- 删除掉一些标签


 

## 二、新增语义化标签

 

### 结构化标签(块级)

- 1、header标签

> 定义整个网页的头或者是某个模块的头部,一般放顶部导航、logo、标题、搜索栏等

- 2、footer标签

> 定义整个网页的底部或者是某个模块的底部,一般放版权信息,联系方式,底部导航等。

- 3、main标签(ie不兼容,不建议用)

> 定义整个页面的主体部分,建议只使用一次

- 4、article标签

> 定义页面中独立的文章区域:博客,新闻,评论...

- 5、nav标签

> 定义各种导航:顶部导航,底部导航,侧导航,翻页导航,路径导航等

- 6、section标签

> 定义页面内容的分区或者文章的分节,一般section里面由标题和内容组成

- 7、aside标签

> 定义和主题内容相关性不大的内容,比如侧边栏广告,推荐,侧边栏导航等

- 8、hgroup标签

> 定义标题组,把主标题和副标题组合在一起

- 9、figure标签

> 定义文章或者模块中独立的图片、图表、照片等

> 一个figure可以包含多个图片

- 10、figcaption 标签

> 和figure搭配使用,为图片提供标题

> 一个figure只能包含一个figcaption标题

 

### 三、其他标签

1、time标签

> 定义时间,行内标签

```

    <p>今天是<time datetime="2020/4/1">愚人节</time></p>   //如果不是直接包含的时间字符串,需要用datetime属性给time标签定义具体的时间

    <p> 双十一开抢时间<time>2020/11/11 11:11:11</time></p>  // 如果time标签之间写的是具体的时间,就不需要加datetime属性

```

2、mark标签

> 定义带标记的文本(高亮显示),行内标签

 

### 四、兼容处理

> 因为新的语义化标签在ie低版本中会解析错误,样式布局不能正常展示

- 解决方法:

- 方法一:

    1、通过js创建新增的标签

    ```

         document.createElement('header');

         document.createElement('footer');

         document.createElement('nav');

         ...

    ```

    2、把结构化标签转换成块级

    ```

        header,footer,nav...{

            display:block;

        }

    ```

- 方法二:

  > 引入html5shiv.js插件   https://www.bootcdn.cn/html5shiv/

  ```

    <!--[if ie]>

    <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv-printshiv.js"></script>

    <![endif]-->

  ```

 

##  五、表单新特性

 

### 1、新增的表单元素

>1) color类型 :颜色选取框   <input type="color" name="color"> 

 

>2) datetime类型:日期输入框 <input type="datetime" name="datetime">

 

>3) datetime-local类型: 本地日期时间输入框(年/月/日 小时:分钟),自带日历操作控件,可输入可选择,格式比较规范

> <input type="datetime-local" name="datetime-local">

 

>4) date类型: 日期输入框(年/月/日),自带日历操作控件,可输入可选择,格式比较规范

> <input type="date" name="date">

 

>5) month类型: 月份输入框(年/月),自带日历操作控件,可输入可选择,格式比较规范

> <input type="month" name="month">

 

>6) week类型: 一年中的第n周,自带日历操作控件,可输入可选择,格式比较规范

> <input type="week" name="week">

 

>7) time类型:输入时间(小时:分钟) ,可以输入和使用箭头加减

> <input type="time" name="time">

 

>8) email类型:输入邮箱格式的字符串,内置了邮箱格式规则验证

> <input type="email" name="email">

 

>9) number 类型:输入数字,无法输入数字以外的字符,在移动端自动调出数字键盘

> <input type="number " name="number ">

 

>10) tel类型: 输入电话, 没有规则验证,可以输入任意字符

> <input type="tel " name="tel">

 

>11) url类型: 输入网址格式的字符串,内置了网址格式规则验证

> <input type="url" name="url">

 

>12) search类型: 搜索输入框,自带快速清空内容的 “×” 号 

> <input type="search" name="search">

 

>13) range类型: 获得一个数值,在一个范围内用滑块去操作

> <input type="range" name="range">

 

>14) datalist标签:专门给输入框提供选项列表

> <input type=" datalist" name=" datalist">

 

 - list属性用来绑定对应的列表

```

        <input type="text" list="list1">

        <datalist id="list1">

            <option value="AA">aa</option>

            <option value="BB">bb</option>

            <option value="CC">cc</option>

        </datalist>

```

 

### 2、新增属性

- 1、list属性:用来给输入框绑定对应的列表

- 2、min、max属性:分别定义number或者range类型的最小值和最大值

- 3、step 属性:用来定义number或者range类型的加减步长 

```

    <input type="number" min="0" max="10" step="2">

```

- 4、required 属性 : 把表单元素设置位必填项

```

    <input type="text" required>

```

- 5、pattern 属性:用来定义表单输入的内容的规则

```

    <input type="tel" pattern="1[356789][0-9]{9}" name="tel">

```

- 6、placeholder属性: 给输入框定义提示占位符,当输入内容时消失,输入框为空的时候显示有value就不会显示

```

    <input type="text" placeholder="请输入。。。">

```

- 7、autofocus 属性: 设置表单元素自动获得焦点,一般只能设置一个自动获得焦点的元素

```

    <input type="text" autofocus>

```

- 8、autocomplete 属性:设置表单元素的自动补全功能,on表示开启,off表示关闭

```

    <input type="text" autocomplete="on">

```

- 9、form属性: 给表单元素定义所属的表单域(form),用于把表单元素放在form以外时指定随哪个表单域一起提交数据

 

```

    <input type="text" form="loginForm">

    <form id="loginForm">

    </form>

```

- 10、multiple属性: 设置文件域和下拉列表支持多选

 

```

    <input type="file" multiple>

    <select multiple /size="2">

    </select>

```

 

* 注意: 新表单类型和属性在ie中支持情况不好,并且目前没有比较好的解决方案,pc端项目避免使用,目前主要是流行在移动端

 

## 六、多媒体

 

```

音频

    <audio src="" controls loop muted></audio>

视频

    <video src=""  controls loop muted width="" height="" poster=""></video>

```

 

### 1、音频 audio

 

```

    <audio src="./videoAudio/hanmai.mp3" controls loop></audio>

```

> 属性: 

 - src="资源路径": 用来引入音频文件的地址

 - controls : 用来调出控制器(播放暂停、进度、音量)

 - loop : 用来设置音频为循环播放

 - muted: 规定音频默认静音

 

### 2、视频

```

    <video src="./videoAudio/movie.mp4" width="800" controls loop poster="./img/pic.png"></video>

```  

>属性:

 - src="资源路径": 用来引入视频文件的地址

 - controls : 用来调出控制器(播放暂停、进度、音量、全屏,画中画)

 - loop : 用来设置视频为循环播放

 - muted: 规定视频默认静音

 - width: 规定视频宽度

 - height: 规定视频高度

 - poster: 规定视频没有播放时显示的广告图(海报)

 

### 3、音视频资源 source标签

> 为音频和视频提供多种格式的资源文件,浏览器会识别第一个能够支持的视频格式进行播放

 

```

    <audio controls>

        <source src="../0401/videoAudio/nada.wav" type="audio/wav">

        <source src="../0401/videoAudio/butterfly.ogg" type="audio/oggg">

        <source src="../0401/videoAudio/hanmai.mp3" type="audio/mp3">

        您的浏览器不支持音频

    </audio>

```

## 七、删除的标签(了解)

```

    font

    basefont

    center

    big

    s

    u

    strike

    dir

```


 

# CSS3

 

## 一、CSS3简介

>是CSS的最新版本,在CSS2.1基础上进行增补与修改。  

 

1、 CSS3新增模块  (记住)

   - 选择器、边框属性、背景属性、文本效果、2D/3D转换、动画、多列、弹性盒布局、用户界面

 

2、浏览器兼容情况:  ie9+、标准浏览器新版本

 

3、 渐进增强、优雅降级

   - 渐进增强: 针对低版本的浏览器构建页面,保证最基本的功能,然后再针对高版本的浏览器进行效果和交互的优化,从而达到一个良好的用户体验

   - 优雅降级:一开始就实现一个良好的体验和完整的功能,再针对低版本浏览器做兼容处理

 

4、 浏览器私有前缀

> 浏览器私有前缀是浏览器厂商为了表示对一些css3属性提前支持,但是属性尚未成为标准,如果属性成为标准之后,就不需要再加前缀

```

    -webkit-  : 老版本chrome、safari

    -moz- : 火狐浏览器

    -o-:  欧鹏浏览器

    -ms- : IE浏览器

```

 

> 自动添加私有前缀的插件  Autoprefixer

> 用法:   编写.css 文件,然后 F1 -- > Autoprefixer:run

 

## 二、新增选择器(权值为10)

 

### 1、属性选择器

 

- css2的属性选择器

  - 1、[attr] : 选择带有attr属性的标签

  - 2、[attr=val]: 选择attr属性值等于val的标签 

  - 3、[attr~=val]: 选择attr属性值词列表中包含val完整单词的标签

```

    <div class="box" id="box1" ></div>

    <div class="red" flag="1"></div>

    <div class="green"></div>

    <p class="p1"></p>

    <input type="text">

 

    div[id=box1]{  /* 11 */

           border: 2px solid blue; 

        }

        div[flag]{

            background-color: red;

        }

        div[class=red]{

            border:3px solid yellow

        }

       

        input[type=text]{

            border: 2px solid red;

        }

        li[class~=red]{

            background-color: turquoise;

        }

        li[flag~=hello]{

            border: 2px solid purple;

        }

```

- css3的属性选择器

  - 1、[attr^=val]: 选择attr属性值以val开头的标签  

  - 2、[attr$=val]: 选择attr属性值以val结尾的标签

  - 3、[attr*=val]: 选择attr属性值里面包含val字符的标签

```

        a[href^=http]{

            color: chartreuse;

        }

        a[href$=html]{

            color: cyan;

        }

        [class*=box]{

            color: red;

            font-size: 30px;

        }

        [class*=red]{

            border: 2px solid pink;

        }

        [class*=e]{

            background-color: cyan;

        }


 

    <a href="http://www.baidu.com">aaaa</a>

    <a href="./1、音视频资源.html">bbbb</a>

    <a href="http://www.ujiuye.com">bbbb</a>

    <div class="box redbox">1</div>

    <div class="box1 red">2</div>

    <div class="box2 aared">3</div>

```

 

### 2、结构伪类选择器

  - 1、:first-child: 选择同级元素中的第一个  

  - 2、:last-child : 选择同级元素中的最后一个

  - 3、:nth-child(n): 选择同级元素中的第n个

    - :nth-child(2n) : 选择同级元素中第偶数个元素

    - :nth-child(2n+1) : 选择同级元素中第奇数个元素

  - 4、:nth-last-child(n) : 选择同级元素中的倒数第n个

 

  - 5、:first-of-type : 选择同级同种类型标签中的第一个

  - 6、:last-of-type:  选择同级同种类型标签中的最后一个

  - 7、:nth-of-type(n) :   选择同级同种类型标签中的第n个

  - 8、:nth-last-of-type(n): 选择同级同种类型标签中的倒数第n个

 

```

.box span:first-child{}---无空格是找.box下第一个子元素是span

.box span :first-child{}---有空格是找.box 下span里的第一个子元素

```

### 3、表单状态伪类选择器

 

 - :enabled     选择可用状态的表单元素

 - :disabled    选择禁用状态的表单元素

 - :checked    选中状态的单选和复选框

 - ::selection   选择用户选中的元素部分内容


 

## 三、新增背景属性

 

css2:

    background-color

    background-image

    background-repeat

    background-postion


 

- 1、多背景

 

```

    background-image: url(""),url("");//设置多个背景图片,顺序越靠前,层级越高

    background-repeat: no-repeat,repeat;   /* 两个图片的重复属性不同 */

    background-repeat: no-repeat;  /* 两个图片的重复属性相同 */

    background-position: right top, center;   /* 两个图片的定位属性不同 */

    background-position: center;   /* 两个图片的定位属性相同 */

 

```

```

多背景简写:

    background:url(...) no-repeat center,url(...) repeat-x left bottom,...;

```

 

- 2、背景尺寸

 

> background-size

 

    - length : 宽度(500px)  高度(300px)  , 一个值表示设置宽度,高度自动    

    - 百分比:参考盒子的尺寸, 宽度(50%)  高度(100%) , 一个值表示设置宽度,高度自动

    - cover : 覆盖 ,图片会等比例缩放,直到能够覆盖整个盒子,但是有可能图片无法完全显示

    - contain : 包含 ,图片会等比例缩放,直到图片刚好被完全包含进来,但是有可能盒子没有完全覆盖

 

- 3、背景图片初始位置

> background-origin

 

    - border-box : 背景图片从边框区域开始显示,并且从边框开始计算定位

    - padding-box :默认值, 背景图片从内边距区域开始显示,并且从内边距开始计算定位

    - content-box: 背景图片从内容框区域开始显示,并且从内容框开始计算定位

- 4、背景裁切

> background-clip

 

    - border-box : 默认值,边框以外背景被裁切

    - padding-box : 内边距以外背景被裁切

    - content-box : 内容区以外背景被裁切

 

>* 新增的背景属性不能用background属性简写

 

## 四、渐变

> 渐变不是一个颜色模式,专门用来修饰盒子背景

 

可以设置给:background、background-image

不能设置给:background-color


 

- 1、线性渐变

> linear-gradient(direction,color-start,color-stop,color-stop...)

```

   background: linear-gradient(to right,red,#ff0 20%,rgb(0,255,0) 50%,blue);

```

 

- direction : 渐变方向

    - to bottom :默认值 ,从上到下渐变

    - to top : 从下到上

    - to right : 从左到右

    - to left   : 从右到左

    - to top right : 从左下到右上

    - to left bottom : 从右上到左下

    - angle度数    : 0deg 从下到上  45deng  左下到右上  ...

    ...

- color-start :起始颜色

- color-stop : 渐变停止的位置

```

重复的线性渐变

repeating-linear-gradient(direction,color-start,color-stop,color-stop);

最后一个颜色值不到百分之百,后面剩余的空间就会重复前面的渐变效果

    background: repeating-linear-gradient(to right,red,yellow 20%);

```

```

多组渐变

 background: linear-gradient(red,rgba(255,255,0,0.5)),linear-gradient(to right,blue,green),...;

```

 

- 2、径向渐变

> radial-gradient((cx cy),(rx ry),color-start, color-stop...);

> 加上webkit私有前缀才能兼容半径和圆心的设置

```

    background: -webkit-radial-gradient(0% 100%,100% 50%,red,yellow,green);

```

- 圆心位置(cx cy): 水平和垂直座标

    - 取值可以是 长度值(100px 100px)/百分比 (100% 50%)/关键词 (left top) 

- 半径(rx ry) : 水平和垂直半径长度

    - 取值可以是:长度值(100px 100px)/百分比 (100% 50%)

```

重复径向渐变

repeating-radial-gradient((cx cy),(rx ry),color-start, color-stop...)

如果最后一个颜色值不到100%,剩下的空间就会重复前面渐变

```


 

```

多组径向渐变

 background: radial-gradient(red,rgba(255,255,0,0.5)),radial-gradient(to right,blue,green),...;

```


 

## 五、用户界面

 

1、resize 是否允许用户缩放元素尺寸

> 需要配合overflow:auto/hidden/scroll属性,才能生效

```

取值:

    none : 不允许用户缩放

    both  : 水平和垂直都可以缩放

    vertical: 垂直缩放

    horizontal: 水平缩放

 

通常用来取消多行文本域用户可改变尺寸效果 `textarea{resize:none}

```

 

2、box-sizing  

> 用来规定盒子的盒模型的计算方式

```

 content-box(标准盒): 默认值,盒子实际占位宽 width + 左右padding + 左右border ,三者共同决定

 border-box (怪异盒): 盒子的实际宽只由width属性决定,添加padding和border会压缩内容区宽度,而盒子整体大小不变

```

 

## 六、多列布局

> css3提供的一种布局方式,能够快速实现类似于报纸布局那样的多列效果

- 1、column-count: 设置多列列数

- 2、column-width: 设置每一列的列宽 ,不方便精准控制列宽和列数,比较少用

- 3、column-gap: 设置两列之间的间距

- 4、column-rule: 设置两列之间的分界线 , 语法同边框



 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章