CSS各种居中方法(转载)

CSS各种居中方法(转载)

 

1.水平居中的text-align:center margin:0 auto

注1:这两种方法都是用来水平居中的,前者是针对父元素进行设置而后者则是对子元素

注2text-align:center起作用的条件是子元素必须没有被float影响,否则一切都是无用功。

注3margin:0 auto是针对于定宽元素非浮动的。

注4:设置 text-align: center  

ie6-7文本居中,嵌套的块元素也会居中

ff/opera /safari /ie8文本会居中,嵌套块不会居中

解决:

<div style=" text-align: center ">   //ie6-7使用,使嵌套的块元素#inner居中

  <div id="inner" style=" margin-left:auto;margin-right:auto ">

  ff/opera /safari /ie8使用,使#inner居中

  </div>

</div>

 

2.子元素浮动的水平居中方法

方法1

在上文注2中,我们知道对于有浮动子元素的父元素居中是没有效果的。

但我们可以使用变通的方法达到这一效果,就是在父div上再套一个div

<div id="outerdiv" style="text-align:center;">
  <div id="containerdiv" style="overflow:hidden; display:inline-block;">
    <div id="float1" style="float:left;"> </div>
    <div id="float2" style="float:left;"> </div>
  </div>
</div>

1:最外层新加的父元素设置text-aligncenter

2:元父元素加上displayinline-block

缺点:这种方法用到了displayinline-block;使得里面浮动元素尺寸必须用px,不能使用百分比。

方法2

父元素与子元素同时左浮动,同时相对定位,父元素left50%;子元素left-50%

例如:

1HTML 部分:

<div class="box">
    <p>我是浮动的</p>
    <p>我也是居中的</p>
</div>

2CSS 部分:

.box{
    float:left;
    position:relative;
    left:50%;
}
p{
    float:left;
    position:relative;
    left:-50%;
}

3.垂直居中的line-height

注:作用在子元素上,当他的值等于父元素的height值时,内部的文字就会自动的垂直居中了。此处好像仅仅只能是文字而已,遗憾。

line-height 与 font-size 的计算值之差(在 CSS 中成为“行间距”)分为两半,分别加到一个文本行内容的顶部和底部。

 

4.垂直居中的vertical-align

写在子行内元素上,对子行内元素对齐,一般用于子行内元素多行时。

display:inline-block;

vertical-align:middle;


5.万能的position大法

具体的做法很简单:

给父元素写上positon:relative,这么做是为了给子元素打上position:absolute的时候不会被定位到外太空去。

②给子元素写上heightwidth,这个似乎是必须的,某些浏览器在解析的时候如果没有这2个值的话会出现意想不到的错位。

③整个方法的核心,给子元素再加上:

top:50%;

left:50%

margin-top:一半的height值的的负数;

margin- left:一半的weight值的负数。

整理一下之后,可能你会给你的子元素写上这样的css(当然,父元素也要先写上widthheight

{

width: 100px;

height: 80px;

position: absolute;

top: 50%;

left: 50%;

margin-left: -50px;

margin-top: -40px

}

解释:

1.topleft百分比是相对父元素高和宽的偏移

2.margin-leftmargin-top可以去负值

3.过程如下:

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值