发表于: 2017-03-06 20:24:46

1 753


【武汉第93期】常见的inline元素、block元素、inline-block元素有哪些?它们之间有什么区别?

1.背景介绍

在了解CSS布局之前,我们需要提前知道一些知识:在CSS中,html中的标签元素大体被分为三种不同的类型:块状元素、内联元素(又叫行内元素)和内联块状元素。它们各有其自身的显示特性。元素的这种属性对布局的影响很大,因而,深刻的认识它们对我们来说是很重要的。今天我们就来认识经常用到的这三类元素。

2.知识剖析

知识点1:inline、block、inline-block元素是什么?
            常见的有哪些?

知识点2:inline、block、inline-block的特性


inline-内联元素

内联元素又名行内元素,和其他元素都在一行上;

常见元素:a,span,br,i,em,strong,label,q,var,cite,code


inline元素特点:

1、和其他元素都在一行上;直到一行排不下,换下一行。

2、元素的高度、宽度及顶部和底部边距不可设置;但水平方向可以设置,如margin-left,margin-right,padding-left,padding-right

3、元素的宽度就是它包含的文字或图片的宽度,不可改变。

4、只能容纳文本或者其他内联元素


block-块级元素

在html中div、 p、h1、form、ul 和 li就是块级元素。设置display:block可以将元素显示为块级元素。

常见元素:p,div,p,h1...h6,ol,ul,dl,table,address,blockquote,form


block元素特点:

1、每个块级元素都从新的一行开始,并且其后的元素也另起一行。(真霸道,一个块级元素独占一行)

2、元素的高度、宽度、行高以及顶和底边距都可设置。

3、元素宽度在不设置的情况下,是它本身父容器的100%(和父元素的宽度一致),除非设定一个宽度。


内联块状元素(inline-block)

就是同时具备内联元素、块状元素的特点,代码display:inline-block可以将元素设置为内联块状元素。

常见元素:img,input


inline-block元素特点:

1、和其他元素都在一行上;

2、元素的高度、宽度、行高以及顶和底边距都可设置。


3.常见问题

inline、inline-block元素之间的间距问题


4.解决方案

1、去除元素闭合标签与下一个标签之间的空格,比如</a><a>之间不要有空隙。

2、设置父容器的font-size为0,子容器重新设置font-size。(推荐)


5.编码实战

见demo


6.扩展思考

inline-block元素的水平居中与垂直居中如何设置

水平居中:设置父级div,text-align:center;

垂直居中:方法1、分别给子元素设置vertical-align:middle;父元素设置height和line-height同高。

方法2、display:flex;justify-content:center;align-item:center;


7.参考文献

参考一:http://www.imooc.com/code/2047   慕课网-元素的分类
参考二:http://www.cnblogs.com/KeithWang/p/3139517.html        block,inline和inline-block概念和区别
             http://www.51xuediannao.com/html+css/htmlcssjq/ccc-block-inline.html       深入理解CSS块级(block)元素和内联(inline)元
             http://www.zhangxinxu.com/wordpress/2012/04/inline-block-space-remove-%E5%8E%BB%E9%99%A4%E9%97%B4%E8%B7%9D/  去除inline-block元素间间距的N种方法
             http://www.cnblogs.com/xueming/archive/2012/03/21/VerticalAlign.html    使用vertical-align:middle实现垂直居中


8.更多讨论

inline-block布局较float布局而言,有哪些优势呢?

float布局:每个列表元素的高度必须要一致,否则就会像是俄罗斯方块一样,“锯齿相错”,例如一个左浮动列表布局,如果第一行有个列表高度高于其他列表,那就在第二行,第一个元素会沿着最高元素的右侧对齐,此原因是属于恶魔系的float属性破坏了inline box。

display:inline-block最大的不同就是其没有父元素的匿名包裹特性,这使得display:inline-block属性的使用非常自由,可与文字,图片混排,可内嵌block属性元素。黑白通吃,左右逢源。inline-block属性的元素适用于inline box模型,所以,当其中的列表元素高度不一时,是不会有错位的。




返回列表 返回列表
评论

    分享到