zoukankan      html  css  js  c++  java
  • 【积累】一些遇到的知识点

    一、常规流( Normal flow )知识

    1.IFC中文字的水平排列取决于:text-align,垂直方向排列取决于:vertical-align;

    2.当块级元素里面包含一个img的时候,总会在底部和父容器产生缝隙,这是由于父容器中的baseline决定的,起因是父容器的font-famliy、font-size。解决这个问题的方式是将img的vertical-align设置为:bottom top middle;

    3.元素在相对定位下,left=-right;其他定位不行;而如果left和right冲突的时候,胜利的天平总会倾向于left,可如果direction存在的话,rtl right胜,ltr:left胜。

    4.垂直方向上的margin,子元素间异向margin会重叠,这个无法避免。而子元素会和父容器之间会造成把父元素拉下水,想要避免,父容器触发BFC。如图所示:

       事先*{margin:0; padding:0;}红色的是父容器,子元素都有margin:10px,被绿色的拉下10px,而绿色和父容器之间没有margin-top(其实这种情况就叫margin塌陷,margin collapse)。绿底和蓝顶只有10px距离,不是20px。

     红色触发了BFC,解决了红被绿拉下水的问题,但是异向margin重叠现象依然存在。

     二、包含块(Containing Block)说白了就是找爹

     1.包含块是一个相对的概念,如果HTML中各节点间无定位,那么子元素的包含块就是父容器,初始包含块是HTML,这是怎么都不会改变的。

     2.如果子元素的position定义为 relative或static的话,那它的包含块就是父容器。

     3.如果子元素的position定义为fixed的情况下,那它的包含块就是HTML。

     4.如果子元素的position定义为absolute的情况下,那它的包含块就是拥有position:absolute或relative的父容器。

     5.如果子元素的position定义为absolute,且它的父容器为行级元素,那它的定位和行级父的实际所占区域有关,因为会存在rtl和rtl的问题,所以每个浏览器不同。但是不会因此改变子元素的left right方向。

    双X都是绝对定位,灰色的span相对定位,外面的p标签设置rtl或rlt。红X:left:0  黄X:left:0 top:20px;  蓝X:right:0;

    ltr时:  

    火狐如果存在父容器折行,那只在第一行做这些事   其他浏览器

    rtl时:

    火狐还是不变,其他:

    三、IE的写作模式 writing-mode

     这是一个很有意思的属性:看属性值

     tb-rl:竖排靠右贴顶,同时自定义P标签的高度会被夸张的拉长。

     变种:tb-lr:竖排靠左贴顶  bt-lr:竖排靠左贴低 bt-rl:竖排靠右贴低

     lr-tb:横排靠左贴顶。

     变种:rl-tb:横排靠右贴顶 lr-bt:横排靠左贴低  rl-bt:横排靠右贴低

     PS:此时定义direction无效。

    X、其他

    1.如果给行级元素加上浮动或绝对定位,那么该行级元素的left top right bottom和width height将会有效。

    2.Function对象会有一个caller变量,目的是反编译出调用该函数的执行环境。看例子:

    window.onload = function () {
                handleCaller();//1.输出handleCaller函数内容,也就是返回handleCaller函数 2.输出window.onload的执行内容,也就是返回onload函数
    alert(handleCaller.caller.toString());//出错,只能在handlercaller函数内部使用caller }; callerDemo();//this is a top function function callerDemo() { if (callerDemo.caller) { var a = callerDemo.caller.toString(); alert(a); } else { alert("this is a top function"); } } function handleCaller() { callerDemo(); alert(handleCaller.caller.toString()); }


    3.还有一个callee属性,是属于arguments的,它主要返回的是arguments所在的函数的执行环境,其实和caller的作用一样,都是反编译函数,但是caller返回的是改函数的执行函数,callee返回的是参数所在的函数。

    window.onload = function () {
                test(1, 2); //1.输出test函数,因为函数自动触发toString,所以看到的会是test函数体
                            //2.输出test函数形参的个数, 3
                
            };
            function test(a, b, c) {
                alert(arguments.callee);
                alert(arguments.callee.length);
            }

     4.CSS属性选择符:a.节点[属性]包含该属性的节点   b.节点[属性=值]满足节点属性为这个值的节点

     5.块级元素内部有文字,文字的后面如果紧跟块级子元素的话,该文字会被套上匿名块框,使文字和块级子元素垂直排列。

  • 相关阅读:
    redis系列(五):搭建redis-cluster集群
    redis系列(四):切换RDB备份到AOF备份
    python写一个随机点名软件
    java使用flink集成mybatis每五分钟实时计算小时内用户行为数据
    本地缓存google.guava及分布式缓存redis 随笔
    spring boot+spring security 使用随笔
    MVEL2.0的使用实例(一)
    springboot2.x优雅的整合mybatis
    Springboot全套技术培训和常用框架整合
    私有云篇-[1相关技术]
  • 原文地址:https://www.cnblogs.com/JhoneLee/p/3517769.html
Copyright © 2011-2022 走看看