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


    display:block元素的特点是:
    总是在新行上开始;
    高度,行高以及顶和底边距都可控制;
    宽度缺省是它的容器的100%,除非设定一个宽度
    <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

    display:inline元素的特点是: 
    和其他元素都在一行上;
    高,行高及顶和底边距不可改变;
    宽度就是它的文字或图片的宽度,不可改变。
    <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

    display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

    inline-block的元素特点:

     将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

     并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

    下面举一个例子说明block, inline和inline-block的区别:

    /***html页面代码****/
    
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>zlz</title>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <link type="text/css" rel="stylesheet" href="css/tab.css" />
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript" src="js/tab.js"></script>
    </head>
    <body>
    <ul id = "tabfirst">
    <li class = "tabin">标签1</li>
    <li>标签2</li>
    <li>标签3</li>
    </ul>
    <div class = "contentin contentfirst">我是内容1</div>
    <div class = "contentfirst">我是内容2</div>
    <div class = "contentfirst">我是内容3</div>
    </body>
    </html>
    /***css样式代码***/
    
    ul,li {
    margin: 0;
    padding: 0;
    list-style: none;
    }
    #tabfirst li {
    float: left;
    color: white;
    padding: 5px;
    margin-right: 2px;
    background-color: #868686;
    border: 1px solid white;
    }
    #tabfirst li.tabin {
    background-color: #6E6E6E;
    border: 1px solid #6E6E6E;
    }
    div.contentfirst {
    clear: left;
    background-color: #6E6E6E;
    color: white;
    height:100px;
     300px;
    padding: 10px;
    display: none;
    }
    div.contentin {
    //display: block;
    
    //display: inline;
    
    display: inline-block;
    }

     通过测试display: block;display: inline;和display: inline-block;可以测试得到这三个元素的区别。

    同时在定位时,对于一张图片的定位问题:

          如果用的是block: 则该图片显示时默认的是在屏幕上100%显示,同时我们还可以设定该图片的大小;

          如果用的是inline-block:则该图片显示时默认的是该图片原来的大小,但是我们也可以设定该图片的大小;

          如果我们用的是inline:则该图片显示时默认的是该图片原来的大小,同时该图片的大小是不可以设定的。

  • 相关阅读:
    微软外服 AlI In One
    js 循环多次和循环一次的时间的性能对比 All In One
    vue inject All In One
    Excel 表格数据倒置 All In One
    SVG tickets All In One
    OH MY ZSH All In One
    js array for loop performance compare All In One
    mac terminal show You have new mail All In one
    新闻视频 26 制作母版页
    转自牛腩 母版页和相对路径
  • 原文地址:https://www.cnblogs.com/zlz-ling/p/4011201.html
Copyright © 2011-2022 走看看