1、<meta http-equiv="Content-Type" content="text/html; charset=utf-8">:

  http-equiv="Content-Type" :表示描述文档类型
  content="text/html; :MIME类型
  charset=utf-8 页面字符集?
  meta是html中的元标签,其中包含了对应html的相关信息,客户端浏览器或服务器端的程序会根据这些信息进行处理
  http-equiv类似于http的头部协议,它回应给浏览器一些有用的信息,以帮助正确和精确地显示网页内容?

2、<title>:

  用于告诉用户和搜索引擎这个网页的主要内容是什么,搜索引擎可以通过网页标题,迅速的判断出网页的主题

  每个网页的内容都是不同的,每个网页都应该有一个独一无二的title

3、语义化的好处:

  更容易被搜索引擎收录

  更容易让屏幕阅读器读出网页内容

4、<span> 类比<div>:

  <span>标签是没有语义的,它的作用就是为了设置单独的样式用的

5、HTML 4.0 标准仅支持 16 种颜色名:

  aqua、black、blue、fuchsia、gray、green、lime、maroon、navy、olive、purple、red、silver、teal、white、yellow

  如果使用其它颜色的话,就应该使用十六进制的颜色值

6、 <q>:

  注意要引用的文本不用加双引号,浏览器会对q标签自动添加双引号

  <q>标签的真正关键点不是它的默认样式双引号,而是它的语义:引用别人的话,给浏览器看的

  语义化网页结构有助于搜索引擎的收录

7、<blockquote>:

  <q>:是标记行内元素,两边浏览器会自动补全双引号
  <blockquote>:是标记块级元素,浏览器不会自动补全双引号,而且这个块级元素是margin:40px;默认样式的

8、&nbsp;:

  no-breaking space:不间断空格

9、空标签:

  <br /><hr /><img />

10、<hr>:

  horizontal hr 水平线

11、<address>:

  块级元素
  一般网页中会有一些网站的联系地址信息需要在网页中展示出来,这些联系地址信息如公司的地址就可以<address>标签

  也可以定义一个地址(比如电子邮件地址)、签名或者文档的作者身份

  在浏览器上显示的样式为斜体

12、<code>:

  行内元素

  在网页中显示一些计算机专业的编程代码,且当代码为一行代码时

  多行代码用<pre>元素,其为块级元素

13、<pre>:

  预格式化的文本,被包围在 pre 元素中的文本通常会保留空格和换行符

  一个常见应用就是用来展示计算机的源代码:

    使用符号实体来表示特殊字符,比如 "&lt;" 代表 "<","&gt;" 代表 ">","&amp;" 代表 "&",如i<=10; 应该改为 i&lt;=10;

14、<li>:

  list item,列表项目

  <li>、<ul>、<ol>均为块级元素

15、<div>:

  把一些独立的逻辑部分划分出来,放在一个<div>标签中,这个<div>标签的作用就相当于一个容器

  逻辑部分是页面上相互关联的一组元素,如网页中的独立的栏目版块,就是一个典型的逻辑部分

16、<table>:

  <tbody>:

    如果不加<thead><tbody><tfooter> , table表格加载完后才显示

    加上这些表格结构, tbody包含行的内容下载完优先显示,不必等待表格结束后在显示,同时如果表格很长,用tbody分段,可以一部分一部分地显示

    通俗理解table 可以按结构一块块的显示,不在等整个表格加载完后显示

  <tr>:table row,块级元素

  <td>:table data,可以包含块级元素?

  <th>:table head,块级元素

17、表格摘要:

  <table summary="xxx">:

    摘要的内容是不会在浏览器中显示出来的

    它的作用是增加表格的可读性(语义化),使搜索引擎更好的读懂表格内容,还可以使屏幕阅读器更好的帮助特殊用户读取表格内容

18、表格标题:

  <caption>:用以描述表格内容,标题的显示位置:表格上方

19、<a>:

  行内元素

  <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a>

  title属性的作用,鼠标滑过链接文字时会显示这个属性的文本内容:

    这个属性在实际网页开发中作用很大,主要方便搜索引擎了解链接地址的内容(语义化更友好)

  href:Hypertext Reference的缩写,意思是超文本引用

  在默认情况下,链接的网页是在当前浏览器窗口中打开

20、_blank  _parent  _self  _frame-name  _top

