zoukankan      html  css  js  c++  java
  • block inline 和 inline-block

    概念

    block和inline这两个概念是简略的说法,完整确切的说应该是 block-level elements (块级元素) 和 inline elements (内联元素)。

    block元素通常被现实为独立的一块,会占据一整行的空间;而inline元素则前后不会产生换行,一系列inline元素都在一行内显示,直到该行排满。

    常见的block-level elements (块级元素) 和 inline elements (内联元素)

    • 常见的块级元素有 div, h1 ~ h6,p,form,table,hr,pre,ul,dl,ol 等。
    • 常见的内联元素有 em,strong,span,a,br,img,button,input,label,select,textarea,code,script等。

    block元素可以包含block元素和inline元素;但inline元素只能包含inline元素。

    值得注意的的是这只仅仅是一个个大概说法,每个特定的元素能包含的元素也是特定的,所以具体到个别元素上,这条规律是不适用的。

    比如 p 元素,只能包含inline元素,而不能包含block元素。

    可以通过 display:inline 和 display:block 的设置,改变元素的布局级别。

    block,inline 和 inlinke-block 的比较

    • display:block
      • block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
      • block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
      • block元素可以设置margin和padding属性。
    • display:inline
      • inline元素不会独占一行,多个相邻的行内元素会排列在同一行里。直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
      • inline元素设置width,height属性无效。但也不完全是,这个后面会提到
    • display:inline-block
      • 简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。display:inline-block属性的使用非常自由,可与文字,图片混排,可内嵌block属性元素,可以可以置身于inline水平的元素中。可谓黑白通吃,左右逢源。

    为什么有些行内元素可以设置宽高呢?

    HTML中有一类元素比较特殊,虽然他们属于行内元素,但是他们是可以设置宽高的。

    如img、input、select、textarea、button、label等,他们被称为可置换元素(Replaced Element)。

    他们区别一般inline元素(相对而言,称non-Replaced Element)。

    这些元素拥有内在尺寸(intrinsic dimensions),他们可以设置width/height属性。他们的性质同设置了display:inline-block的元素一致。

    在W3C中给出的置换元素和非置换元素的定义是:

    置换元素(Replaced Element)定义:主要是指 img、input、textarea、select、object 等这类默认就有 CSS 格式化外表范围的元素。

    非置换元素(non-Replaced Element)就是除了 img、input、textarea、select、object 等置换元素以外的元素。

  • 相关阅读:
    JavaEE——SpringMVC(11)--拦截器
    JavaEE——SpringMVC(10)--文件上传 CommonsMultipartResovler
    codeforces 460A Vasya and Socks 解题报告
    hdu 1541 Stars 解题报告
    hdu 1166 敌兵布阵 解题报告
    poj 2771 Guardian of Decency 解题报告
    hdu 1514 Free Candies 解题报告
    poj 3020 Antenna Placement 解题报告
    BestCoder5 1001 Poor Hanamichi(hdu 4956) 解题报告
    poj 1325 Machine Schedule 解题报告
  • 原文地址:https://www.cnblogs.com/evenyao/p/9260834.html
Copyright © 2011-2022 走看看