`

CSS如何实现单行图片与文字垂直居中

阅读更多

 以下选自(CSS权威指南)

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
vertical-align
初始值: baseline(缺省值)
可否继续:否
适用于: 内联元素
说明:vertical-align:baseline使元素的基线同父元素的基线对齐.
警告:vertical-align不能影响表格单元中的内容的对齐,对于块元素中的内容也一样.


  文字不多,但时常有人范错误,有人说我用了为什么没有效果呢?首行看一下他的代码.

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
.style{vertical-align:middle;.....} WWW.MB5U_COM
HTML:<div class="style"><img src="地址" />...<div>


  分析:从上面的代码可以看出错误就是把样式应用在块元素中了
  我们只需要改样式为

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
.style img{vertical-align:middle;.....}


  假如STYLE中有其它如INPUT或其它内联元素可写成

div css xhtml xml Example Source Code Example Source Code [www.mb5u.com]
.style img,.style.input{vertical-align:middle;.....}
或.style *{vertical-align:middle;.....}/*在不影响其它元素的情况下使用这个通配符*/


  以上是在没有设置高度/行高的事情下,假如加入了高度和行高的事情下FF可以支持,IE6以下则不完全支持,看以下测试结果.(为了增加明显的效果对图片适当增加了高度)

 

 

 

 

 

div css xhtml xml Source Code to Run Source Code to Run [www.mb5u.com]
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "//www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="//www.w3.org/1999/xhtml"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>单行图文并排垂直居中</title> 
<style type="text/css"> 
.text{ margin:5px 0 15px 0} }
.mid{ line-height:50px; background-color:#CCCCCC; } 
.mid3{ height:50px; background-color:#CCCCCC; } 
.mid2{ line-height:50px; height:50px; background-color:#CCCCCC; } 
.va_m img{ vertical-align:middle; } 
</style> 
</head> 
<body> 
<div style="background-color:#CCCCCC;">无样式和图片</div> <div class="text">说明:</div> 
<div style="background-color:#CCCCCC;">无样式有图片<img src="/uploads/divcss/level3.gif" width="37" height="40"/></div>
<div class="text">说明:</div> 
<div class="mid3">只有height</div> 
<div class="text">说明:</div> 
<div class="mid3">有height有图片<span style="background-color:#CCCCCC;"><img src="/uploads/divcss/level3.gif" width="37" height="46"/></span></div> 
<div class="text">说明:</div> 
<div class="mid">只有line-height</div> 
<div class="text">说明:</div> 
<div class="mid">有line-height和图片<img src="/uploads/divcss/level3.gif" width="37" height="30"/></div> <div class="text">说明:</div> 
<div class="mid2">有line-height又有高度的情况</div> 
<div class="text">说明:</div> 
<div class="mid2">有line-height和图片的情况<img src="/uploads/divcss/level3.gif" width="37" height="48"/></div> <div class="text">说明:</div> 
<h2>在上面测试基础中对图片加入vertical-align:middle;</h2> 
<div class="va_m"> 
<div style="background-color:#CCCCCC;">无样式和图片</div> 
<div class="text">说明:</div> <div style="background-color:#CCCCCC;">无样式有图片<img src="/uploads/divcss/level3.gif" width="37" height="12"/></div>
<div class="text">说明:</div>
<div class="mid3">只有height</div>
<div class="text">说明:</div>
<div class="mid3">有height有图片<span style="background-color:#CCCCCC;"><img src="/uploads/divcss/level3.gif" width="37" height="12"/></span></div>
<div class="text">说明:</div> 
<div class="mid">只有line-height</div> 
<div class="text">说明:</div> 
<div class="mid">有line-height和图片<img src="/uploads/divcss/level3.gif" width="37" height="12"/></div>
<div class="text">说明:</div> 
<div class="mid2">有line-height又有高度的情况</div> 
<div class="text">说明:</div> 
<div class="mid2">有line-height和图片的情况<img src="/uploads/divcss/level3.gif" width="37" height="30"/></div>
<div class="text">说明:</div>
</div> 
</body> 
</html> 
 


总结:对于单行图片文字垂直居中(有图片的情况下)
  1.当没有高度行高时,我们只要简单的对内联元素应用vertical-align:middle;就可以了.此外对于一个图片和文字的高度相差无几的,不用这个样式也是可以的.
  2.对于有行高或有行高+高度的,FF可以正确显示,ie6失效.所以也只能对IE6以下版本使用KACK了!,现在IE7已经改正了这个错误.
  3.对2补充一下,可以用不定高度,用上下补白的方法,这样就可以兼容IE6了。

分享到:
评论

相关推荐

    CSS实现完美垂直居中 - 蓝色理想

    "CSS实现完美垂直居中"这一主题深入探讨了如何利用CSS技术使元素在容器内实现精确的垂直对齐。以下是一些关于这个主题的关键知识点: 1. **单行文本垂直居中**: 对于单行文本,可以使用`line-height`属性来实现...

    DIV+CSS 图片垂直居中效果

    综上所述,"DIV+CSS 图片垂直居中效果"可以通过多种方法实现,具体选择哪种取决于项目需求、浏览器兼容性和响应式设计的需求。在提供的`index.html`、`images`和`css`文件中,我们可以看到实际的代码应用和图片资源...

    CSS 图片水平垂直居中于DIV

    总之,实现CSS中的图片水平垂直居中是一个常见的挑战,但通过理解不同的布局模式和定位方式,我们可以灵活地选择合适的方法来解决这个问题。无论是在简单的网页还是复杂的响应式设计中,这些技巧都将大有裨益。

    div中多行文字垂直居中

    以下是一些主要的策略来实现`div`中多行文字的垂直居中。 1. **Flexbox布局** Flexbox是CSS3引入的一种新的布局模式,它为处理容器内子元素的对齐提供了强大而灵活的方式。要实现垂直居中,可以设置`display: flex...

    css实现垂直居中

    通过设置一个垂直线性渐变作为背景,可以实现文本或其他单行内容的垂直居中。渐变的`background-position`设置为`center`。例如: ```css .container { background: linear-gradient(transparent, transparent) ...

    div+css垂直居中和水平居中

    在网页设计中,实现元素的垂直居中和水平居中是一项常见的需求,这涉及到CSS布局技术。本篇文章将深入探讨如何使用div+css方法来实现这一目标。在现代Web开发中,div元素作为布局容器广泛使用,而CSS则是样式控制的...

    多行文字实现垂直居中

    对于单行文本,可以利用line-height与height相等来实现垂直居中,但对于多行文本,这种方法可能不可靠,因为它依赖于准确的文本行高和容器高度: ```css .container { line-height: 100px; /* 容器的高度 */ ...

    垂直居中.docx

    1. 单行垂直居中 对于单行文字,可以使用设置高度和行高相等的方法实现垂直居中。这种方法简单易行,但需要注意 overflow:hidden 的设置,以防止内容超出容器或产生自动换行。 代码示例: ``` div { height: 25px...

    实现css文字垂直居中的8种方法

    在CSS布局中,实现文字垂直居中是一项常见的需求。标题提到的"实现css文字垂直居中的8种方法"涵盖了多种不同的技术,适用于不同场景。以下是对这些方法的详细解释: 1. **绝对定位和负外边距**: 这种方法适用于...

    CSS实现垂直居中的5种方法.rar

    这种方法适用于单行文本的垂直居中。创建一个与文本同宽的伪元素,设置`height: 100%;`和负的`margin-top`,使得文本正好位于容器中间。 ```css .container { position: relative; } .child::before { ...

    实现DIV层内的文字垂直居中(单行文字/多行文字)

    首先,对于单行文字而言,实现垂直居中相对简单。主要方法是调整DIV的高度与其行高(line-height)保持一致。行高(line-height)指的是在同一行文字中,文字基线到下一行文字基线之间的距离,是决定文字垂直居中的...

    css实现垂直居中的方法

    ### CSS 实现垂直居中的五种方法 在前端开发中,如何使元素在页面中垂直居中是一项常见的需求。本文将详细介绍五种不同的方法来实现这一目标,并对每种方法的特点进行分析,以便开发者根据实际情况选择最合适的方案...

    纯css多种方法实现div中单行文字、多行文字及嵌套div垂直水平居中

    学习过程中经常遇到要居中的问题,水平居中问题比较好解决,而垂直居中问题因为vertical-align经常失效,所以不容易实现,今天将自己总结的一些方法归纳于这边。 1.div中单行文字垂直水平居中。条件:外层div高度...

    html中对文本实现垂直居中的方法

    ### 单行垂直居中 对于仅包含一行文字的容器,实现垂直居中较为直接。核心思想是通过设置容器的实际高度`height`与该行的高度`line-height`保持一致来达到目的。例如: ```css div { height: 25px; /* 设置容器的...

    CSS实现垂直居中的几种实现方式.pdf

    本文主要探讨了如何使用CSS实现垂直居中,这是页面布局中常见的需求。垂直居中分为两种主要情况:内外元素高度全定和外层元素高度定,内层高度不定。 1. **内外元素高度全部确定的情况** - **line-height 与 ...

    css实现文字垂直居中的代码第1/2页

    ### CSS 实现文字垂直居中的方法 #### 一、引言 在网页设计与开发过程中,文字垂直居中是一项常见的需求。尽管看似简单,但在不同的布局和浏览器环境下,要达到一致的效果并不容易。本文将详细介绍如何使用 CSS ...

    CSS实现垂直居中的几种实现方式.docx

    根据标题"CSS实现垂直居中的几种实现方式"以及描述中提到的内外元素高度情况,我们可以深入探讨几种常用的垂直居中方法。 首先,当内外元素高度全部确定时,有以下几种常见策略: 1. **使用line-height**:这是一...

    垂直居中ie8+

    使用CSS3的线性渐变作为背景,可以实现单行文本的垂直居中。这种方法适用于知道元素高度的情况: ```css .child { background: linear-gradient(to bottom, rgba(0, 0, 0, 0) 50%, #fff 50%) 0 0 / 100% 1px no...

    div垂直居中的N种方法 单行/多行文字(未知高度/固定高度)

    1. **单行垂直居中** 对于只有一行文字的`div`,我们可以利用`line-height`属性来实现垂直居中。设置`div`的实际高度`height`与`line-height`相等,就能使文本在垂直方向上居中。示例如下: ```css div { ...

Global site tag (gtag.js) - Google Analytics