各地市:
许昌网站建设中,如何策划吸引人的文章内容? 濮阳网站维护如何进行学习? 周口电商网站分为哪些类型? 商丘网站建设怎么处理服务器漏洞安全? 开封免费搭建网站如何策划? 漯河数据分析如何策划? 开封logo设计的流程和注意事项有哪些? 周口logo设计怎么设计最好? 濮阳网站建设主页设计有什么要求? 南阳网站SEO中链轮模型如何建立? 济源SEO技术中更换IP后怎么做? 濮阳网站建设Linux服务器怎么配置SSH服务器? 开封域名注册的费用是多少? 济源网站优化SEO中快速排名有哪些应用场景? 安阳网站建设公司哪家专业可靠? 开封域名注册需要多少钱? 开封网站建设怎么定期Linux服务器备份数据? 平顶山响应式设计最新技术发展趋势分析? 洛阳SEO技术如何降低跳出率? 周口网站维护分为哪些类型? 三门峡网站建设Linux服务器怎么限制shell访问权限? 开封免费搭建网站的优势是什么? 濮阳电商网站需要注意什么事项? 济源网络安全有什么技巧? 周口网站建设Linux服务器通过哪些方式隐藏服务器? 洛阳免费搭建网站如何进行学习? 漯河定制化网站需要确认哪些功能? 商丘网站空间购买需要多长时间? 南阳域名注册需要多长时间? 洛阳网站建设导航设计有什么要求? 驻马店网页开发分为哪些类型? 信阳网站维护需要多少钱? 漯河网站优化中搜索引擎怎么操作? 焦作网络安全需要考虑什么因素? 许昌网站建设日常怎么检查服务器网络安全? 新乡seo中网站空间如何进行优化? 新乡免费搭建网站去哪儿找? 新乡网站设计去哪儿找? Linux服务器通过哪些方式发现未授权访问? 南阳网站建设Linux服务器怎么过滤流量? 南阳网站建设Linux服务器怎么记录未授权访问? 三门峡网站建设Linux服务器通过哪些方式拒绝服务攻击? 濮阳网站建设Linux服务器通过哪些方式限制流量? 安阳网站建设怎么处理服务器系统安全? 鹤壁网站建设404页面怎么开发?
您的位置: 主页 > 网站设计观点 > 用CSS让元素垂直居中的方法

用CSS让元素垂直居中的方法

发布时间:2023-08-04 04:52:35 | 发布者:往流科技

  [size=3]利用CSS让元素垂直居中是个很头疼的问题,这里就介绍两种简单实用的方法
[/size]
[size=4]方法一:利用行高(line-height)定位[/size]
line-height通常是用于调节一段文字的行与行之间的距离,或者说两行文字之间的距离,如果行高是500px,那么每一行中的文字距离本行的顶部就是250px,如果将文字的行高设为500px,并且外面的容器的高度也为500px,同样可以实现垂直居中,但是用它来实现垂直居中,也是有缺点的,就是如果内容过多,文字就会跑到下一行,那么内容就不可能垂直居中了。
HTML代码:
<h1>Hi, I'm<span>Vertically Aligned</span> Within the H1</h1>
CSS代码:
body {
margin: 0;
padding: 0;
background: #1d1d1d;
font-size: 10px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h1 {
font: 3em Georgia, "Times New Roman", Times, serif;
color: #fff;
height: 500px;
line-height: 500px;
text-align:center;
border: 10px solid #999;
}
h1 span {
font-weight: bold;
font-size:1.5em;
color: #fff000;
}
p {
font-size: 1.3em;
color: #999;
}
strong {
color: #fff;
}
[size=4]方法二:利用绝对定位
[/size]
先来看看效果,查看演示
这个方法有个缺点我必须指出,就是外面的块状元素,必须指定高度,所以如果你在里面放动态的内容的话,后果会很糟糕滴~
HTML代码:
<div class="vert">
<h1>Hi, I'm<span>Vertically Aligned</span></h1>
<p>Abigo sudo mara paulatim odio, accumsan luptatum nibh nibh refero metuo opes ut fatua. Acsi et fere similis <strong>Using</strong> augue <strong>absolute</strong> validus. Regula <strong>positioning</strong> eu jus vel, indoles fere iaceo ea similis. Velit praemitto nulla vel luctus secundum. </p>
</div>
CSS代码:
这种用绝对定位来实现的垂直居中,取决与元素的宽度和高度,你可以用下面这两个公式来计算元素的左边距和上边距
元素的宽度/2 = 负左边距
元素的高度/2 = 负上边距
在这个例子中,我们就是这么计算的
.vert {
width: 580px;
height: 190px;
position: absolute;
top: 50%;
left: 50%;
margin: -95px 0 0 -290px;
}
完整CSS代码
body {
margin: 0;
padding: 0;
background: #1d1d1d;
font-size: 10px;
font-family: Verdana, Arial, Helvetica, sans-serif;
}
h1 {
font: 4em Georgia, "Times New Roman", Times, serif;
color: #fff;
border-bottom: 5px dotted #999;
margin: 0;
padding: 0 0 10px;
}
h1 span {
font-weight: bold;
display:block;
font-size:1.5em;
color: #fff000;
}
p {
font-size: 1.3em;
color: #999;
}
strong {
color: #fff;
}
.vert {
width: 580px;
height: 190px;
position: absolute;
top: 50%;
left: 50%;
margin: -95px 0 0 -290px;
}
[size=4]问题延伸
[/size]
如果元素的外面还有一个父级元素,如果才能让元素垂直居中于父级元素内部?比如下面的代码,多了一个父级元素
<div class="container">
<div class="vert">
<h1>Hi, I'm Nested &<span>Vertically Aligned</span></h1>
<p>Abigo sudo mara paulatim odio, accumsan luptatum nibh nibh refero metuo opes ut fatua. Acsi et fere similis <strong>Using</strong> augue <strong>absolute</strong> validus. Regula <strong>positioning</strong> eu jus vel, indoles fere iaceo ea similis. Velit praemitto nulla vel luctus secundum. </p>
</div>
</div>
这时候,就必须在定义父级元素的CSS代码中加入position: relative;才能够使内部元素垂直居中于父级内部,代码如下:
.container {
position: relative;
height: 500px;
width: 800px;
border: 10px solid #999;
background: #000;
margin: 20px;
}
本文章收集于网络,由往流编辑,有问题联系站长负责人