HTML&CSS

HTML5新特性

简洁的DOCTYPE:

HTML5 只有一个简单的文档类型:<!DOCTYPE html>,表示浏览器会按照标准模式解析。

简单易记的编码类型

你现在可以在meta 标签中使用”charset”:<meta charset=”utf-8″ />

脚本和链接无需type

<link rel="stylesheet" href="path/to/stylesheet.css" />
<script src="path/to/script.js"></script>

更加语义化的新增标签

比如说:<article>、<section>、<aside>、<hgroup>、 <header>,<footer>、<nav>、<time>、<mark>、<figure> 和<figcaption>

视频和音频

<video width="640" height="320" preload="auto" poster="0.jpg" controls>
	<source src="movie.ogg" type="video/ogg" />
  	<source src="movie.mp4" type="video/mp4" />
	Your browser does not support the video tag.
</video>

表单增强

  • 新的input类型:color, email, date, month, week, time, datetime, datetime-local, number,range,search, tel, 和url
  • 新属性:required, autofocus, pattern, list, autocomplete 和placeholder
  • 新元素:<keygen>, <datalist>, <output>, <meter> 和<progress>

canvas标签绘制2D图形。

var canvas = document.getElementById('canvas');
var context = canvas.getContext('2d');
context.beginPath();
context.moveTo(100,100);
context.lineTo(300,300);
context.lineTo(100,500);
context.lineWidth = 5;
context.strokeStyle = "red";
context.stroke();

地理位置获取

HTML语义化

1.什么是HTML语义化?

通过标签判断内容语义,例如根据h1标签判断出内容是标题,根据<p>判断内容是段落、<input>标签是输入框等。

2.为什么要语义化?

1).去掉或样式丢失的时候能让页面呈现清晰的结构
2).方便其他设备解析(如屏幕阅读器、盲人阅读器、移动设备)以意义的方式来渲染网页
3).有利于SEO
4).便于团队开发和维护,遵循W3C标准,可以减少差异化

3.如何确定你的标签是否语义良好?

去掉样式,看网页结构是否组织良好有序,是否仍然有很好的可读性。

4.常见的语义化标签模块

表单

<form action="" method="">
	<fieldset style="border: none">
		<legend style="display: none">登录表单</legend>
		<p><label for="name">账号:</label><input type="text" id="name"></p>
		<p><label for="pw">密码:</label><input type="password" id="pw"></p>
		<input type="submit" name="登录" class="subBtn">
	</fieldset>
</form>

表单域要用fieldset标签包起来,并用legend标签说明表单的用途;每个input标签对应的说明文本都需要使用label标签,并且通过为input设置id属性,在lable标签中设置for=someld来让说明文本和相对应的input关联起来。

5.语义化标签应注意的一些问题

  • 尽可能少的使用无语义的标签div和span;
  • 在语义不明显时,既可以使用div或者p时,尽量用p, 因为p在默认情况下有上下间距,对兼容特殊终端有利;
  • 不要使用纯样式标签,如:b、font、u等,改用css设置。
  • 需要强调的文本,可以包含在strong或者em标签中,strong默认样式是加粗(不要用b),em是斜体(不用i)

6.HTML标签分类

块级标签

特点:独占一行,可以设置宽度和高度,默认宽度为100%;
这类标签有:div、p、h1、h2、ul、li,ol,form

行内(内联)标签

特点:多个行内标签能同时显示在一行,宽度和高度取决于内容的尺寸。
这类标签有:span、a、label、i、strong

行内-块级标签

特点:多个行内-块级标签可以显示在同一行,能随时设置宽度和高度。
这类标签有:input,button,img。
CSS中有个display属性,能修改标签的显示类型,共有四种类型:

  • none:隐藏标签
  • block:让标签变为块级标签
  • inline:让标签变为行内标签
  • inline-block:让标签变为行内-块级标签(内联-块级标签)

CSS盒模型

当对一个文档进行布局的时候,浏览器的渲染引擎会根据标准之一的CSS基础框盒模型,将所有元素表示为一个个矩形的盒子。CSS决定这些盒子的大小,位置以及属性(例如颜色,背景,边框尺寸等等)。每个盒子由四个部分(或区域)组成:内容部分,内边距部分,边框部分,外边距部分。

CSS盒模型分为两种:W3C标准盒模型和IE盒模型。
它们的区别是:前者的属性width,height只包含内容content,不包含border和padding。后者的属性width,height包含border和padding。
怎么改变当前的盒模型:ie8+浏览器以及现代浏览器支持box-sizing属性自由地进行切换。属性有:content-box(标准盒模型),width=content;border-box(IE盒模型),width=content+padding+border,高度同理。

默认盒模型:若在页面中声明了DOCTYPE类型,所有浏览器都会把盒模型解释为W3C盒模型;若不声明DOCTYPE类型,IE浏览器会将盒子模型解释为IE盒子模型,其他浏览器会将其解释为W3C盒子模型。

link标签中rel属性的作用

rel各个属性值配置的意思:
stylesheet —— 定义一个外部加载的样式表。
注意:引入外部css文件时,必须要有此属性

参考资料:

《编写高质量代码——Web前端开发修炼之道》第三章——高质量的HTML
https://cloud.tencent.com/developer/article/1136665

posted @ 2017-10-28 17:06  暮雪&&如霜  阅读(691)  评论(0编辑  收藏  举报