CSS中display属性:block、inline和inline-block的区别

最近写HTML遇到一个问题:我想设置span的宽度和高度,但是在IE9和chrome下总是不起效果。代码和效果图如下:

<head>
	 <style>
		 span{
			background-color:#43be60;
			width:100px;
			height:50px;
			margin-top:20px;
			margin-left:20px;
		 }
	 </style>
</head>

<body>
	<div style="background-color:#ededed;width:400px;height:400px;">
		 <span>1</span>
		 <span>10</span>
		 <span>100</span>
		 <span>1000</span>
	</div>
</body>

可以看到css设置的width和height并没有起效果,span的实际显示宽度和高度由其内容决定。为什么会这样呢?这涉及到HTML中块级元素(block)和行级元素(inline)的区别,比如div就是常见的块级元素,span就是常见的行级元素。我们可以通过css的display属性来设置一个元素到底是块级,还是行级元素。display:block将元素设置成块级的,display:inline将元素设置成行级的。

display:block的特点:

1、block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。

2、block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。

3、block元素可以设置margin和padding属性。

display:inline的特点:

1、inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。

2、inline元素设置width,height属性无效。

3、inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。

由于span是行级元素,所以不能设置其宽度和高度;如果将span设置成block,那么又会自动换行。怎么让多个span在同一行显示,而且能够固定宽度呢?这就需要用到display:inline-block了。代码和效果图如下:

<head>
	 <style>
		 span{
			background-color:#43be60;
			width:100px;
			height:50px;
			margin-top:20px;
			margin-left:20px;
			display:inline-block;
		 }
	 </style>
</head>

<body>
	<div style="background-color:#ededed;width:400px;height:400px;">
		 <span>1</span>
		 <span>10</span>
		 <span>100</span>
		 <span>1000</span>
	</div>
</body>

时间: 2024-12-22 08:54:48

CSS中display属性:block、inline和inline-block的区别的相关文章

CSS中display属性

一开始觉得挺简单的,要么是块的,自己在这个桌上吃饭了了,别人就不能在这个桌上吃饭了,要么是内联的,自己在这个桌上吃饭,只要桌上有空座,别人还是可以坐到这儿的.等到了使用的时候发现并没有那么简单啊~  一.HTML元素分类 1.内联元素(inline) ①元素显示方式:“文本方式”,1个接着1个,不单独占一个桌吃饭. ②内嵌元素也必须是内联元素:如<a></a>,不能在里面嵌套<div></div>等块级元素. ③常见的标签有:<a>,<in

css中display为none 和visibility为hidden的区别

区别一: display:none Turns off the display of an element (it has no effect on layout);  all child elements also have their display turned off.  //隐藏这个元素;所有的子元素也跟着他隐藏. visibility:hidden The box is invisible (fully transparent, nothing is drawn), but stil

CSS的display属性

网页设计中最常用的标签p.div.h1-h6(默认为块级元素),span(默认为内联元素) 1.把元素显示为内联元素和把元素显示为块级元素 <style type="text/css"> div{ display:inline; background:red;}/*区块元素将转换为内联元素*/ span{ display:block; background:green;}/*将内联元素转换为区块元素*/ </style> </head> <bo

CSS里display属性

css里display属性 在了解css的display属性之前,我想先介绍一下display属性所能改变的元素都有什么. 元素类型 元素类型可分为三种,分别是: 块状元素(例如div.dl.form.p等) 内联元素(例如a.b.br.img.input等) 可变元素 也可以分为:块状元素.内联元素.内联块元素 而在盒子模型可通过display属性改变默认的显示类型. display的属性 盒子模型可通过display属性来改变默认的显示类型 display的属性值 display的属性值有许

css笔记-display属性

css笔记-display属性 display属性可取值 display:none | inline | block | list-item | inline-block | table | inline-table | table-caption | table-cell | table-row | table-row-group | table-column | table-column-group | table-footer-group | table-header-group | co

CSS中Position属性

也许你看到这个标题觉得很简单,确实这是一篇关于CSS中Position属性基础知识的文章,但是关于Position的一些细节也许你不了解. 1.简介 position有五个属性: static | relative | absolute | fixed | inherit static 和 inherit : 没什么值得介绍的. relative : 相对于元素自身的定位. absolute :相对于包含块的定位. fixed : 相对于窗口的定位. 2.包含块 包含块就是 top | righ

CSS中transform 属性

CSS中transform 属性允许你修改CSS可视化模型的坐标空间.通过transform,可以让元素进行移动(translate).旋转(rotate).缩放(scale).倾斜(skew). 如果该属性有一个非none值, 将会产生一个层叠上下文. 在这种情况下 对象将作为它包含的 position: fixed 元素的包含块(a containing block). 初始值 none 适用元素 transformable elements 是否是继承属性 否 Percentages re

[ jquery 效果 show([speed,[easing],[fn]]) hide([speed,[easing],[fn]]) ] 此方法用于显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type=&#39;hidden&#39; 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素)

show()显示隐藏的被选元素:show() 适用于通过 jQuery 方法和 CSS 中 display:none type='hidden' 隐藏的元素(不适用于通过 visibility:hidden 隐藏的元素): hide() 方法隐藏被选元素: 参数 描述 speed 可选.规定显示效果的速度. 可能的值: 毫秒 "slow" "fast" easing 可选.规定在动画的不同点上元素的速度.默认值为 "swing". 可能的值: &

CSS中margin属性详解

margin属性概述margin是CSS层叠样式表中用来规定围绕在元素边框周围空白区域范围的属性. 该接受任何长度单位,可以是像素.英寸.毫米或 em. 相关属性margin 可以单独改变元素的上,下,左,右边距.也可以一次改变所有的属性. 使用语法1.使用单独属性设置四边的距离 #d2 { border: 1px solid blue; /*为了显示效果,所以让d2有了边框 */ margin-top: 20px; /*上边距为20px*/ margin-right: 30px; /*右边距为