21、mailto:

  <a>标签还有一个作用是可以链接Email地址,使用mailto能让访问者便捷向网站管理者发送电子邮件

  如果mailto后面同时有多个参数的话,第一个参数必须以“?”开头,后面的参数每一个都以“&”分隔:

  比如你发信给A,如果选择抄送给B,则B也会收到同样内容的信。但这样的话,A会知道你抄送了给B,你还可以选择“密件抄送”,这样,A就不知道你抄送

  空格问题?

22、<img>:

  行内元素

  <img src="图片地址" alt="下载失败时的替换文本" title = "提示文本">

  src:标识图像的位置;

  alt:指定图像的描述性文本,当图像不可见时(下载不成功时),可看到该属性指定的文本;

  title:提供在图像可见时对图像的描述(鼠标滑过图片时显示的文本);

  图像可以是GIF,PNG,JPEG格式的图像文件。

23、<form>:

  块级元素

  表单是可以把浏览者输入的数据传送到服务器端,这样服务器端程序就可以处理表单传过来的数据

  <form method="传送方式" action="服务器文件">

  <label>:

    行内元素

    <label for="username">用户名:</label>

  <input>:

    行内元素

    <input type="text"  name="username" id="username" value="" />:空元素

    type:

      text:文本框

      password:密码框

      raido:单选按钮

      checkbox:复选框

      submit:提交按钮

      reset:重置

      file:文件选择框

      ...

24、<input type="text"  name="username" id="username" value="" />:

  name:为文本框命名,以备后台程序ASP、PHP使用

  value:为文本输入框设置默认值,一般起到提示作用

25、<textarea>:

  行内元素

  在表单中输入大段文字时,需要用到文本输入域

  <textarea rows="行数" cols="列数">文本</textarea>

  在<textarea></textarea>标签之间可以输入默认值:

    不需要删除默认值就可以输入新内容可以用placeholder来实现:
      <textarea rows="10" cols="50" placeholder="在这里输入内容..."></textarea>

  cols和rows是宽高的字符数量度量限定,只能输出大小不能影响输入的字符数

26、<input type="radio/checkbox" value="值" name="名称" checked="checked"/>:

  type:

    当 type="radio" 时,控件为单选框

     当 type="checkbox" 时,控件为复选框,用户可以任意选择多项,甚至全选

  value:提交数据到服务器的值(后台程序PHP使用)

  name:为控件命名,以备后台程序 ASP、PHP 使用

  checked:当设置 checked="checked" 时,该选项被默认选中

  注意:同一组的单选按钮,name 取值一定要一致,这样同一组的单选按钮才可以起到单选的作用

27、<select>:

  下拉列表框

  行内元素,表单内元素

  <option value="提交值" selected="selected">显示的选项值</option>

  <select multiple="multiple">:

    设置多选属性

    在 windows 操作系统下,进行多选时按下Ctrl键同时进行单击

28、<input type="submit" value="提交">:

  value设置按钮上显示的文字

  <input type="reset" value="重置">:

  value设置按钮上显示的文字

29、<label>:

  不会向用户呈现任何特殊效果,它的作用是为鼠标用户改进了可用性

  如果在 label 标签内点击文本,就会触发此控件,即浏览器就会自动将焦点转到和标签相关的表单控件上:

    标签的 for 属性中的值应当与相关控件的 id 属性值一定要相同

30、CSS中注释语句用/**/,而非 // 或 <!-- -->

31、CSS 样式代码插入的形式来看基本可以分为以下3种:内联式、嵌入式和外部式三种:

  内联式:<span style="color:blue">

  嵌入式:写在<style type="text/css"></style>之间,并且一般情况下嵌入式css样式写在<head></head>之间

  外部式:<link href="style.css" rel="stylesheet" type="text/css" />,rel(relationship)属性用于定义链接的文件和html文档之间的关系,stylesheet就是样式表的意思,说明链接到的文档是样式表

  内联式适用情况:局部特殊化
  嵌入式适用情况:统一标签样式格式
  外联式适用情况:方便代码重用和管理

  优先级:内联式 > 嵌入式 > 外部式

    前提:内联式、嵌入式、外部式样式表中的css样式是在相同权值的情况下?

    嵌入式>外部式有一个前提:嵌入式css样式的位置一定在外部式的后面,即<link href="style.css" ...>代码在<style type="text/css">...</style>代码的前面

    通常就是就近原则

