block,inline和inline-block的区别

概念

block是块级元素,会被现实认为是单独的一块,会单独占一行。

常见的block元素有: DIV, FORM, TABLE, P, PRE, H1~H6, DL, OL, UL 等。

inline内联元素,不会产生换行,一系列的inline在一行内显示,直到排满为止。

常见的内联元素有 SPAN, A, STRONG, EM, LABEL, INPUT, SELECT, TEXTAREA, IMG, BR 等。

inline-block:是将对象呈现为inline对象,但是对象的内容作为block呈现。

细节对比

display:block

1)block元素会独自占一行,多个block元素各自新起一行,默认情况下 ,block元素宽度自动填充其父元素宽度

2)block可以设置width,height属性,设置之后仍然独占一行

3)block元素可以设置margin和padding属性

display:inline

1) inline元素不会独自占一行,多个相邻元素会排在同一行中,直到一行排不下,才会新换一行,其宽度随元素的内容而变化

2) inline元素设置的width,height属性无效

3)对于inline元素的margin和padding属性,水平方向的padding-left,padding-right,margin-left,margin-right有效,

而竖直方向的padding-top,padding-bottom,margin-top,margin-bottom无效

display:inline-block

就是它将对象呈现inline的表现形式,即不会独占一行,而内容作为block对象呈现,即可以设置width,height,padding-top等属性

例如:

<style type="text/css">
        div, p {
            border: 1px solid red;
        }

        span {
            border: 1px solid green;
            width: 600px;
            height: 200px;
        }
        em {
            border: 1px solid green;
            width: 600px;
            height: 200px;
        }

        .setline {
            border: 1px solid green;
            display: inline-block;
            width: 400px;
            height: 50px;
        }
    </style>

    <div>我是块级div元素哦,我会独自占一行哦</div>
    <p>我也是块级p元素哦,我会独自占一行哦</p>
    <h1>我也是块级h1元素哦,我也会独自占一行哦</h1>

    <span>我是行内元素span哦,不会占一行哦,但是设置width,height对我无效哦</span>
    <em>我也是行内元素em哦,设置的width,height对我无效哦</em>
    <span class="setline">我是span,我改变display值时,width,height对我有了效果</span>
    <em class="setline">我是em,我改变display值时,width,height对我有了效果</em>

对应的效果为:

用display:inline-block 实现列表布局

既然display:inline-block对象既可以拥有inline的表现形式,内容又能够拥有block的形式,则可以用来流式布局,例如html代码如下:

 <style type="text/css">
        .layoutImg {
            width: 840px;
            overflow: hidden;
            margin: 20px;
        }
         .layoutImg span {
             display: inline-block;
             width: 120px;
             height: 160px;
             margin: 10px 5px;
         }
          .layoutImg span label{
              height: 25px;
              line-height: 25px;
              display: inline-block;
         }
    </style>
   <div class="layoutImg">
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
        <span><img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/><label>这是测试的哦</label></span>
    </div>

效果如下:

刚学css,没有做兼容性,做得有点粗糙

一般的列表布局采用的都是浮动布局,也可以用浮动布局实现:

例如:

 <style type="text/css">
          .content
         {
             width: 530px;
             border: 1px gold solid;
         }

         .content ul {
             list-style-type: disc;
             margin: 0;
             padding: 0;
         }

         .cf:after {
             content: ".";
             display: block;
             clear: both;
             font-size: 0;
             height: 0;
             line-height: 0;
             visibility: hidden;
             overflow: hidden;
         }

         .content ul li {
             float: left;
             width: 120px;
             height: 170px;
             padding-left: 5px;
             list-style: none;
             padding: 5px;
         }
          .title{
              height: 25px;
              line-height: 25px;
              overflow: hidden;
              display: inline-block;
         }
    </style>

    <div class="content">
        <ul class="cf">
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                    <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                    <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                    <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                     <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                    <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                    <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                   <span class="title">这是测试的标题哦</span>
                </a>
            </li>
            <li>
                <a>
                    <img src="http://img1.gtimg.com/astro/pics/hv1/208/21/2030/132006313.jpg"/>
                   <span class="title">这是测试的标题哦</span>
                </a>
            </li>
        </ul>
    </div>

效果如下:

时间: 2024-10-22 10:37:11

block,inline和inline-block的区别的相关文章

2017-08-20 block,inline和inline-block概念和区别

display:inline.block.inline-block的区别 display:block就是将元素显示为块级元素. block元素的特点是: 总是在新行上开始: 高度,行高以及顶和底边距都可控制: 宽度缺省是它的容器的100%,除非设定一个宽度 <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子. display:inline就是将元素显示为行内元素. inline元素的特点是:  和

block,inline和inline-block概念和区别

block,inline和inline-block概念和区别 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): 常见的块级元素有 DIV, F

Css 中的 block,inline和inline-block概念和区别

1.block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 2.大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): -常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL,

block,inline和inline-block概念和区别(转)

总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): 常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL,

display:block、display:inline与displayinline:block的概念和区别

总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说HTML元素各有其自身的布局级别(block元素还是inline元素): 常见的块级元素有 DIV, FORM, TABLE, P, PRE, H1~H6, DL,

css(二) block,inline和inline-block概念和区别

转: http://www.cnblogs.com/KeithWang/p/3139517.html 总体概念 block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素).block元素通常被现实为独立的一块,会单独换一行:inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满. 大体来说HTML元素各有其自身的布局级别(block元素还是inline

[CSS3] CSS Display Property: Block, Inline-Block, and Inline

Understanding the most common CSS display types of block, inline-block, and inline will allow you to get the most out of your HTML and use CSS Frameworks like Bootstrap to their fullest. Takeway: Inline: Can NOT add height and width. But can add marg

当inline元素包裹block元素时会发生什么

经常有图片链接写法如下: <a href="www.baidu.com"><img src="baidu.jpg" /></a> 点击图片自动跳转,不用增加新的点击事件,光标滑过时变成小手等等,这都是a标签的功劳. 但是inline元素包裹block元素后,inline元素本身是否会变成blcok元素,还有待求证,于是做了如下对比: <div>这里是块元素</div> <span>用于测试(没有

block的学习(block和timer的循环引用问题)

一.什么是回调函数? 回调函数,本质上也是个函数(搁置函数和方法的争议,就当这二者是一回事).由"声明"."实现"."调用"三部分组成. 在上面的例子中,我可以看出,函数amount(其实是Block),的声明和调用在A类中,而实现部分在B类中.也就是说,B类实现了amount函数,但并没有权限调用,最终还是 由A类触发调用.我们称这样的机制为"回调".意思是"虽然函数的实现写在B类中,但是真正的调用还是得由A类来完

(译)IOS block编程指南 2 block开始

Getting Started with Blocks(开始block) The following sections help you to get started with blocks using practical examples. 接下来这一节有实用的例子帮你开始blocks. Declaring and Using a Block (定义和使用block) You use the ^ operator to declare a block variable and to indic