关于用css实现文本和图片垂直水平居中
关于用css实现文本和图片垂直水平居中
一直相信好记性不如烂笔头,最近遇到很多用到垂直居中的,整理一下以便日后查阅。
一、文本垂直水平居中
1、水平居中:
文字水平居中没什么好说的,用text-align: center;即可很容易的实现。
2、垂直居中:
1)简单的单行文本
利用line-height==height,使得单行文本垂直居中。
<div>
垂直水平居中
</div>
div{
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
background:#1AFF00;
}
简单点来说,用p标签就可以,就像这样
<p>垂直水平居中</p>
p{
width: 200px;
height: 200px;
text-align: center;
line-height: 200px;
background:#00ABFF;
}
效果如下:

2)多行文本
利用表格元素的特性,块级父元素display: table;内联元素display: table-cell;vertical-align: middle;
(内联)
<div
<span>国际《儿童权利公约》界定的儿童系指18岁以下的任何人</span>
</div>
div{
width: 200px;
height: 200px;
display: table;
background:#1AFF00;
}
span{
display: table-cell;
vertical-align: middle;
}
(块级)
<div>
<p>国际《儿童权利公约》界定的儿童系指18岁以下的任何人</p>
</div>
定位+transform: translateY(-50%);
div{
position: relative;
width: 200px;
height: 200px;
background: #00ABFF;
}
p{
position: absolute;
top: 50%;
left: 0;
width: 200px;
height: 64px;
transform: translateY(-50%);
}
定位+margin负值
div{
position: relative;
width: 200px;
height: 200px;
background:#1AFF00;
}
p{
position: absolute;
top: 50%;
left: 0;
width: 200px;
height: 64px;
margin-top: -32px;
}
定位+margin: auto;
div{
position: relative;
width: 200px;
height: 200px;
background:#00ABFF;
}
p{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
width: 200px;
height: 64px;
}
两者都是定宽定高,父元素用padding值,此值为父元素高度减去子元素高度的一半
div{
width: 200px;
height: 64px;
padding: 68px 0;
background:#1AFF00;
}
p{
width: 200px;
height: 64px;
}
两者都是定宽定高,父元素用overflow: hidden;(css hack)子元素用margin值,此值为父元素高度减去子元素高度的一半
div{
width: 200px;
height: 200px;
overflow: hidden;
background:#00ABFF;
}
p{
width: 200px;
height: 64px;
margin:68px auto;
}
效果如下:

二、图片垂直水平居中
1、水平居中
1)img在css初始设置中是inline-block,行内块元素,此时若是要水平居中用text-align:center;
2)给img元素设置display:block;转换为块级元素,要想水平居中用margin:0 auto;
2、垂直居中
1.jpg
用这张图片做示范
<div>
<img alt="" src="1.jpg" />
</div>
line-height==height vertical-align: middle;
div{
width: 198px;
height: 198px;
text-align: center;
line-height: 198px;
border: 1px solid #8900FF;
}
img{
vertical-align: middle;
}
display: table-cell;vertical-align: middle;
div{
display: table-cell;
vertical-align: middle;
width: 198px;
height: 198px;
border: 1px solid #8900FF;
}
img{
display: block;
margin: 0 auto;
}
display: table-cell;vertical-align: middle; text-align: center;
div{
display: table-cell;
vertical-align: middle;
text-align: center;
width: 198px;
height: 198px;
border: 1px solid #8900FF;
}
定位+display: block;transform: translate(-50%,-50%);
div{
position: relative;
width: 198px;
height: 198px;
border: 1px solid #8900FF;
}
img{
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%,-50%);
display: block;
}
定位+margin负值
div{
position: relative;
width: 198px;
height: 198px;
border: 1px solid #8900FF;
}
img{
position: absolute;
top: 50%;
left: 50%;
margin: -75px 0 0 -75px;
}
定位+margin: auto;
div{
position: relative;
width: 198px;
height: 198px;
border: 1px solid #8900FF;
}
img{
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
margin: auto;
display: block;
}
overflow: hidden;margin值
div{
width: 198px;
height: 198px;
overflow: hidden;
border: 1px solid #8900FF;
}
img{ margin: 25px;
9 }
padding值
div{
padding: 25px;
width: 148px;
height: 148px; border: 1px solid #8900FF;
}
用table的属性+vertical-align: middle;实现
<div>
<span><img alt="" src="1.jpg" /></span>
</div>
div{
display: table;
width: 198px;
height: 198px;
text-align: center;
border: 1px solid #8900FF;
}
span{
display:table-cell;
vertical-align: middle;
}
用background实现
<div></div>
div{
width: 198px;
height: 198px;
border: 1px dashed #8900FF;
background: url(1.jpg) no-repeat center center;
}
效果如下:

