`

CSS+DIV让文字内容居中___display:inline、block、inline-block的区别

阅读更多
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
		<title>Untitled Document</title>
	</head>
	<style type="text/css">
<!--
#con_div{
width:400px;
height:300px;
border:1px solid #777;
text-align:center;
}
/*FOR IE*/
.fixie{
width:0;
height:100%;
display:inline-block;<!--见下文对Display的说明-->
vertical-align:middle;
}
-->
</style>
	<body>

<div id="con_div">
<span class="fixie"></span><!--这里用DIV和Span来控制文字内容的水平和垂直居中-->
teststsetsetsetdisplay:inline-block;
</div>
	</body>
</html>



display:block就是将元素显示为块级元素.   
    block元素的特点是:
  总是在新行上开始;
  高度,行高以及顶和底边距都可控制;
  宽度缺省是它的容器的100%,除非设定一个宽度
  <div>, <p>, <h1>, <form>, <ul> 和 <li>是块元素的例子。

display:inline就是将元素显示为行内元素.

  inline元素的特点是:
  和其他元素都在一行上;
  高,行高及顶和底边距不可改变;
  宽度就是它的文字或图片的宽度,不可改变。
  <span>, <a>, <label>, <input>, <img>, <strong> 和<em>是inline元素的例子。

  inline和block可以控制一个元素的行宽高等特性,需要切换的情况如下:

  让一个inline元素从新行开始;
  让块元素和其他元素保持在一行上;
  控制inline元素的宽度(对导航条特别有用);
  控制inline元素的高度;
  无须设定宽度即可为一个块元素设定与文字同宽的背景色。

  display:inline-block将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。

  inline-block的元素特点:

  将对象呈递为内联对象,但是对象的内容作为块对象呈递。旁边的内联对象会被呈递在同一行内,允许空格。(准确地说,应用此特性的元素呈现为内联对象,周围元素保持在同一行,但可以设置宽度和高度地块元素的属性)

  并不是所有浏览器都支持此属性,目前支持的浏览器有:Opera、Safari在IE中对内联元素使用display:inline-block,IE是不识别的,但使用display:inline-block在IE下会触发layout,从而使内联元素拥有了display:inline-block属性的表症。从上面的这个分析,也不难理解为什么IE下,对块元素设置display:inline-block属性无法实现inline-block的效果。这时块元素仅仅是被display:inline-block触发了layout,而它本就是行布局,所以触发后,块元素依然还是行布局,而不会如Opera中块元素呈递为内联对象。

  IE下块元素如何实现display:inline-block的效果?

  有两种方法:
  1、先使用display:inline-block属性触发块元素,然后再定义display:inline,让块元素呈递为内联对象(两个display要先后放在两个CSS声明中才有效果,这是IE的一个经典bug,如果先定义了display:inline-block,然后再将display设回inline或block,layout不会消失)。代码如下(...为省略的其他属性内容):

  
div {display:inline-block;...} 
  div {display:inline;}

  2、直接让块元素设置为内联对象呈递(设置属性display:inline),然后触发块元素的layout(如:zoom:1等)。代码如下:

 
 div {display:inline; zoom:1;...}

  以下用个例子来说明三者的区别和用
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>display:inline、block、inline-block的区别</title>
</head>
<style>
div,span{background-color:green;margin:5px;border:1px solid #333;padding:5px;height:52px;color:#fff;}
.b{display:block;}
.i{display:inline;}
div.ib{display:inline-block;}
div.ib{display:inline;}
a.ib{display:inline-block;}
a.ib{display:block;}
span.v{padding:0;margin:0;border:0;vertical-align:middle;height:100%}
</style>
<body>
<div>div display:block</div>
<div class="i">div display:inline</div>
<div class="ib">div display:inline-block</div>
<span>span display:inline</span>
<span class="b">span display:block</span>
<span><a class="ib">a display:block</a></span><br />
<div><span class="v"></span>vertical-align:middle</div>
</body>
</html>

分享到:
评论

相关推荐

    css自适应宽度 多种方法实现宽度自适应的水平居中

    display:inline-block 可以使用text-align:center和display:inline-block相结合,这个技巧需要一个父元素。 HTML代码: 复制代码代码如下: &lt;div class=”navbar”&gt; &lt;ul&gt; &lt;li&gt;&lt;a&gt;Home&lt;/a&gt;&lt;/li&gt; … &lt;/ul&gt; &lt;/div&gt; CSS...

    CSS布局方案小结

    用法:对子框设置display:inline-block,对父框设置text-align:center。 &lt;div class=parent&gt; &lt;div class=child&gt;DEMO&lt;/div&gt; &lt;/div&gt; .child{ display: inline-block; } .parent{ text-align: center; } 缺点:child...

    DIV+CSS垂直居中一个浮动元素

    场景:在一个固定高度的div中,有一个浮动的元素,需要将这个浮动元素垂直居中。 原始代码如下: 复制代码代码如下:&lt;!... &lt;head&gt; &lt;...style type=”text/css”&gt;... display: inline-block;

    Web前端开发试题.docx

    6. 文字居中的 CSS 代码是____________。 答案:text-align: center; 解释:CSS 的 text-align 属性用于设置文本的对齐方式。设置 text-align 属性为 center 可以实现文字居中。 二、 精心选一选! 1. 以下哪个...

    WEB前端开发必备之浏览器兼容性处理方法大全[借鉴].pdf

    1. display:block,inline两个元素display:block; //可以为内嵌元素模拟为块元素display:inline; //实现同一行排列的的效果display:table; //for FF,模拟table的效果display:block块元素,元素的特点是:总是在新行上...

    图片垂直居中css写法兼容ie6

    头胀胀的,看不下东西做不下事,那就写朵随笔吧。 图片垂直居中,原理应该就是,其实我也不知道。 手上两种方法,异曲同工,但是都兼容ie6的。...} .imgBox img,.imgBox i{display:inline-block; vertical-align:mid

    css入门笔记

    取值:auto 则内容居中 2、外边距margin 6、背景颜色 1.背景色 属性:background: 取值:颜色 2.背景图片 属性:background-image:url(); 取值:url() 3.背景图像平铺 属性:background-repeat 取值:...

    用CSS和Div美化select样式的简单方法

    CSS Code复制内容到剪贴板 .select { margin: 0; padding: 0; border:1px solid #cccccc; float: left; display: inline; } .select div { border:1px solid #f9f9f9; float: left; } ....

    Web前端与移动开发之复合选择器 css元素显示模式 背景属性.txt

    (3)行内块 元素 display:inline-block√、 单行文字垂直居中 文字的行高line-height=盒子高度 仅限于单行文字垂直居中 3.css的背景属性 (1)背景颜色 选择器{ background-color: transparent透明(透明)/...

    浅谈HTML(css基础样式)

    solid 边框加粗border:5px 设置边像素display:inline-block 横着显示块状的line-height:40px 字体上下居中text-align:center 字体左右居中margin-right:20px 调整外界边框 CSS Code复制内容到剪贴板 &lt;body ...

Global site tag (gtag.js) - Google Analytics