CSS Transform让百分比宽高布局元素水平垂直居中

很早以前了解过当元素是固定宽度和高度的时候,水平垂直高居中的方法可以设置margin的负值来使其居中,这个负值是元素的宽和高的一半,比如宽高是100px,那么就用margin-left:-50px;margin-top:-50px这样的写法。但如果这个元素的宽高是用百分比表示呢?

如果使用百分比来设置宽高的话,以前哪个负值方法已经用不上了,这个我们发现在一个小的窍门,就是使用CSS3中的transform的translate转换属性。下面来看代码实例:

HTML代码

<div class="center">您可以尝试改变浏览器大小,这个元素依然是水平垂直居中的哦!</div>

CSS代码

.center{
position: absolute;
top: 50%;
left: 50%;
width:50%;
height:30%;
padding:20px;
text-align:center;
background:#393;
color:#fff;
webkit-transform: translate(-50%, -50%);
-moz-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}
时间: 2024-08-06 15:55:12

CSS Transform让百分比宽高布局元素水平垂直居中的相关文章

未知宽高的元素水平垂直居中方法总结

1.父元素设置display:table;子元素设置display:table-cell; 缺点:IE7不支持,而且子元素会填满父元素,不建议使用 2.使用css3 transform:translate(-50%; -50%) 缺点:兼容性不好,IE9+ 3.使用flex布局 缺点:兼容性不好,IE9+ 4.利用伪类元素 <!DOCTYPE html> <html lang="en"> <head> <meta charset="U

实现没有宽高的盒子水平垂直居中

实现一个不设置宽高的盒子水平垂直居中的效果的方法 方法一.CSS+定位 让其父元素相对定位,内部元素绝对定位,这里的父元素为body. 原理:让未定义宽高的图片上下左右距离都为0.然后给一个margin自适应.可以想象成一个盒子,给了四个方向的相同的力,这样就会形成一种相对的均衡力量让其停留在中间位置了. <style> img{ position:absolute; top:0; bottom:0; left:0; right:0; margin: auto ; } </style&g

未知宽高的图片水平垂直居中的几种方法

最近在项目中遇到不固定宽高的图片要水平垂直居中的情况,发现垂直居中存在兼容性问题,下面收集了一些方法,可根据需要权衡使用. 1. 背景法(兼容性好,简单,但不利于动态导入的图片) html: <div class="wrap"></div> css: .wrap{ width:300px; height:200px; background: url(../img/test.jpg) center center no-repeat; } 2. 图片外面用个p标签,

未知宽高的div水平垂直居中

未知宽度的div使内容水平垂直居中方法一:使用display:flex:justify-content:center;align-items: center;属性代码如下:<style> #box{ display: flex; justify-content:center; align-items: center; height: 500px; }</style><div id="box"> 水平垂直居中</div>方法二:使用tran

居中百分比宽高的元素(司徒正美的例子)

以前工作碰到这个问题,但不知道具体怎么解决,看了正美的博客测试下,果然有效, <!DOCTYPE html> <html> <head> <title>百分比居中</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <style> .center { position: absolut

css如何实现未知宽高块元素垂直水平居中效果

<!doctype html><html><head><meta charset="utf-8"><title>块元素垂直水平居中</title><style> ul,li{list-style:none;padding:0;margin:0;} .content{border-top:1px solid #8e8e8e;border-bottom:1px solid #8e8e8e;width:100

CSS未知宽高元素水平垂直居中

方法一 思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(parent)可以动态的改变高度(table元素的特性)缺点:IE8以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>未知宽高元素水平垂直居中&l

未知宽高元素水平垂直居中

一.transform <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">

js实现未知宽高的元素在指定元素中垂直水平居中

js实现未知宽高的元素在指定元素中垂直水平居中:本章节介绍一下如何实现未知宽高的元素在指定元素下实现垂直水平居中效果,下面就以span元素为例子,介绍一下如何实现span元素在div中实现水平垂直居中效果,代码如下: <!DOCTYPE html><html><head><meta charset=" utf-8"><meta name="author" content="http://www.soft