网页三层结构:结构+表现+行为
    核心技术:html+css+JavaScript
    html:超文本标记语言
    基本结构:

 <!DOCTYPE html> 文档声明头
 
    块级标签:
            h1-h6、p、div、ul、ol、li、dl、dt、dd、br
    行内标签:
            span、i、em、b、strong
    图片标签:
            <img src="图片地址" alt="替换文本">
    链接:
            <a href="相对路径/网址/锚点" target="_blank">文本</a>
    表格:
    table
        tr 行
            th 表头
            td 单元格
        caption 标题
        thead 头部
        tbody 主体
        tfoot 底部
        属性:
            border 0 1 边框
            cellpadding 单元格和内容的距离
            cellspacing 单元格间距离
            rowspan 合并行
            colspan 合并列


    html表单
      

 表单标签
                form    表单域
                    input    type:text、password、image、radio、checkbox、reset、submit、button、file
                textarea    多行文本
                select    下拉列表    option 选项
        表单属性
                action    提交地址
                method    提交方式    get/post    大小限制/安全性
                name    表单数据字段名
                type    输入类型
                value    指定输入控件代表的值
                checked    单选或复选
                readonly    不可编辑能提交
                disabled    既不能编辑也不能提交
                selected    option 选中
                maxlength    最大输入字符个数


    css    页面样式
      

  三种引入方式
                内联样式/内部样式/外部样式
        语法
            选择器 {
                声明:;
            }
        选择器
            基础    *     tagname    .classname    #id
            复合    .box span    .box>span    h2,.red,#box {}     div.red{}
            伪类    未访问:link        访问后:visited        悬停:hover        激活:active
        字体
            font-size
            font-weight:bold/normal
            font-family:""
            font-style:italic/normal
            line-height:30px/2;
            
            font:italic bold 15px/2 "宋体";
            
        文本
            text-align:left/center/right
            text-indent:2em;
            color:red;
            text-decoration:none/underline/overline/line-through

 

颜色
        英文单词
                #666 #ffffff
                rgb(0-255,0-255,0-255)
                rgba(0-255,0-255,0-255,0-1)
    单位
        px % em(代表当前元素的font-size的值) rem (根标签的font-size的值)
    
三大特性
层叠    冲突层叠,就近原则,不冲突不层叠
            继承    text- font-    color  a : color  text-decoration
            
            优先级
            通配符选择器    0          *
            标签选择器        1          h1,p
            类、伪类选择器    10     .class :hover
            ID选择器        100        #id
            
            + !inportant   最大优先级 
            
                
                复合选择器
                        后代 .box p{}
                        子代 .box>p{}
                        群组 .box,.box1{}  权重不相加
                        交集 div.box1{}
                    伪类                  10
                        :hover
                        :link
                        :active
                        :visited
    盒模型
            margin                    设置外边距 margin:0 auto;居中效果
                border                设置边框
                    padding            设置内边距        
                        content        width+height

 

    背景
        background-color 背景颜色
        background-image:url(); 背景图片
        background-position: 背景定位 百分比 英文 像素
        background-repeat 重复
        简写
            background red url() no-repeat 10px 20px;

 

 元素分类
        块级标签:h1-h6、p、div、ul、ol、dl、li、dl、td、hr、
                独占一行
                宽度 默认父级的宽度100%
                宽高、行高、外边距、内边距等都可以设置
                可以包含嵌套行内标签   例外 h1标签不能放p、div等块标签
        
        行内标签:a、span、strong、b、em、i
                多个行内标签在一行显示
                默认宽度由内容撑开
                宽度、行高  垂直的margin、padding无效的
                可以包含行内和行内块
        
        行内块签:input、img、td
                多个行内标签在一行显示,多个行内块之间有空白
                默认宽度有内容撑开
                宽度、行高、所以盒模型属性都可以设置

 

  模式转换
            display:inline;转行内
            display:block; 转块级
            display:inline-block;转行内块
        display:none;隐藏元素
 列表样式
            清除默认样式
                        list-style:none;
                        
                列表风格
                        list-style-type:desc/circle/square/decimal
                        list-style-position:inside/outside;
                        list-style-image:url();
 元素内容溢出处理
               overflow:
                        visible 显示
                        hidden  隐藏
                        auto    需要出现滚动条
                        scroll  显示滚动条


    

