绝对定位元素,浮动元素居中

绝对定位元素的居中实现  (转自:http://www.cnblogs.com/zyy711865/p/3479064.html

方法一:兼容性不错的主流用法是:

.element {
    width: 600px; height: 400px;
    position: absolute; left: 50%; top: 50%;
    margin-top: -200px;    /* 高度的一半 */
    margin-left: -300px;    /* 宽度的一半 */
}

但,这种方法有一个很明显的不足,就是需要提前知道元素的尺寸。否则margin负值的调整无法精确。此时,往往要借助JS获得。

方法二:CSS3的兴起,使用transform代替margintransformtranslate偏移的百分比值是相对于自身大小的,于是,我们可以:

.element {
    width: 600px; height: 400px;
    position: absolute; left: 50%; top: 50%;
    transform: translate(-50%, -50%);    /* 50%为自身尺寸的一半 */
}

于是乎,无论绝对定位元素的尺寸是多少,其都是水平垂直居中显示的。

然,问题很明显,兼容性不好。IE10+以及其他现代浏览器才支持。中国盛行的IE8浏览器被忽略是有些不适宜的(手机web开发可忽略)。

实际上,绝对定位元素的居中实现还有另外一种方法,可以说是权衡了上面的尺寸自适应以及兼容性的一个方案,其实现的核心是margin:auto.

方法三:margin:auto

.element {
    width: 600px; height: 400px;
    position: absolute; left: 0; top: 0; right: 0; bottom: 0;
    margin: auto;
}

代码两个关键点:

  1. 上下左右均0位置定位;
  2. margin: auto

width: 600px height: 400px仅是示意,你修改为其他尺寸,或者不设置尺寸(需要是图片这种自身包含尺寸的元素),都是居中显示的

时间: 2024-11-04 22:42:16

绝对定位元素,浮动元素居中的相关文章

Web前端面试指导(十四):如何居中一个元素(正常、绝对定位、浮动元素)?

题目点评 这道题目的提问比较多,连续问了三个问题,正常元素.绝对定位元素.互动元素如何居中,而且居中没有说清楚是垂直居中还是水平居中,要回答清楚这个问题,必须得有深厚的功底,而且要分类的来回答,条理要清楚.可以先把水平居中各种情况说清楚,然后在把垂直居中说清楚. (一)元素水平居中的方式 1)行级元素水平居中对齐(父元素设置 text-align:center) [html] view plain copy <div style="width: 200px; height: 100px;b

总结一下各种居中(内联元素、块级元素、浮动元素、绝对定位元素)*(水平、垂直)

在平时写网页样式的时候,元素居中应该是最常见不过的了,在这里我们把常见居中的情况简单总结一下.本文讨论以下几种情况:内联元素.块级元素.浮动元素.绝对定位元素.居中的情况分两种情况:水平居中和垂直居中.刚接触到居中,我想到的是两个方向,一是使元素内部的所有元素相对于此元素居中,另一个是元素在其他元素中居中.以下的居中我们讨论的都是元素在其他元素中居中. (一)内联元素 水平居中:只需在其父元素的样式中加上text-align: center;即可. 垂直居中: 1. line-height 2.

如何垂直居中元素(浮动元素&amp;居中一个&lt;img&gt;)?

1.如何居中一个浮动元素? 方法一:已知元素的高度 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> /* 方法一:已知元素的高宽*/ #div1{ background-color:#6699FF; width:200px; height:20

浮动元素居中的实现方法~~很不错

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>float center</title> <style> .demo { /*最外层容器居中 非必要*/ border: 1px solid #CCC; margin: 5px auto; overflow: hidden; width: 143

2015-09-22 第四节课 CSS块级元素 行内元素 浮动 盒子模型 绝对定位、相当定位和固定定位

常见的块级元素和行内元素 一.块级元素 1.块级元素的特点: (1).默认显示在父标签的左上角. (2).块级元素默认占满一行(沾满整个文档流). 2.常见的块级元素: <p>.<h1-h6>.<ulli>.<olli>.<div>.<tabl>.<hr> 二.行内元素(内联元素) 1.行内元素的特点: (1).大小受到文字区域的影响,不受到width和height的影响. (2).行内元素不会单独占满一行. 2.常见的行

浮动元素居中&amp;&amp;浮动元素内容相对于浮动元素父元素居中

一:浮动元素内容相对于浮动元素父元素居中 我们知道元素内容居中可以用text-align:center;但是如果元素是浮动的呢?就像下边这样,怎样使得所有链接水平居中? <!DOCTYPE HTML> <html> <head> <meta charset="UTF-8"> <title>浮动元素内容相对于浮动元素父元素居中</title> <style type="text/css"&g

css浮动元素居中,右边宽固定而左边宽自适应

1.浮动元素居中 固定宽高的情况下: width:200px;height: 200px;position: absolute;left:50%;top:50%;margin-left: -100px;margin-top: -100px; 未知宽高的情况下: width:200px;height: 200px;position: absolute;left:50%;top:50%;transform:translate(-50%,-50%); 2.右边宽固定,左边宽自适应html: <div

如何居中div?如何居中一个浮动元素?

如何居中div? 给div设置一个宽度,然后添加margin:0 auto属性 div{ width:200px; margin:0 auto; } 如何居中一个浮动元素? <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:html5="http://www.w3.org/html5/"> <head> <meta charset="u

如何居中一个浮动元素?

CSS代码 1 width:500px; height:300px; float:left; margin-left:50%; position:relative; left:-250px; background-color:#CCC; 代码解读 首先设置块元素的宽度和高度,这里宽度是必须的,高度可以不设,我设置了块的背景色,以给大家看效果.实现居中关键在于 margin-left:50%; position:relative; left:-250px; 设置margin-left:50%;后浮

清理浮动的三种常用方法以及如何居中一个浮动元素

千里之行始于足下 今天看到一个题目说如何居中一个float:left的元素的题目,我蛮以为用margin:0 auto 就可以解决了.然而,试验之后,发现事实并非如此,才发现自己对于这方面的知识竟是相当忙乱!于是撇下手头事务,翻书查资料温习了这部分‘简单’的内容.并总结如下. 一.清理浮动的三种方法. 当给元素设置了float属性之后,我们知道,元素便会脱离文档流的束缚,像一片水中浮动的树叶随波逐流.但是,在浮动的情况下,可能会导致网页内容出现一些我们并不想让其发生的干扰,例如其父元素的包裹作用