极乐门资源网 Design By www.ioogu.com
一.层的横向居中
复制代码代码如下:
<style>
#div1{width:600px;height:600px;}
#div2{width:400px;height:200px;}
</style>
<divid="div1">
<divid="div_2">div2</div>
</div>
要让div2在div1中横向居中,解决办法如下:
1.IE中,设置div1的样式:text-align:center;该方法在IE8以上版本和firefox中仅适用于行内元素居中(display:inline;和display:inline-block;及类似效果的元素以及文本,如inputimg等),子元素中的div、table等具有类似display:block效果元素将继承这个样式使文本居中,但是容器元素本身并不会居中。
2.IE7以上和firefox中,设置div2样式:margin:auto;仅对具有类似display:block效果的元素生效,对display为inline、inline-block的元素不生效,一般用于div、table等位置定位的容器元素,margin样式auto效果是横向居中,并置顶。
3.div2不能是position:absolute;绝对定位将使浏览器无法对元素自动排版,需依赖left、right属性,除非明确设定left:0,right:0;
综合以上:
复制代码代码如下:
#div1{
*text-align:center;/*ie*/
}
#div2{
margin:auto;
display:block;
*display:inline;/*ie*/
*zoom:1;/*ie*/
}
二.层的垂直居中
1.最常见的就是表格元素的vertical-align:middle;和css中的vertical-align:middle;
css中的vertical-align:middle;与表格的vertical-align不太一样,该样式作用于inline-block(或具有类似行内块状效果)的元素与其父元素内的文本或祖先元素内的文本(如果该祖先元素内的inline-block元素没有设置vertical-align样式)在垂直方向的对齐方式。
vertical-align无法影响后代元素的内容的对齐方式。
vertical-align对block元素不起作用,因为折行了在垂直方向没有对齐可言。
vertical-align作用于inline元素(如span)时,将决定该元素自身如何对齐于同一行内的inline-block元素,无法影响同辈元素或文本的对齐方式。
vertical-align取值为text-toptext-bottom时,对齐方式涉及文本的inline-box模型,
inline-box模型的高度由line-height(可以是继承来的)决定,分为content-area、top、bottom几个部分,其中的content-area是由文字大小决定,如果过line-height很大,font-size较小,加上背景颜色,我们就看到的背景色区域就是content-area,
text-top和text-bottom并不是可见的文字的顶端和底端(IE6-8在渲染text-top和text-bottom时,错误地将content-area的顶端和底端作为对齐的基准)。
具体的解释参考这里:
https://www.jb51.net/css/70053.html
一个例子,firefo、chrome与IE有差别:
复制代码代码如下:
<divstyle="line-height:200px;border:1pxsolid#34538b;">
<spanstyle="font-size:60px;border:1pxsolid#a0b3d6;vertical-align:text-top;">大大的文字</span>后面是静止的文字。
</div>
复制代码代码如下:
##==================test==================
document.body.innerHTML='<divid="conatiner"style="border:1pxsolidred;width:500px;height:300px;text-align:left;">aaaaaaaaa<divstyle="border:1pxsolidblue;display:inline-block;vertical-align:bottom;"><divstyle="border:1pxsolidgreen;width:300px;height:200px;text-align:center;display:inline-block;display:inline-block;display:inline-block;display:inline-block;*display:inline;*zoom:1;margin:auto;display:inline-block;">12313123123<inputtype="button"style="margin:auto;display:inline-block;height:40px;"value="click"><spanstyle="background:#aaeeff;height:40px;">helloworld</span></div>8888</div>bbbbbbbbbb</div>';
##====================================
2.如果不想用table元素实现垂直居中,在IE8以上版本和firefox中,display:table-cell;可以让div以表格单元格的方式显示,设置样式为
#div2{display:table-cell;vertical-align:middle;},但IE6中不支持display:table-cell;
3、如果是单行文本,为了兼容IE6,可以使设置行高与div的高度一致#div2{heigh:100px;line-height:100px;}
4、对于多行文本,如果包含文本的div高度不固定,为了兼容IE6可以使设置top和bottom的padding为相同的固定值,div随文本内容增加而自动改变高度#div2{height:auto;padding:10px0px;}
三.绝对居中
1、利用百分比偏移和margin负值,该方法对所有元素生效,该方法兼容所有浏览器
复制代码代码如下:
<style>
.div_1{
position:relative;
border:solid1pxred;
width:200px;
height:200px;
background-color:silver;
}
.content{
position:absolute;
top:50%;
left:50%;
width:50px;
height:50px;
margin-top:-25px;
margin-left:-25px;
/*或者margin:50%;top:-25px;left:-25px;*/
border:1pxsolidgreen;
}
</style>
<divclass="div_1">
<divclass="content">
Contenthere
</div>
</div>
2、利用绝对定位0偏移和margin:auto;,两侧偏移都被设置为0时,margin:auto将使内容居中,该方法对所有元素生效,该方法不兼容低于IE8的浏览器
复制代码代码如下:
<style>
.div_1{
position:relative;
border:solid1pxred;
width:200px;
height:200px;
background-color:silver;
}
.content{
position:absolute;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
height:50px;
width:70%;
border:1pxsolidgreen;
}
</style>
<divclass="div_1">
<divclass="content">
Contenthere
</div>
</div>
3、利用50%偏移和负值偏移,支持所有浏览器
复制代码代码如下:
<style>
.outer{
position:relative;
border:1pxsolidred;
width:400px;
height:300px;
}
.cellOuter{
position:absolute;
top:50%;
left:50%;
width:200px;
height:200px;
border:0pxnone;
background:transparent;
}
.cellInner{
position:absolute;
top:-50%;
left:-50%;
width:100%;
height:100%;
border:1pxsolidgray;
}
</style>
<divclass="outer">
<divclass="cellOuter">
<divclass="cellInner">hellocell</div>
</div>
</div>
不使用table和不计算尺寸而且兼容IE6的垂直居中方法我没发现,有知道的同学望赐教。
四.文本挣开div的问题
默认情况下如果没有设置块状元素的高宽,块级元素宽度取最大值,高度取最小值。
IE6下,div内的内容(文本和元素)可以撑开div的高宽(定义了高宽的值),IE7以上版本和firefox都不存在这个问题
IE7以上版本支持min-heightmax-height,min-widthmax-width,因此在IE7或firefox等较新的浏览器是用min-heightmin-width可以达到IE6下自动撑大元素的效果。
复制代码代码如下:
<style>
#div1{width:600px;height:600px;}
#div2{width:400px;height:200px;}
</style>
<divid="div1">
<divid="div_2">div2</div>
</div>
要让div2在div1中横向居中,解决办法如下:
1.IE中,设置div1的样式:text-align:center;该方法在IE8以上版本和firefox中仅适用于行内元素居中(display:inline;和display:inline-block;及类似效果的元素以及文本,如inputimg等),子元素中的div、table等具有类似display:block效果元素将继承这个样式使文本居中,但是容器元素本身并不会居中。
2.IE7以上和firefox中,设置div2样式:margin:auto;仅对具有类似display:block效果的元素生效,对display为inline、inline-block的元素不生效,一般用于div、table等位置定位的容器元素,margin样式auto效果是横向居中,并置顶。
3.div2不能是position:absolute;绝对定位将使浏览器无法对元素自动排版,需依赖left、right属性,除非明确设定left:0,right:0;
综合以上:
复制代码代码如下:
#div1{
*text-align:center;/*ie*/
}
#div2{
margin:auto;
display:block;
*display:inline;/*ie*/
*zoom:1;/*ie*/
}
二.层的垂直居中
1.最常见的就是表格元素的vertical-align:middle;和css中的vertical-align:middle;
css中的vertical-align:middle;与表格的vertical-align不太一样,该样式作用于inline-block(或具有类似行内块状效果)的元素与其父元素内的文本或祖先元素内的文本(如果该祖先元素内的inline-block元素没有设置vertical-align样式)在垂直方向的对齐方式。
vertical-align无法影响后代元素的内容的对齐方式。
vertical-align对block元素不起作用,因为折行了在垂直方向没有对齐可言。
vertical-align作用于inline元素(如span)时,将决定该元素自身如何对齐于同一行内的inline-block元素,无法影响同辈元素或文本的对齐方式。
vertical-align取值为text-toptext-bottom时,对齐方式涉及文本的inline-box模型,
inline-box模型的高度由line-height(可以是继承来的)决定,分为content-area、top、bottom几个部分,其中的content-area是由文字大小决定,如果过line-height很大,font-size较小,加上背景颜色,我们就看到的背景色区域就是content-area,
text-top和text-bottom并不是可见的文字的顶端和底端(IE6-8在渲染text-top和text-bottom时,错误地将content-area的顶端和底端作为对齐的基准)。
具体的解释参考这里:
https://www.jb51.net/css/70053.html
一个例子,firefo、chrome与IE有差别:
复制代码代码如下:
<divstyle="line-height:200px;border:1pxsolid#34538b;">
<spanstyle="font-size:60px;border:1pxsolid#a0b3d6;vertical-align:text-top;">大大的文字</span>后面是静止的文字。
</div>
复制代码代码如下:
##==================test==================
document.body.innerHTML='<divid="conatiner"style="border:1pxsolidred;width:500px;height:300px;text-align:left;">aaaaaaaaa<divstyle="border:1pxsolidblue;display:inline-block;vertical-align:bottom;"><divstyle="border:1pxsolidgreen;width:300px;height:200px;text-align:center;display:inline-block;display:inline-block;display:inline-block;display:inline-block;*display:inline;*zoom:1;margin:auto;display:inline-block;">12313123123<inputtype="button"style="margin:auto;display:inline-block;height:40px;"value="click"><spanstyle="background:#aaeeff;height:40px;">helloworld</span></div>8888</div>bbbbbbbbbb</div>';
##====================================
2.如果不想用table元素实现垂直居中,在IE8以上版本和firefox中,display:table-cell;可以让div以表格单元格的方式显示,设置样式为
#div2{display:table-cell;vertical-align:middle;},但IE6中不支持display:table-cell;
3、如果是单行文本,为了兼容IE6,可以使设置行高与div的高度一致#div2{heigh:100px;line-height:100px;}
4、对于多行文本,如果包含文本的div高度不固定,为了兼容IE6可以使设置top和bottom的padding为相同的固定值,div随文本内容增加而自动改变高度#div2{height:auto;padding:10px0px;}
三.绝对居中
1、利用百分比偏移和margin负值,该方法对所有元素生效,该方法兼容所有浏览器
复制代码代码如下:
<style>
.div_1{
position:relative;
border:solid1pxred;
width:200px;
height:200px;
background-color:silver;
}
.content{
position:absolute;
top:50%;
left:50%;
width:50px;
height:50px;
margin-top:-25px;
margin-left:-25px;
/*或者margin:50%;top:-25px;left:-25px;*/
border:1pxsolidgreen;
}
</style>
<divclass="div_1">
<divclass="content">
Contenthere
</div>
</div>
2、利用绝对定位0偏移和margin:auto;,两侧偏移都被设置为0时,margin:auto将使内容居中,该方法对所有元素生效,该方法不兼容低于IE8的浏览器
复制代码代码如下:
<style>
.div_1{
position:relative;
border:solid1pxred;
width:200px;
height:200px;
background-color:silver;
}
.content{
position:absolute;
left:0;
right:0;
top:0;
bottom:0;
margin:auto;
height:50px;
width:70%;
border:1pxsolidgreen;
}
</style>
<divclass="div_1">
<divclass="content">
Contenthere
</div>
</div>
3、利用50%偏移和负值偏移,支持所有浏览器
复制代码代码如下:
<style>
.outer{
position:relative;
border:1pxsolidred;
width:400px;
height:300px;
}
.cellOuter{
position:absolute;
top:50%;
left:50%;
width:200px;
height:200px;
border:0pxnone;
background:transparent;
}
.cellInner{
position:absolute;
top:-50%;
left:-50%;
width:100%;
height:100%;
border:1pxsolidgray;
}
</style>
<divclass="outer">
<divclass="cellOuter">
<divclass="cellInner">hellocell</div>
</div>
</div>
不使用table和不计算尺寸而且兼容IE6的垂直居中方法我没发现,有知道的同学望赐教。
四.文本挣开div的问题
默认情况下如果没有设置块状元素的高宽,块级元素宽度取最大值,高度取最小值。
IE6下,div内的内容(文本和元素)可以撑开div的高宽(定义了高宽的值),IE7以上版本和firefox都不存在这个问题
IE7以上版本支持min-heightmax-height,min-widthmax-width,因此在IE7或firefox等较新的浏览器是用min-heightmin-width可以达到IE6下自动撑大元素的效果。
标签:
水平居中,垂直居中,绝对居中
极乐门资源网 Design By www.ioogu.com
极乐门资源网
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
极乐门资源网 Design By www.ioogu.com
暂无元素及文本的水平居中/垂直居中/绝对居中总结的评论...
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
2024年12月24日
2024年12月24日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]