此篇完!!!
关于用css实现文本和图片垂直水平居中的更多相关文章
- css图片垂直水平居中及放大(实现水平垂直居中的效果有哪些方法?)
实现水平垂直居中方法有很多种: 一.万能法: 1.已知高度宽度元素的水平垂直居中,利用绝对定位和负边距实现. <style type="text/css"> .wrap ...
- 【css】图片垂直水平居中
一.已知宽高的图片实现垂直水平居中 1.借助margin-top负边距实现垂直居中 <!DOCTYPE html> <html> <head> <meta c ...
- CSS常见的5种垂直水平居中(面试够用)
方法一 (flex) <div id='box'> <div class='child'></div> </div> #box{ width:200px ...
- css怎么让图片垂直左右居中?(外层div是浮动且按照百分比排列)
一.原始的居中方法是把div换成table <div style="width: 500px; height: 200px; border: solid 1px red; text-a ...
- CSS实现文字和图片的水平垂直居中
关于文字和图片的水平垂直居中,在前端界绝对算是一个老生常谈的问题了,尤其是垂直居中,什么千奇百怪的解法都能想的出来.下面我就总结一些比较常用的方法: 一.文本的水平垂直居中: 1.水平居中: 是不是很 ...
- div+css实现未知宽高元素垂直水平居中
div+css实现未知宽高元素垂直水平居中.很多同学在面试的时候都会遇到这样的问题:怎么用div+css的方法实现一个未知宽高的弹出框(或者图片)垂直水平居中??如果用JS的话就好办了,但是JS的使用 ...
- css实现div不定宽高垂直水平居中解决方案
在项目中我们经常能碰见然图片垂直水平居中,不定宽高的div垂直水平居中,等等~~ 现在我将介绍我所知道的几种用css来解决的几种方案. 1.父元素text-align:center;display:t ...
- 【CSS基础】实现 div 里的内容垂直水平居中
方案一: 所有内容垂直水平居中 兼容性:IE8+. 条件:内容宽度和高度可以未知,可以是多行文字.图片.div. 描述:使用table-cell + vertical-align , html代码见文 ...
- css文本垂直水平居中
一.单行文本居中 .content{ height:100px; line-height:100px; text-align:center; border:1px solid red; } 效果图 二 ...
随机推荐
- C/C++常考面试题(一)
这算是一个系列吧,记录一下在准备秋招期间,所准备的C++面试题,望秋招顺利.所有的面试题均来源于各大论坛,网络. C/C++常考面试题(一) 常用的C++数据结构有哪些? vector,序列式容器,相 ...
- STM32学习笔记(三)——外部中断的使用
开发板芯片:STM32F407ZGT6 硬件连接:PE3-KEY1 一.STM32F4的中断介绍 STM32F4的每个IO都可以作为外部中断输入,很强大的功能吧!以前学习的51只有两个外部中断. ST ...
- Filter execution threw an exception 错误
Filter execution threw an exception 错误,我在web.xml中配置了一个filter用spring来解决懒加载的问题,为什么就会包这个错 java.lang.NoS ...
- iOS UITableViewCell点击时子视图背景透明的解决方法
在做iOS项目的开发中,UITableView控件的应用十分广泛.在进行自定义UITableViewCell时,经常遇到这样的问题:在UITableViewCell上面添加了一个有背景颜色的子视图,当 ...
- UEditor编辑器和php简单的实现socket通信
一.UEditor编辑器 使用这个编辑器是需要先下载编辑器文件,记得下载的时候放入自己的网站中,既然是php中使用,自然我下载的就是php的UEditor编辑器了,然后是utf-8的 其实使用很简单, ...
- Elasticsearch实现类似 like '?%' 搜索
在做搜索的时候,下拉联想词的搜索肯定是最常见的一个场景,用户在输入的时候,要自动补全词干,说得简单点,就是以...开头搜索,如果是数据库,一句SQL就很容易实现,但在elasticsearch如何实现 ...
- 微信小程序后台音乐播放注意事项
wx.seekBackgroundAudio(OBJECT) 作用:控制音乐播放进度. 注意: 该事件 会触发 wx.onBackgroundAudioPlay(CALLBACK) 事件 ,也就是相当 ...
- C++随机数rand(), srand()
c++产生随机数会用到rand(), srand()函数,下面总结两个函数特性和使用. 1. rand() #include <iostream> #include <cstdlib ...
- 【lucene系列学习三】用socke把lucene做成一个web服务并实现多线程
首先,参考http://www.cnblogs.com/itlqs/p/6104672.html和http://www.cnblogs.com/itlqs/p/6079301.html 然后,Loca ...
- 浅谈JavaScript匿名函数与闭包
一. 匿名函数 //普通函数定义: //单独的匿名函数是无法运行的.就算运行了,也无法调用,因为没有名称. 如: function(){ alert('123'); ...