小程序之CSS入门

详解css中的display属性(行内元素和块级元素)

首先,所有主流浏览器都支持display属性。其次,display属性规定了元素应该生成的框的类型。默认值:inline

我们常用的display属性有:

  1. inline
  2. block
  3. inlien-block
  4. none

把display设置成none就不会保留元素本该显示的空间(元素直接不显示),但是visibility:hidden会保留。那么其他三个有什么区别呢?看下下面css代码:

1
2
3
4
5
6
7
8
9
10
11
<body>
<span class="inline">
inline
</span>inline
<span class="block">
block
</span>block
<span class="inline-block">
inline-block
</span> inline-block
</body>

点此看效果

inline特性

我们发现内联对象inline给它设置属性height和width是没用的,致使它变宽变大的原因是:

内部元素的宽高‘+padding’。观察inline对象的前后元素我们会发现inline不单独占一行,其他元素会紧跟其后。

block特性

而块对象‘block’是可以设置宽高的,但是它的实际宽高是本身宽高+’padding‘。观察block的前后元素,我们会发现block会独占一行

如果,我们即希望div有宽高,又不希望它独占一行要怎么办?

inline-block

这个时候我们就需要’inline-block‘属性了,我们看下显示效果,就会发现:

inline-block即具有block的宽高特性又具有inline的同行元素特性。

也就是说,当我们想让一个元素即不独占一行,又可以设置其宽高属性的时候,我们就可以选择inline-block了。

行内元素特点

  1. 和其他元素都在一行上;
  2. 元素的高度,宽度,行高及顶部和底部边距不可设置
  3. 元素的宽度就是它包含的文字或图片的宽度,不可改变。

块级元素特点

  1. 每个块级元素都是从新的一行开始,并且其后的元素也另起一行;
  2. 元素的高度,宽度,行高及顶部和底部边距都是可以设置的;
  3. 元素宽度在不设置的情况下,是它本身父容器的100%(和父元素一致),除非设定一个宽度。

在html中,span,a,lable,input,img,strong和em就是典型的行内元素。div,p,h1,form,ul,li就是块级元素。

块级元素是可以设置宽高的,但是它的实际宽高是本身宽高+padding。block元素要单独占一行。内联元素不单独占一行,给他设置宽高是没有用的。

更多CSS display请参考