css中的块元素、行内元素和行内块元素的区别

1.HTML中的块元素、行内元素的说明

根据CSS规范的规定,网页的每一个元素都有一个display属性,用于确定该元素的类型,每一个元素都有默认的display属性值,比如div、form、h1-h6、ol、ul、p、menu等块元素,它的默认display属性值为“block”,成为“块级”元素(block-level);而span、img、a、b、i、select、strong、u、var、br元素的默认display属性值为“inline”,称为“行内”元素。div这样的块级元素,就会自动占据一定矩形空间,可以通过设置高度、宽度、内外边距等属性,来调整的这个矩形的样子;与之相反,像“span”“a”这样的行内元素,则没有自己的独立空间,它是依附于其他块级元素存在的,因此,对行内元素设置高度、宽度、内外边距等属性,都是无效的。

2. 块元素、行内元素的区别

块元素的特性:

  1. 能够识别宽高
  2. margin和padding的上下左右均对其有效
  3. 可以自动换行
  4. 多个块状元素标签写在一起,默认排列方式为从上至下

行内元素的特性:

  1. 设置宽高无效
  2. 对margin仅设置margin-left和margin-right有效,margin-top和margin-bottom无效;padding设置top、left、bottom、right都有效,即会撑大空间
  3. 不会自动进行换行

行内块元素的特性:

行内块状元素综合了行内元素和块状元素的特性,但是各有取舍。因此行内块状元素在日常的使用中,由于其特性,使用的次数也比较多。

  1. 不自动换行
  2. 能够识别宽高
  3. 默认排列方式为从左到右

3.块元素和行内元素的转换

  1. display:inline; 将块元素转换为行内元素。
  2. display:block; 将行内元素装换为块元素。
  3. display:inline-block; 将行内元素转变为行内块元素
    ···································································································
    上代码分析

<html>
	<head>
		<meta charset="UTF-8">
		<title>title>
		<style type="text/css">
			*{
				padding: 0;margin: 0;
			}
			span{
				width: 200px;
				background: red;
				display: block;  /*将行内元素转为块元素*/
			}
			.box1{
				width: 200px;
				height: 30px;
				background: skyblue;
				display: inline;  /*将块元素1,转为行内元素*/
			}
			.box2{
				width: 200px;
				height: 30px;
				background: blueviolet;
			}
			i{
				background: green;
			}
		style>
	head>
	<body>
		<span>行内元素1,转块元素span>
		<i>行内元素2i>
		<div class="box1">块元素1,转行内元素div>
		<div class="box2">块元素2div>
	body>
html>

打开浏览器查看到元素的排版,给行内元素1加了display: block;之后,发现行内元素自己占了一行,变成了块元素,而块元素1加了display: inline;,变成了行内元素。
css中的块元素、行内元素和行内块元素的区别_第1张图片
在不给任何元素加display的情况下,元素的排列应该是如下面这样的;这就是韩内元素和块元素之间的相互转换
css中的块元素、行内元素和行内块元素的区别_第2张图片

你可能感兴趣的:(前端)