zoukankan      html  css  js  c++  java
  • 前端面试题十九

    一、描述z-index和叠加上下文是如何形成的。

    首先来看在CSS中叠加上下文形成的原因:

    1.负边距 margin为负值时元素会依参考线向外偏移。margin-left/margin-top的参考线为左边的元素/上面的元素(如无兄弟元素则为父元素的左内侧/上内侧),margin-right和margin-bottom的参考线为元素本身的border右侧/border下侧。一般可以利用负边距来就行布局,但没有计算好的话就可能造成元素重叠。堆叠顺序由元素在文档中的先后位置决定,后出现的会在上面。

    2.position的relative/absolute/fixed定位 当为元素设置position值为relative/absolute/fixed后,元素发生的偏移可能产生重叠,且z-index属性被激活。z-index值可以控制定位元素在垂直于显示屏方向(Z 轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面。

    z-index属性 z-index只能在position属性值为relative或absolute或fixed的元素上有效。

    基本原理:z-index值可以控制定位元素在垂直于显示屏方向(Z 轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面。

    使用相对性:z-index值只决定同一父元素中的同级子元素的堆叠顺序。父元素的z-index值(如果有)为子元素定义了堆叠顺序(css版堆叠“拼爹”)。

    向上追溯找不到含有z-index值的父元素的情况下,则可以视为自由的z-index元素,它可以与父元素的同级兄弟定位元素或其他自由的定位元素来比较z-index的值,决定其堆叠顺序。同级元素的z-index值如果相同,则堆叠顺序由元素在文档中的先后位置决定,后出现的会在上面。所以如果当你发现一个z-index值较大的元素被值较小的元素遮挡了,请先检查它们之间的dom结点关系,多半是因为其父结点含有激活并设置了z-index值的position定位元素。

    二、请描述 BFC(Block Formatting Context) 及其如何工作。

    BFC(Block Formatting Context)直译为“块级格式化范围”。

    三、为什么通常推荐将 CSS <link> 放置在 <head></head> 之间,而将 JS <script> 放置在 </body> 之前?你知道有哪些例外吗?

    如果把javascript放在head里的话,则先被解析,但这时候body还没有解析。(常规html结构都是head在前,body在后)如果head的js代码是需要传入一个参数(在body中调用该方法时,才会传入参数),并需调用该参数进行一系列的操作,那么这时候肯定就会报错,因为函数该参数未定义(undefined)。
    而为什么我们经常看到有很多的人把js脚本放到head里面都不担心出问题?因为通常把javascript放在head里的话,一般都会绑定一个监听,当全部的html文档解析完之后,再执行代码

    作者:Arno_z
    链接:https://www.jianshu.com/p/1c314dd0ba1f
    來源:简书
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

  • 相关阅读:
    java.lang.Math.pow方法
    【动态代理】增强代理方法、代理多种方法
    Exception in thread "main" java.net.ConnectException: Connection refused: connect
    serialVersionUID设置自动添加
    三个线程之间的通信
    LinkedList源码分析
    JavaScript学习
    Java学习大纲
    w3cschool-javascript教程-学习笔记
    FreeMarker学习总结
  • 原文地址:https://www.cnblogs.com/jian138/p/8525096.html
Copyright © 2011-2022 走看看