关于用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实现文本和图片垂直水平居中的更多相关文章

  1. css图片垂直水平居中及放大(实现水平垂直居中的效果有哪些方法?)

    实现水平垂直居中方法有很多种: 一.万能法: 1.已知高度宽度元素的水平垂直居中,利用绝对定位和负边距实现. <style type="text/css"> .wrap ...

  2. 【css】图片垂直水平居中

    一.已知宽高的图片实现垂直水平居中 1.借助margin-top负边距实现垂直居中 <!DOCTYPE html> <html> <head> <meta c ...

  3. CSS常见的5种垂直水平居中(面试够用)

    方法一 (flex) <div id='box'> <div class='child'></div> </div> #box{ width:200px ...

  4. css怎么让图片垂直左右居中?(外层div是浮动且按照百分比排列)

    一.原始的居中方法是把div换成table <div style="width: 500px; height: 200px; border: solid 1px red; text-a ...

  5. CSS实现文字和图片的水平垂直居中

    关于文字和图片的水平垂直居中,在前端界绝对算是一个老生常谈的问题了,尤其是垂直居中,什么千奇百怪的解法都能想的出来.下面我就总结一些比较常用的方法: 一.文本的水平垂直居中: 1.水平居中: 是不是很 ...

  6. div+css实现未知宽高元素垂直水平居中

    div+css实现未知宽高元素垂直水平居中.很多同学在面试的时候都会遇到这样的问题:怎么用div+css的方法实现一个未知宽高的弹出框(或者图片)垂直水平居中??如果用JS的话就好办了,但是JS的使用 ...

  7. css实现div不定宽高垂直水平居中解决方案

    在项目中我们经常能碰见然图片垂直水平居中,不定宽高的div垂直水平居中,等等~~ 现在我将介绍我所知道的几种用css来解决的几种方案. 1.父元素text-align:center;display:t ...

  8. 【CSS基础】实现 div 里的内容垂直水平居中

    方案一: 所有内容垂直水平居中 兼容性:IE8+. 条件:内容宽度和高度可以未知,可以是多行文字.图片.div. 描述:使用table-cell + vertical-align , html代码见文 ...

  9. css文本垂直水平居中

    一.单行文本居中 .content{ height:100px; line-height:100px; text-align:center; border:1px solid red; } 效果图 二 ...

随机推荐

  1. PAT 1057

    Stack is one of the most fundamental data structures, which is based on the principle of Last In Fir ...

  2. 记一次 Newtonsoft.Json 巧妙的用法(C#)

    数据添加的功能 有一个表格提交数据如下: 是否选择和文本值.分开保存到数据库太麻烦.取得时候也麻烦 想到了存成json数据.一个字段就可以了. html代码: <table class=&quo ...

  3. C#图解教程-方法参数笔记(上)

    一晃大学四年要过去了,期间乱点了很多技能点, 导致每一项技能都只是处于入门阶段.为了将C#作为我的主要技能,准备恶补相关姿势(知识),通过各种技术论坛的推荐,找到了<C#图解教程>这本书. ...

  4. 【stm32中断优先级--珍藏版】

    看了这么久,一直不理解中断优先级,还有中断嵌套.stm32提供了多种嵌套方式,搞的我真是头昏脑涨. 今天终于看到了一个通俗解释中断优先级的博客.算是理解了一点吧. 原文地址:http://blog.s ...

  5. Lucene工作原理

    Lucene是一个高性能的java全文检索工具包,它使用的是倒排文件索引结构.该结构及相应的生成算法如下: 0)设有两篇文章1和2 文章1的内容为:Tom lives in Guangzhou,I l ...

  6. office web apps 整合Java web项目

    之前两篇文章将服务器安装好了,项目主要的就是这么讲其整合到我们的项目中,网上大部分都是asp.net的,很少有介绍Java如何整合的,经过百度,终于将其整合到了我的项目中. 首先建个servlet拦截 ...

  7. 蓝桥杯-四平方和-java

    /* (程序头部注释开始) * 程序的版权和版本声明部分 * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 * All rights reserved. * 文件名称: ...

  8. 从点击到呈现 — 详解一次HTTP请求

    一般来说,很多的参考资料上面都会说,http 是一个基于请求/响应的工作模式,然后画出一张浏览器和服务器的 b/s 结构图,再画上两个箭头,表示请求和响应,应该说这么解释是易懂的,一般也是够清楚的,但 ...

  9. Spring框架入门

    技术分析之什么是Spring框架        1. Spring框架的概述        * Spring是一个开源框架        * Spring是于2003 年兴起的一个轻量级的Java开发 ...

  10. Docker - 终端交互

    进入容器交互终端 使用docker attach命令进入容器交互终端. 注意:如果多个窗口同时attach到同一个容器,那么所有窗口都会同步显示.如果某个窗口因命令阻塞时,那么其他窗口将无法执行操作. ...