`
axl234
  • 浏览: 263463 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

绝对定位元素的居中实现

    博客分类:
  • css
 
阅读更多

 

如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了。

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

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

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

CSS3的兴起,使得有了更好的解决方法,就是使用transform代替margin. transformtranslate偏移的百分比值是相对于自身大小的,于是,我们可以:

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

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

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

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

三、margin:auto实现绝对定位元素的居中

首先,我们来看下CSS代码:

.element {
    width: 600px; height: 400px;
    position: aboslute; left: 0; top: 0; right: 0; bottom: 0;
    margin: auto;    /* 有了这个就自动居中了 */
}

代码两个关键点:

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

于是,就居中了。上面代码的width: 600px height: 400px仅是示意,你修改为其他尺寸,或者不设置尺寸(需要是图片这种自身包含尺寸的元素),都是居中显示的。很有意思的~~

 

对了,该方法IE8+以及其他浏览器都是OK的。

分享到:
评论

相关推荐

    CSS实现定位元素居中的方法

    绝对定位元素的居中实现 如果要问如何CSS实现绝对定位元素的居中效果,很多人心里已经有答案了。 兼容性不错的主流用法是: CSS Code复制内容到剪贴板 .element { width: 600px; height: 400px; position:...

    css3块元素居中

    3. 利用绝对定位实现居中。父元素设置`position: relative;`并定位50%(`top: 50%; left: 50%;`),子元素也需要设置`position: relative;`并负偏移自身高度和宽度的一半(`transform: translate(-50%, -50%);`)。...

    CSS绝对定位元素left设为50%实现水平居中

    绝对定位的元素left设为50%时,是已左上角为原点的,所以只要再使用margin属性添加负值补偿回来即可。示例: [css] 复制代码代码如下: #board{ width:60%; padding:3%; background:#09F; position:absolute; top:0...

    css 未知高度元素绝对居中

    在CSS布局设计中,使一个未知高度的元素居中对齐是一个常见的挑战。未知高度意味着元素的高度会在不同的内容或屏幕尺寸下变化,因此需要一种灵活且适应性强的解决方案。本篇将详细介绍如何实现这种居中效果,以及...

    DIV绝对居中例子

    在网页设计中,让元素居中是一个常见的需求,特别是对于`div`这样的块级元素。在本示例中,我们探讨的是如何实现`div`的绝对居中,无论是水平还是垂直方向,即使`div`的高度是不确定的。下面将详细解释这个`DIV绝对...

    绝对定位元素的水平垂直居中的方法(3种任选)

    1.css实现居中 缺点:需要提前知道元素的宽度和高度。 <!doctype html> <html lang=en> <head> <meta charset=UTF-8> <title>Document</title> <style> .box{ width: ...

    css控制div中元素居中的示例.pdf

    另一种实现元素居中的方法是使用 text-align 属性,设为首页 将该属性值设置为 center 并应用到 body 元素上即可。这种做法是彻头彻尾的 hack,但它却能兼容大多数浏览器,所以在某些情况下也自然必不可少。 之所以...

    绝对居中div

    `.centered-div`通过绝对定位和transform属性实现了居中。 需要注意的是,这种方法可能不适用于所有情况,特别是当需要在不同屏幕尺寸和设备上保持居中时。对于响应式设计,可能需要使用媒体查询(media queries)...

    多行文字实现垂直居中

    对于不支持新布局模型的老浏览器,可以使用绝对定位来实现: ```css .container { position: relative; } .container p { position: absolute; top: 50%; transform: translateY(-50%); width: 100%; /* 保持...

    图层中图片垂直水平居中

    对于固定尺寸的图片,可以使用绝对定位来实现居中。设置容器为相对定位,图片为绝对定位,并通过top、bottom、left、right的50%值,再配合负的margin来达到居中效果。 ```css .container { position: relative; } ...

    PeterChen1997#Frontend-Repo#2-div水平垂直居中方法1

    div水平垂直居中方法绝对定位(margin:auto实现居中)/* margin设置为auto实现绝对定位元素的垂直居中 */绝对定位(margin 负值实现

    CSS实现元素居中原理解析

    在 CSS 中要设置元素水平垂直居中是一个非常常见的需求了。但就是这样一个从理论上来看似乎实现起来极其简单的,在实践中,它往往难住了很多人。 让元素水平居中相对比较简单:如果它是一个行内元素,就对它的父元素...

    图片的水平垂直居中

    3. **绝对定位** - 对于旧版本浏览器,可以使用绝对定位配合`transform` 属性来实现垂直居中。这需要设定一个具有相对定位的父容器: ```css .container { position: relative; height: 100%; /* 或其他需要的...

    CSS实现网页分栏布局的方法:绝对定位和浮动.pdf

    在创建分栏布局时,绝对定位可用于创建固定宽度的列,并通过计算相对定位的容器来实现居中对齐。然而,这种方法的局限性在于,如果内容高度不确定,可能需要使用JavaScript来动态调整页脚位置,否则页脚可能会出现在...

    CSS实现网页分栏布局的方法:绝对定位和浮动.docx

    在CSS中,实现多栏布局通常有多种方法,而绝对定位和浮动是两种常见的技术。这两种方法各有特点,适用于不同的场景,且可以相互结合以达到更复杂的布局效果。 **1. 绝对定位** 绝对定位允许开发者精确地控制元素的...

    DIV+CSS 图片垂直居中效果

    2. **传统方法:绝对定位** 在CSS中,通过设置`position`属性为`absolute`,然后调整`top`和`bottom`或`left`和`right`属性,可以实现图片的垂直居中。例如: ```css .container { position: relative; } ....

    div中的相对定位与绝对定位.docx

    `z-index`用于决定多个绝对定位元素的堆叠顺序。具有更高`z-index`值的元素会出现在堆叠顺序的上方,即覆盖`z-index`值较低的元素。需要注意的是,只有设置了`position`属性的元素(非`static`)才能设置`z-index`。...

Global site tag (gtag.js) - Google Analytics