32、选择器:

  标签选择器

  类选择器:.类名

  id选择器:#id名

  注意:

    元素的id是在html文档中是唯一独享的,而类不同

    元素可以有类名列表,类选择器名称只要被包含在元素的类名列表中,即可认为二者匹配

  子选择器:

    大于符号(>),用于选择指定标签元素的第一代子元素

  包含(后代)选择器:

    空格,用于选择指定标签元素下的所有后辈元素

  通用选择器:

    * 匹配html中的所有标签元素

  伪类选择器:

    允许给html不存在的标签(标签的某种状态,如鼠标滑过的状态)设置样式:a:hover{color:red;}

    到目前为止,可以兼容所有浏鉴器的“伪类选择符”就是 a 标签上使用 :hover

  分组选择器:

    .first,#second span{color:green;},注意用逗号连接

  注意:

    p.first表示类名包含first的p元素

    p .first表示p元素的所有类名包含first的后代元素

33、样式属性有分具有继承性和不具继承性的:

  比如color属性具有继承性,而border属性不具继承性

34、特殊性:

  浏览器是根据权值来判断使用哪种css样式的,权值高的就使用哪种css样式

  标签的权值为1,类选择符的权值为10,ID选择符的权值为100,内联样式为1000,继承的权值最低(0.1):

    p span .warning{color:purple;} /*权值为1+1+10=12*/

    #footer .note p{color:yellow;} /*权值为100+10+1=111*/

35、层叠:

  在html文件中对于同一个元素可以有多个css样式存在,当有相同权重的样式存在时,会根据这些css样式的前后顺序来决定,处于最后面的css样式会被应用

36、重要性:

  !important:p{color:red!important;}

  浏览器默认的样式 < 网页制作者样式 < 用户自己设置的样式,但记住!important优先级样式是个例外,权值高于用户自己设置的样式

37、字体:

  不要设置不常用的字体,因为如果用户本地电脑上如果没有安装你设置的字体,就会显示浏览器默认的字体

  现在一般网页喜欢设置“微软雅黑”:body{font-family:"Microsoft Yahei";}  或 body{font-family:"微软雅黑";}

  粗体 {font-weight:bold;}

  斜体 {font-style:italic;}

  下划线 {text-decoration:underline;}

  上划线 {text-decoration:overline;}

  删除线 {text-decoration:line-through;}

  缩进 {text-indent:2em;}

  行间距 {line-height:2em;}

  设置文字间隔或字母间隔 {letter-spacing:20px;} 跨越空格

  设置英文单词间距 {word-spacing:20px;}

38、表单元素不会继承body的属性?

39、全角与半角  

  中文输入分为全角和半角

  全角,段落中所有字符(包括文字和其它符号:逗号、顿号、句号等),都是占用一个字的位置,这样排版的时候,上下文字能对齐

  半角,段落中所有除文字外的符号,只占用半个字的位置 

  打字时,默认是半角,按空格最明显,只有前一个字的一半宽度

  切换全角后,空格刚好是一个字宽度(段落中最明显,上下对齐)

  em 就是一个全角占位符?

40、em与px:

  任意浏览器的默认字体高度16px(16像素)

  所有未经调整的浏览器都符合:1em=16px,那么12px=0.75em,10px=0.625em

  为了简化font-size的换算,需要在css中的body选择器中声明font-size=62.5%,这就使1em值变为16px*62.5%=10px

  注意:建议不要使用em作为中文站点的文字单位,会导致文字变形十分严重的?

  当给 font-size 设置单位为 em 时,此时计算的标准以元素的父元素的 font-size 为基础?

  rem?

41、元素分类:

  分为三种不同的类型:块状元素、内联元素(行内元素)和内联块状元素

  块状元素:

    独占一行

    常见:<div>、<ul>、<ol>、<li>、<p>、<h>、<table>

    元素的高度、宽度、行高以及顶和底边距都可设置

    元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致)

  内联元素:

    和其他元素都在一行上

    常见:<a>、<span>、<em>、<strong>

    元素的高度、宽度及顶部和底部边距不可设置

    元素的宽度就是它包含的文字或图片的宽度,不可改变

  内联块状元素:

    常见:<img>、<input>

    和其他元素都在一行上

    元素的高度、宽度、行高以及顶和底边距都可设置

  display:block/inline/inline-block

42、盒模型:

  组成:内容(content)、填充(padding)、边框(border)、外边界(margin)

  盒模型是面向块级元素?

  边框:  

    border-style:dashed(虚线)| dotted(点线)| solid(实线)

    border-color

    border-width:thin | medium | thick(不常用),常用px

  宽度和高度:

    css内定义的宽(width)和高(height),指的是内容的范围

    元素实际宽度(盒子的宽度)=左边界+左边框+左填充+内容宽度+右填充+右边框+右边界

