• 每日思考(2020/08/19)


    题目概览

    • a标签的href和onclick属性同时存在时哪个先触发
    • 外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度
    • js异步加载有哪些方案
    • 对robots文件的理解

    题目解答

    a标签的href和onclick属性同时存在时哪个先触发

    • onclick属性先触发

    • 判断依据是在onclik中使用preventDefault方法可以阻止a标签的跳转,说明a标签的跳转行为是一个默认行为

      <a href="https://developer.mozilla.org/zh-CN/docs/Web/HTML/Element/a" onclick="event.preventDefault()">test</a>
      

    外层有一个自适应高度的div,里面有两个div,一个高度固定300px,另一个怎么填满剩余的高度

    • 可以设置外层自适应高度的容器为flex布局,利用flex-basis属性即可实现自动填满剩余高度(flex-basis属性定义了在分配多余空间之前,项目占据的主轴空间(main size)。浏览器根据这个属性,计算主轴是否有多余空间。它的默认值为auto,即项目的本来大小。它可以设为跟width或height属性一样的值,比如350px,则项目将占据固定空间。

      一句话就是项目占据了固定的高度,再使用flex: 1填空间的时候,不会考虑固定的空间)

      <head>
          <meta charset="UTF-8">
          <meta name="viewport" content="width=device-width, initial-scale=1.0">
          <title>Document</title>
          <style>
              .container {
                  display: flex;
                  flex-flow: column nowrap;
                  height: 500px;
                  border: 2px dashed orange;
              }
      
              .area1 {
                  flex-basis: 300px;
                  background-color: lightblue
              }
      
              .area2 {
                  flex: 1;
                  background-color: darkcyan;
              }
          </style>
      </head>
      <body>
          <section class="container">
              <div class="area1">300px</div>
              <div class="area2">other</div>
          </section>
      </body>
      
    • 利用css3的calc函数

      <html>
      <head>
        <style type="text/css">
          .top {
            height: 300px;
            background-color: #dbdd66
          }
          .bottom {
            height: calc(100% - 300px);
            background-color: #427cdd
          }
        </style>
      </head>
      <body>
      <div>
        <div class="top"></div>
        <div class="bottom"></div>
      </div>
      </body>
      </html>
      

    js异步加载有哪些方案

    • 将script标签放在body结束标签之前:先加载dom树,然后再加载js脚本

      <html>
      <head></head>
      <body>
       .....
      <script type="text/javascript" src='...'></script>
      </body>
      </html>
      
    • 在onload方法中给dom树动态添加script标签:先加载dom树,然后触发onload方法添加script标签加载js脚本

      <html>
      <head></head>
      <body onload="() => {
        var element = document.creatElement('script');
        element.type = 'text/javascript';
        element.src = '...';
        var headTag = document.getElementsByTagName('head')[0];
        headTag.insertBefore(element, headTag.firstChild);}">
      .....
      </body>
      </html>
      
    • 使用defer属性:并行加载dom树和下载js脚本,js脚本下载后会等dom树解析完再执行

      <html>
      <head>
          <script defer type='text/javascript'></script>
      </head>
      <body >.....</body>
      </html>
      
    • 使用async属性:会并行加载dom树和下载js脚本,js脚本下载完后立刻并行执行

      <html>
      <head>
          <script async type='text/javascript'></script>
      </head>
      <body >.....</body>
      </html>
      
    • <script type='module'>(自带 defer 效果) 和 动态加载模块的 import() 函数,配合 async/await 实现,参考在浏览器中使用JS module

    对robots文件的理解

  • 相关阅读:
    鼠标放大镜案例代码
    鼠标点击跟随,鼠标点击哪里,图片跟随到哪里;
    筋斗云效果(云朵在导航栏内随着鼠标移动)
    HDU5003:Osu!(签到题)HDU5038:(签到题,题意很坑)
    SDUT3146:Integer division 2(整数划分区间dp)
    SDUT3145:Integer division 1(换零钱背包)
    SDUT3143:Combinatorial mathematics(组合数学)
    SDUT3141:Count(哈希)好题
    SDUT1574:组合数的计算
    SDUT1607:Number Sequence(矩阵快速幂)
  • 原文地址:https://www.cnblogs.com/EricZLin/p/13532684.html
Copyright © 2020-2023  润新知