行内元素和块级元素的具体区别是什么?行内块元素又是什么

一,行内元素与块级元素的区别:

1.行内元素与块级元素直观上的区别二、行内元素与块级元素的三个区别

行内元素会在一条直线上排列(默认宽度只与内容有关),都是同一行的,水平方向排列。

块级元素各占据一行(默认宽度是它本身父容器的100%(和父元素的宽度一致),与内容无关),垂直方向排列。块级元素从新行开始,结束接着一个断行。

2.块级元素可以包含行内元素和块级元素。行内元素不能包含块级元素,只能包含文本或者其它行内元素。

3.行内元素与块级元素属性的不同,主要是盒模型属性上:行内元素设置width无效,height无效(可以设置line-height),margin上下无效,padding上下无效

二、行内元素和块级元素转换

    display:block; (字面意思表现形式设为块级元素)

   display:inline; (字面意思表现形式设为行内元素)

三、inline-block

inline-block 的元素(如input、img)既具有 block 元素可以设置宽高的特性,同时又具有 inline 元素默认不换行的特性。当然不仅仅是这些特性,比如 inline-block 元素也可以设置 vertical-align(因为这个垂直对齐属性只对设置了inline-block的元素有效) 属性。
HTML 中的换行符、空格符、制表符等合并为空白符,字体大小不为 0 的情况下,空白符自然占据一定的宽度,使用inline-block 会产生元素间的空隙。(这句话下面会用例子解释)

还是似懂非懂吗,来看下例子吧,保证就懂了

详细应用

在了解inline-block之前,导航栏一直采用float浮动来达到横向排列的目的,然而浮动是会产生副作用的,需要清除浮动,相对变得麻烦了。使用inline-block将会变得很方便:

复制代码

Document
我是a1 我是a2 我是a3 我是a4
复制代码 效果

有没有发现,每个a之间都会有一个空隙,这个空隙是因为块级元素会换行,就有换行,HTML 中的换行符、空格符、制表符等合并为空白符.所以换行符会占据宽度,产生间隙

如何取消inline-block产生的间隙

下面举例说明2种方法,更多方法请参考张鑫旭文章:去除inline-block元素间间距的N种方法

第一种

使用负值的margin各个浏览器的负值也不相同,才能完美贴合

浏览器 margin值(左右)
火狐 margin:-4px
chrome margin:-3px
IE margin:-2px

第二种

在父元素的css中设置word-spacing负值

浏览器 word-spacing
火狐 word-spacing:-8px
chrome word-spacing:-6px
IE word-spacing:-4px

效果

兼容性

很遗憾,IE7以下的浏览器不支持inline-block,但并非完全不支持

解决IE6、IE7兼容性的方法:

1、首先设置inline-block触发块元素,具有了layout的特性,然后设置display:inline使块元素呈现内联元素,此时layout的特性不会消失。

2、直接设置display:inline,使用zoom:1触发layout。

兼容所有浏览器的方法是:

display:inline-block;

*display:inline;

*zoom:1;

块级元素列表

定义地址 定义表格标题
定义列表中定义条目
定义文档中的分区或节
定义列表
定义列表中的项目 定义一个框架集 创建 HTML 表单

定义最大的标题

定义副标题

定义标题

定义标题

定义标题
定义最小的标题
创建一条水平线 元素为 fieldset 元素定义标题
  • 标签定义列表项目 为那些不支持框架的浏览器显示文本,于 frameset 元素内部 定义在脚本未被执行时的替代内容
      定义有序列表
        定义无序列表

        标签定义段落

        	定义预格式化的文本
        	标签定义 HTML 表格
        	标签表格主体(正文)
        	定义表格的页脚(脚注或表注)
        	标签定义表格的表头
        	定义表格中的行
        行内元素列表
        	标签可定义锚
        	表示一个缩写形式
        	定义只取首字母缩写
        	字体加粗
        	可覆盖默认的文本方向
         大号字体加粗 
        换行 引用进行定义 定义计算机代码文本 定义一个定义项目 定义为强调的内容 斜体文本效果 向网页中嵌入一幅图像 输入框 定义键盘文本 标签为 input 元素定义标注(标记) 定义短的引用 定义样本文本 创建单选或多选菜单 呈现小号字体效果 组合文档中的行内元素 语气更强的强调的内容 定义下标文本 定义上标文本 多行的文本输入控件 打字机或者等宽的文本效果 定义变量
        表格中的标准单元格
        定义表头单元格

  • 可变元素素列表–可变元素为根据上下文语境决定该元素为块元素或者内联元素
    按钮
    定义文档中已被删除的文本

    创建包含另外一个文档的内联框架(即行内框架) 标签定义已经被插入文档中的文本 客户端图像映射(即热区) object对象

    分类: HTML/CSS
    标签: block inline-block inline

    你可能感兴趣的:(CSS样式)