垂直对齐方式(文字和图片之间的对齐方式)针对行内或行内块,还能解决行内块之间的空白,
            vertical-align:
            baseline 默认 第三条线对齐
            middle   中间对齐     《------------------
            top      顶部对齐
            bottom   底部对齐
            px       具体像素

     
    解决行内块间空白问题的三种方式---重要
                      

  vertical-align:middle;    对齐方式
  display:black;            转换块级
  font-size:0px;            设置字体大小


    浮动 float
        布局方式:文档流、浮动、定位
        
      

        1左浮动:float:left;
            往左移动,直到父级左边边缘或相邻元素浮动元素,多个浮动元素从左到右排列
            脱离文档流 不占位
        2右浮动:float:right;
            同上 往右
            脱离文档流 不占位
        3取消浮动 float:none;
            回到文档流正常占位

 
        解决的问题:
        1文字环绕图片
        2多列布局 导航

        
    浮动带来的问题:
        子元素浮动,脱离文档流,无法撑开父级元素的高度引起父盒子内部高度为0的问题。 清除浮动
        
    清除浮动   --解决父级元素没有高度的问题
      

        1 父级定高法        扩展性差
        2 父级添加overflow属性hidden/auto/scroll
        3 clear属性清除浮动    left 清除左侧浮动 right 清除右侧浮动 both 同时清除左右浮动影响
        4额外标签 浮动元素之后添加一个不浮动的块级标签。给这个标签添加clear:both;
        5伪元素
            .clearfix::after{
                content:"";
                /*必须是块级元素clear才生效*/
                display:black;
                clear:both;
            }
            .clearfix{
                *zoom:1;
            }


    三种布局:
            文档流
            浮动
            定位(层布局)
    position:
        子绝父相
            

            static  静态 默认值 left right top bottom z-index 不能设置
            
            relative 相对定位
                    -相对自身在文档流中的位置
                    -不脱离文档流
                    
            absolute 绝对定位
                    -定位父级:离绝对定位最近的 带有position属性祖先元素,如果不存在,就相对body定位
                    -脱离文档流
                    
            fixed    固定定位
                    -定位父级:浏览器可视区
                    -脱离文档流


    left:正右 负左
    right:正左 负右
    top :正下 负上
    bottom:正上 负下
    z-index:0-无穷大  调整层级
    
    浮动脱离文档流
        float:left/right;脱离文档流,不脱离文本流
    
    定位脱离文档流
        position:absoute/fixed;既脱离文档流,又脱离文本流
    
    脱离文档流的元素特点:
        不需要区分行内或块级,默认尺寸都是由内容决定,可以设置宽高及盒模型、line-height
        
    父元素尺寸是未知的,子元素尺寸是固定的 居中
      

 ------------
            .parent{
                position:relative;
            }
            .child{
                position:absolute;
                left:50%;
                top:50%;
                margin-left:-150px;
                margin-top:-200px;
                width300px;
                height:400px
            }
        ------------

    父元素、子元素的尺寸都是未知的 居中
        

------------
            .parent{
                position:relative;
            }
            .child{
                position:absolute;
                left:0;
                right:0;
                top:0;
                bottom:0;
                margin:auto;
            }
        ------------


    bfc
  

    1、怎样生存bfc
        html标签
        overflow:hidden/auto/scroll
        float:left/right
        display:inline-block
        position:absolute/fixed
    2、规则
        内部的块标签从上往下排列
        同一个bfc的两个标签的外边距会重叠
        做外边距和包含块左边缘想接触,浮动也会如此
        bfc不会与浮动的元素重叠
        浮动子元素会参与bfc的高度计算
        独立容器
    3、解决问题
        外边距重叠问题
        两栏或三栏自适应
        清除浮动
        防止文字环绕图片


    等高
    1、内外边距相消法    伪等高
        padding-bottom:99999px;
        margin-bottom:-99999px;
    2、边框模拟左右两栏

    
    双飞翼、圣杯
  

  三栏、center在前、left,right在后
    .cneter:100%;
    .left:margin-left:-100%;
    .right:margin-left:-300px;
    
    圣杯
        .outer:padding:0 300px 0 200px;
        .left:position:relative;left:-200px;
        .right:position:relative;right:-200px;
    双飞翼
        .center-inner:margin:0 300px 0 200px;


    透明兼容
        rgba() 标准浏览器 ie9以上
        opacity:0.5; 元素整体透明 标准浏览器 ie9以上
        filter:alpha(opacity=50) 元素整体透明 ie特有的属性
    
    csshack
      

 条件hack
            <!--[if ie 8]>
            
            <![endif]-->
        
        选择符
            *html .box{} ie6-
            *+html .box{} ie7
        
        属性级
            _color:red; ie6-
            *color:red; ie7-
            color:red\0; ie8\9
        
        !important  提高元素的层级


    
    属性补充
        border-collapse:collapse;
        cursor:pointer;
        letter-spacing 字符间距
        word-spacing
        visibilty:visible/hidden;  display:black;:block/none/;
        outline:nane; outline:2px solid red;
        
    
    兼容
        ie图片边框
        ie8背景属性简写
        ie6小高度
        ie6- 双边距
        ie7-子标签相对定位,父元素overflow失效
        ie7- inline-block 不在一行显示
        
    
    css小三角、箭头
        

    ps操作、切图、图片格式
    
    
    css精灵图
        优点:
        减少http请求
        减少命名困扰
        更换风格方便
        
        缺点:
        尺寸和位置需要精确计算
        
    
    iconfont字体图标