美文网首页我爱编程
第三章 一面/二面

第三章 一面/二面

作者: qqqc | 来源:发表于2018-05-25 17:14 被阅读0次

    3-1 页面布局 (一)

    image.png image.png
    <!DOCTYPE html>
    <html>
      <head>
        <meta charset="utf-8">
        <title>Layout</title>
        <style media="screen">
          html *{
            padding: 0;
            margin: 0;
          }
          .layout article div{
            min-height: 100px;
          }
        </style>
      </head>
      <body>
        <!--浮动布局  -->
        <section class="layout float">
          <style media="screen">
          .layout.float .left{
            float:left;
            width:300px;
            background: red;
          }
          .layout.float .center{
            background: yellow;
          }
          .layout.float .right{
            float:right;
            width:300px;
            background: blue;
          }
          </style>
          <h1>三栏布局</h1>
          <article class="left-right-center">
            <div class="left"></div>
            <div class="right"></div>
            <div class="center">
              <h2>浮动解决方案</h2>
              1.这是三栏布局的浮动解决方案;
              2.这是三栏布局的浮动解决方案;
              3.这是三栏布局的浮动解决方案;
              4.这是三栏布局的浮动解决方案;
              5.这是三栏布局的浮动解决方案;
              6.这是三栏布局的浮动解决方案;
            </div>
          </article>
        </section>
    
        <!-- 绝对布局 -->
        <section class="layout absolute">
          <style>
            .layout.absolute .left-center-right>div{
              position: absolute;
            }
            .layout.absolute .left{
              left:0;
              width: 300px;
              background: red;
            }
            .layout.absolute .center{
              left: 300px;
              right: 300px;
              background: yellow;
            }
            .layout.absolute .right{
              right:0;
              width: 300px;
              background: blue;
            }
          </style>
          <h1>三栏布局</h1>
          <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
              <h2>绝对定位解决方案</h2>
              1.这是三栏布局的浮动解决方案;
              2.这是三栏布局的浮动解决方案;
              3.这是三栏布局的浮动解决方案;
              4.这是三栏布局的浮动解决方案;
              5.这是三栏布局的浮动解决方案;
              6.这是三栏布局的浮动解决方案;
            </div>
            <div class="right"></div>
          </article>
        </section>
    
    
        <!-- flexbox布局 -->
        <section class="layout flexbox">
          <style>
            .layout.flexbox{
              margin-top: 110px;
            }
            .layout.flexbox .left-center-right{
              display: flex;
            }
            .layout.flexbox .left{
              width: 300px;
              background: red;
            }
            .layout.flexbox .center{
              flex:1;
              background: yellow;
            }
            .layout.flexbox .right{
              width: 300px;
              background: blue;
            }
          </style>
          <h1>三栏布局</h1>
          <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
              <h2>flexbox解决方案</h2>
              1.这是三栏布局的浮动解决方案;
              2.这是三栏布局的浮动解决方案;
              3.这是三栏布局的浮动解决方案;
              4.这是三栏布局的浮动解决方案;
              5.这是三栏布局的浮动解决方案;
              6.这是三栏布局的浮动解决方案;
            </div>
            <div class="right"></div>
          </article>
        </section>
    
    
        <!-- 表格布局 -->
        <section class="layout table">
          <style>
            .layout.table .left-center-right{
              width:100%;
              height: 100px;
              display: table;
            }
            .layout.table .left-center-right>div{
              display: table-cell;
            }
            .layout.table .left{
              width: 300px;
              background: red;
            }
            .layout.table .center{
              background: yellow;
            }
            .layout.table .right{
              width: 300px;
              background: blue;
            }
          </style>
          <h1>三栏布局</h1>
          <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
              <h2>表格布局解决方案</h2>
              1.这是三栏布局的浮动解决方案;
              2.这是三栏布局的浮动解决方案;
              3.这是三栏布局的浮动解决方案;
              4.这是三栏布局的浮动解决方案;
              5.这是三栏布局的浮动解决方案;
              6.这是三栏布局的浮动解决方案;
            </div>
            <div class="right"></div>
          </article>
        </section>
    
        <!-- 网格布局 -->
        <section class="layout grid">
          <style>
            .layout.grid .left-center-right{
              width:100%;
              display: grid;
              grid-template-rows: 100px;
              grid-template-columns: 300px auto 300px;
            }
            .layout.grid .left-center-right>div{
    
            }
            .layout.grid .left{
              width: 300px;
              background: red;
            }
            .layout.grid .center{
              background: yellow;
            }
            .layout.grid .right{
    
              background: blue;
            }
          </style>
          <h1>三栏布局</h1>
          <article class="left-center-right">
            <div class="left"></div>
            <div class="center">
              <h2>网格布局解决方案</h2>
              1.这是三栏布局的浮动解决方案;
              2.这是三栏布局的浮动解决方案;
              3.这是三栏布局的浮动解决方案;
              4.这是三栏布局的浮动解决方案;
              5.这是三栏布局的浮动解决方案;
              6.这是三栏布局的浮动解决方案;
            </div>
            <div class="right"></div>
          </article>
        </section>
      </body>
    </html>
    
    
    image.png

    3-4 css盒模型

    image.png image.png image.png image.png image.png image.png

    BFC(边距重叠)块级格式化上下文
    BFC的原理:
    1.BFC元素垂直方向的边距会发生重叠
    2.BFC的区域不会与浮动元素的box重叠
    3.BFC在页面上是一个独立的容器,外面的元素不会影响里面的元素,里面的元素也不会影响外面的元素
    4.计算BFC高度时,浮动元素也会参与计算

    如何创建BFC?
    1.float值不为none
    2.position不是static或relative
    3.display是table相关的
    4.overflow不是visible

    BFC
    概念:块级 格式化 上下文
    原理/渲染规则:1.BFC垂直方向边距发生重叠 2.BFC不会与浮动元素发生编剧重叠 3.在页面上是一个独立的容器,里外元素互不影响 4.计算高度时,BFC浮动元素也会计算
    创建BFC:1.overflow的值不为visible 2.float值不为none 3. position的值不为relative和static(这是position的默认值)4.display的值为table-cell,table-caption,inline-block中的任何一个;
    应用场景:
    1.左右布局时,float
    2。相邻div使用margin产生边距重叠

    3-5 DOM事件

    image.png image.png image.png

    1、DOM事件级别 DOM0、DOM2、DOM3;
    2、DOM事件模型:事件捕获、事件冒泡;
    3、DOM事件流:捕获阶段-->目标阶段-->冒泡阶段
    4、描述DOM事件捕获的具体流程:window-->document-->html(document.documentElement)-->bofy(document.body)-->...-->目标元素;
    5、Event对象的常见应用;
    6、自定义事件;

    image.png

    Event对象的常见应用
    1、event.preventDefault():阻止默认事件;
    2、event.stopPropagation():阻止冒泡事件;
    3、event.stoplmmediatePropagation():事件响应优先级(在当前响应函数中使用该方法可以阻止其他响应函数);
    4、event.currentTarget:事件代理绑定的事件(父级);
    5、event.target:当前被点击的元素;

    image.png

    相关文章

      网友评论

        本文标题:第三章 一面/二面

        本文链接:https://www.haomeiwen.com/subject/kmlujftx.html