测试display inline的各种属性

发布时间:2020-08-21编辑:脚本学堂
下文主要讲了几个小测试,进而说明display inline的各种属性使方法,需要的朋友参考一下。

 实验开始:首先建一个table
Html代码
 

复制代码 代码示例:
1.<table style='border:1px solid;width:300px'>
2.  <tr>
3.    <td><div>div1</div><div>div2</div></td>
4.    <td>3</td>
5.  </tr>
6.</table>

效果:两个div没有设宽度,所以他们默认的上下排列了

实验1:div1的display:inline
Html代码
 

复制代码 代码示例:
1.<table style='border:1px solid;width:300px'>
2.  <tr>
3.    <td><div style='display:inline'>div1</div><div>div2</div></td>
4.    <td>3</td>
5.  </tr>
6.</table>

效果:div1变短了,因为他要与他后面的元素放在一行了,但div2没有任何设定所以它还是默认的宽度,也就在div1的下面了,如果把div2的display也设上inline的话,他也会变短,然后就会和div1一行了,

事实上是如果在div1后面的元素是固定长的那么他们也会在一行的
Html代码
 

复制代码 代码示例:
1.<table style='border:1px solid;width:300px'>
2.  <tr>
3.    <td><div style='display:inline'>div1</div><span style='outline:1px solid'>span2</span></td>
4.    <td>3</td>
5.  </tr>
6.</table>
 

span的宽度和内容一致,但是如果span在前面 div在前面会怎么样呢?
Html代码

复制代码 代码示例:
1.<table style='border:1px solid;width:300px'>
2.  <tr>
3.    <td><span style='outline:1px solid; display:inline'>span1</span><div style='width: 50px'>div2</div></td>
4.    <td>3</td>
5.  </tr>
6.</table>

如果div2的宽度很小,还是在下面,想让div2上去的话,只要也给他设定display:inline,要注意这里。

实验2:之前的div都变短了,如果想要div还是自动变宽的话怎么办呢
Html代码
 

复制代码 代码示例:
1.<table style='border:1px solid;width:300px'>
2.  <tr>
3.    <td><span style='outline:1px solid; display:inline; float:right;margin-top:6px'>span1</span><div>div2</div></td>
4.    <td><div style='display:inline; '>div2</div><span style='outline:1px solid; display:inline; '>span1</span></td>
5.  </tr>
6.</table>

效果:请注意一下代码,第一个td里的span是写在div前面的,他用float:right飘到右边了,这样第一个td里的div就是自动宽度的。

实验3
display的block, inline, inline-block的区别
block:是带有换行的区域,不管容器多宽都换行,div默认是这个。
inline-block:容器够宽就排在一行,不够宽还是要换行, 这个换行是整个line在换行。
inline:容器够宽就排一行 像inline,不够宽就换行 像 block,注意ie8以后的版本才有这个。