zoukankan      html  css  js  c++  java
  • display:inline 和display:inline-block和display:block的区别

    之前讲过块级元素使用display:block

               行内元素使用display:inline

    那么今天我们就来区分一下display:inline,display:inline-block和display:block的区别

    首先先说一个名词 :inline element:行内元素也叫作内联元素,内嵌元素,直进式元素

                             block element:块级元素

    1.display:inline 转化成内联元素,不换行

    内联元素的前面和后面都不会有换行符,你不可以给内联元素定宽和高,也就是说你如果同时给一个元素写
       

    {
    display:inline;
    
    值;
    
    height:值;
    
    }

    那么width和height属性就会失效;
    2.display:block转换成块元素,换行;

    将元素转化为块级元素,有宽和高的属性,元素前后都有一个换行符

    3.display:inline-block内联块元素,既不换行又可以使用块元素所拥有的属性,类似于块元素加了浮动效果,但低版本浏览器对这个不支持

    表示元素 对内具有块级元素的宽和高的属性,即你可以对它设定宽和高,对外却具有内联元素的无换行符特性,这个属性IE8以上才支持,对于IE6和IE7不支持这个值,但是只要他们的元素触发了haslayout属性,他们的内联元素便具有display:inline的特性了

    haslayout属性:hasLayout是IE浏览器专有的一个属性,用于CSS的解析引擎。有时候在IE下一些复杂的CSS设置解析起来会出现bug,其原因可能与hasLayout没有被自动触发有关,我们通过一些技巧,手动触发hasLayout属性就可以解决Bug了。这也算是针对IE下疑难杂症的特殊偏方了,很多时候,触发了hasLayout就可以药到病除了。

    hasLayout的触发方法有很多种,例如设置width,height值,设置position为relative等。但如果设置了width,height,或position都会在触发hasLayout的同时带来一些副作用的。早期的一些工程师推荐使用“height:1%”来触发hasLayout,那时还没有出现IE7,而height属性在IE6下其实是按照"min-height"来解析的,所以只要对IE6进行hack,"* html{height:1%}"就可以触发hasLayout,同时又不带来副作用了。后来出现的IE7仍然存在很多hasLayout的问题,但IE7已经能够正确识别height属性了,“height:1%”的方法已经不再适用了。

    于是,一个更好的解决方法开始流行,它使用了一个生僻的CSS属性zoom来触发hasLayout——"zoom:1"。使用"zoom:1"可以触发hasLayout,并且不会像height等属性一样引入副作用,更妙的是,我们可以不用CSS hack了。但"zoom:1"并不是一定可以触发hasLayout的。在极少数特殊的情况下,例如非常复杂的CSS设置,特别是使用DHTML的时候,使用"zoom:1"有时候也会无效,这时,我们可能需要借助更强大的"position:relative"来帮助触发hasLayout。总之,”zoom“是最常用,最安全,成本最少的触发hasLayout的方式,一般情况下,使用它就完全可以触发hasLayout了。如果遇到特殊情况,"zoom:1"无效的情况下,我们可以通过设置"position:relative"来触发hasLayout,尽管它会带来一点副作用   

    zoom是将原来的元素放大为当前你的多少倍

  • 相关阅读:
    使用redis,zookeeper实现分布式锁
    基于线程池的多线程售票demo(原创)
    springboot全局异常处理
    IDEA2017.3.4破解方式及lombok图文配置详解
    LeetCode 120——三角形最小路径和
    LeetCode 1——两数之和
    LeetCode 445——两数相加 II
    在本地电脑使用远程服务器的图形界面——包括 MATLAB、PyCharm 等各种软件
    LeetCode 141——环形链表
    LeetCode 142——环形链表 II
  • 原文地址:https://www.cnblogs.com/xy-milu/p/6085302.html
Copyright © 2011-2022 走看看