zoukankan      html  css  js  c++  java
  • 每日思考(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文件的理解

  • 相关阅读:
    python学习笔记 day14 各种推导式
    python学习笔记 day14 生成器表达式
    python学习笔记 day14 生成器进阶(二)
    python学习笔记 day14 生成器进阶
    python学习笔记 day13 迭代器
    python 学习笔记 day12 作业讲解--员工信息表
    PAT L3-020 至多删三个字符
    2019省赛训练组队赛3.26周二---FJUT 2016
    PAT L3-007 天梯地图
    POJ 2234 Matches Game
  • 原文地址:https://www.cnblogs.com/EricZLin/p/13532684.html
Copyright © 2011-2022 走看看