CSS 控制元素 上下左右居中

此文章为转载,目的是自己好参考

左右居中: 

  #method.

    -->. margin:0 auto;

 

效果图:

上下居中: 

  在介绍方法之前,我先声明一下, 这里的 上下居中法,都是已知 height的,总结分两种情况,1. 具体height 和 2.百分比height,但无论哪种形式的height,应该都可以归为 已知height。 下面说一说,百分比height 的两种需要注意的情景:

  情景一:position:absoute; top:0; left:0; width:xx%;height:xx%;  (position:absolute;-->生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。)  所以,它的百分比height = 相对于 static 定位以外的第一个父元素的height;

  情景二:position:fixed; top:0;left:0;width:xx%;height:xx%;     (position:fixed;-->生成绝对定位的元素,相对于浏览器窗口进行定位。)              所以,它的 百分比height = 相对于浏览器窗口高度的height;

  通过以上的 声明分析,我总结的 上下居中,总体上分为 四种方法,针对 两种场景:

  种场景:

        1. 未脱离文档流 定位的元素(position:static || relative)

        2. 脱离文档流  定位的元素(position: absolute || fixed)

  ok,该了解的都了解了,下面进入正题,介绍方法。

    #Method1. 

    -->. 子容器绝对定位,top:0,bottom:0,margin:auto

    即,父元素 用相对定位, 子元素 用绝对定位(relative --> absolute),上代码:

    -->. 优点:设置起来比较简单,使用范围较广;

    -->. 缺点:需要子容器有一个固定的高,或百分比自适应于外部。它的高度不能是height:auto; 兼容性 IE8+;

    

 

效果图:

  #method2.

    -->. 子容器相对定位,top:50%,translateY(-50%)

    即,父元素 用相对定位,子元素 用相对定位(relative --> relative),上代码:

    -->. 优点:只设置子元素的属性即可,无需过多计算;

    -->. 缺点:应用到了CSS3的translateY,所以 兼容性 IE9+;

 

效果图:

  #method3.

  -->. 子元素1:float, 子元素2:clear:both;  floter元素的margin-bottom值 = content的height的值的负一半

  -->. 优点:position:relative;时,无需声明 父元素的定位

  -->. 缺点:需要一个同子元素 同级的 float元素辅助需要手动计算 float元素的 margin-bottom 的值;

 

  

 效果图:

  #method4.

    -->. 子元素绝对定位,top:50%; margin-top:-(自身高度的一半);

    -->. 优点:只操作子元素的css属性,较为简单

    -->. 缺点:子元素 和 父元素都需要设置position;需要手动计算 margin-top 的值;

以上文章参考地点:http://www.cnblogs.com/cnblogs-jcy/p/6074899.html

时间: 2024-12-15 10:14:24

CSS 控制元素 上下左右居中的相关文章

div元素上下左右居中

1 <!DOCTYPE html> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 5 <title>div元素上下左右居中</title> 6 <style type=

CSS控制元素背景透明度总结

方法一:CSS3的background rgba filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#7F000000',endColorstr='#7F000000');background:rgba(0,0,0,0.5); 常用的方法是rgba来实现背景透明度 兼容ie6 ie7 ie8的做法是用ie的滤镜实现 有个小问题就是通过这种方法实现背景透明度的话在ie系列下如果元素需要绑定

css绝对定位元素实现居中的几个方法

一:CSS绝对定位元素left设为50%实现水平居中 绝对定位的元素left设为50%时,是已左上角为原点的,所以只要再使用margin属性添加负值补偿回来即可.示例:[css]代码如下: #board{ width:60%; padding:3%; background:#09F; position:absolute; top:0px; left:50%; margin-left:-30%; } 这样就能使得一个蓝色区域水平居中   二.绝对定位元素的完全居中实现 如果要问如何CSS实现绝对定

css控制元素垂直居中的几种方法

一.单行文本垂直居中 HTML: <div id="parent"> <div id="child">Content here</div> </div> CSS: #child { line-height: 200px; } 二.垂直居中一张图片 HTML <div id="parent"> <img src="image.png" alt="&quo

css控制图片上下居中,超出部分隐藏

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> img{ width: 100%; display: block; } div{ width: 600px; height: 600px; border: 1px solid red; text-al

css控制元素显示和隐藏

有dom结构 visibility: visible; //显示 visibility: hidden; //隐藏 没dom结构 display: block; //显示 display: none; //隐藏 原文地址:https://www.cnblogs.com/Hajar/p/11088496.html

css:子元素div 上下左右居中方法总结

最近在面试,不停地收到了知识冲击,尤其是对于一些基础的css.html.js问题居多,所以自我也在做反思,今天就css问题,如何让一个子元素div块元素上下左右居中 (以下总结方法,都已得到验证). 情景一:一个浏览器页面中,只有一个div模块,让其上下左右居中 解决方案:  { position:fixed;  left:0; right:0; top:0; bottom:0; margin:auto; } 备注:此处小编使用position:fixed为最佳方案,因为position:fix

CSS控制超链接

一.伪类 CSS控制元素的某种状态---偽类(用于向某些选择器添加特殊的效果)    偽类的语法:元素标签 偽类名称{属性:属性值;} 二.超链接        a:link:未访问的链接        a:hover:鼠标移动到链接上        a:active:鼠标按下链接        a:visited:已访问的链接如果在点击过后再返回到该页面还有一些效果的话 就按照该顺序给链接添加状态 L V H A <style type="text/css"> a:lin

CSS实现元素居中原理解析

在 CSS 中要设置元素水平垂直居中是一个非常常见的需求了.但就是这样一个从理论上来看似乎实现起来极其简单的,在实践中,它往往难住了很多人. 让元素水平居中相对比较简单:如果它是一个行内元素,就对它的父元素应用 text-align: center:如果它是一个块级元素,就对它自身应用 margin: auto. 然而如果要对一个元素进行垂直居中,那就没有那么容易了,有时候光是想想就令人头皮发麻了. 本文分别从行内元素和块级元素进行说明,将目前比较流行的实现方式进行汇集并解析实现原理,方便大家查