43、布局模型:

  流动模型(Flow):

    默认网页布局模式

    块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布

    内联元素都会在所处的包含元素内从左到右水平分布显示

  浮动模型(Float):

    任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动:float:left;

    脱离文档流/普通流,其他盒子会无视这个元素,但其他盒子内的文本依然会为这个元素让出位置,环绕在周围

  层模型(Layer):

    类比PhotoShop中的图层编辑功能,每个图层能够被精确定位操作

    在网页中精确定位html元素:

      绝对定位(position:absolute):

        元素脱离文本流,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

        注意:参照定位的元素必须加入position:relative;

        position:absolute;
        top:20px;
        right:100px;

      相对定位(position:relative):

        元素相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动   

        position:relative;
        left:100px;
        top:50px;

      注意:比如设置 left:100px; 是距左边 100px 的意思

      固定定位(position:fixed):

        与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身

        由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同?

44、字体属性缩写:

  body{
      font-style:italic;
      font-variant:small-caps; 
      font-weight:bold; 
      font-size:12px; 
      line-height:1.5em; 
      font-family:"宋体",sans-serif;
  }
  等价于
  body{
      font:italic  small-caps  bold  12px/1.5em  "宋体",sans-serif;
  }

  使用简写方式至少要指定 font-size 和 font-family 属性,其他的属性(如 font-weight、font-style、font-variant、line-height)如未指定将自动使用默认值

  在缩写时 font-size 与 line-height 中间要加入“/”斜扛

  常用:font:12px/1.5em  "宋体",sans-serif;

  css中,有两种不同类型的字体系列:
    通用字体系列:拥有相似外观的字体系统组合(如 "Serif" 或 "Monospace")
    特定字体系列:具体的字体系列(如 "Times" 或 "Courier")

45、水平居中设置:

  行内元素:

    被设置元素为文本、图片等行内元素时,水平居中是通过给父元素设置 text-align:center 来实现的

   定宽块状元素:

    满足定宽和块状两个条件的元素是可以通过设置“左右margin”值为“auto”来实现居中的,auto的真正含义?

  不定宽块状元素:

    1.加入table标签:

      table其长度根据其内文本长度决定

      第一步:为需要设置的居中的元素外面加入一个 table 标签 ( 包括 <tbody>、<tr>、<td> )

      第二步:为这个 table 设置“左右 margin 居中”(这个和定宽块状元素的方法一样)

      display:table; margin:0 auto;?

    2.改变块级元素的 display 为 inline 类型(设置为 行内元素 显示),然后使用 text-align:center 来实现居中效果

    3.通过给父元素设置 float,然后给父元素设置 position:relative 和 left:50%,子元素设置 position:relative 和 left: -50% 来实现水平居中

46、垂直居中设置:

  父元素高度确定的单行文本:

    在文本容器,如h1设置样式使得 height = line-height  

    原因:

      文本行的高度 = 上行间距 + font-size + 下行间距,其中上行间距 = 下行间距,因而文字是在文本行内垂直居中的

      line-height 其实就等于文本行的高度,如下图所示

      设置样式 height = line-height 意味着只有单行,而单行也就是文本行,故文字就是垂直居中的

      line-height 与 font-size 的计算值之差,在 CSS 中成为“行间距”,分为两半,分别加到一个文本行内容的顶部和底部

      行高与块高一致带来一个弊端:当文字内容的长度大于块的宽时,就有内容脱离块

   父元素高度确定的多行文本、图片: 

    方法一:使用插入 table  (包括tbody、tr、td)标签,同时设置 vertical-align:middle

      css 中有一个用于竖直居中的属性 vertical-align,在父元素设置此样式时,会对inline-block类型的子元素都有用

      td 标签默认情况下就设置了 vertical-align 为 middle

    方法二:在 chrome、firefox 及 IE8 以上的浏览器下可以设置块级元素的 display 为 table-cell(设置为表格单元显示),激活 vertical-align 属性,但注意 IE6、7 并不支持这个样式, 兼容性比较差

      display:table-cell;/*IE8以上及Chrome、Firefox*/

      vertical-align:middle;/*IE8以上及Chrome、Firefox*/

47、隐性改变display类型: 

  当为元素(不论之前是什么类型元素,display:none 除外)设置以下 2 个句之一:

     position : absolute 

     float : left 或 float:right 

  简单来说,只要html代码中出现以上两句之一,元素的display显示类型就会自动变为以 display:inline-block(块状元素)的方式显示,此时就可以设置元素的 width 和 height ,且默认宽度不占满父元素