gpt4 book ai didi

html - 在不使用绝对定位的情况下垂直居中 div?

转载 作者:太空宇宙 更新时间:2023-11-04 13:53:19 25 4
gpt4 key购买 nike

我想要一个 div 垂直和水平居中。但是,当我使用包装器 (relative) -->container (absolute) 解决方法时,底部的页脚被一直推到屏幕顶部,然后我无法移动页脚。那么,如何在不使用绝对定位的情况下将棕褐色框垂直和水平居中?

HTML:

<body>
<div id="wrapper">
<div id="container">
<div id="menu">
<ul>
<?php wp_list_pages('title_li='); ?>
</ul>
</div>
<div id="fullerton" class="clearfix">
<a href="#"><img src="<?php echo get_template_directory_uri(); ?>/images/fullertonmenu.png" /></a>
</div>
<div id="logo" >
<img src="<?php echo get_template_directory_uri(); ?>/images/HB-Logo.png" />
</div>
<div id="comingsoon">
<a href="#"><img src="<?php echo get_template_directory_uri(); ?>/images/comingsoon.png" /></a>
</div>
<?php endwhile; ?>
</div>
</div>
<div id="footer"><!-- Footer Content Begins Here -->
<p>&copy; <?php bloginfo('name'); ?>, by lapetitefrog</p>
</div>
</body>

CSS:

body {
text-align: center;
padding: 0;
margin: 0 auto;
background-image: url(images/Wood_Background_3.jpg);
background-repeat: no-repeat;
background-color: #20130b;
max-width: 2048px;
}
#wrapper{
width: 960px;
height: 400px;
bottom: 50%;
right: 50%;
position: absolute;
}
#container {
left: 50%;
position: relative;
top: 50%;
padding: 20px 0 0 0;
font-family: Arial, Times, serif;
background-image: url(images/light_wood.jpg);
background-repeat: no-repeat;
overflow: auto;
}
/* ========================================================== Header Styles ======= */

#header {
height: 50px;
background-color: #8B0000;
overflow: hidden;
position: fixed;
top: 0;
right: 0;
}
}

/* ========================================================== Content Styles ======= */

#content {
font-family: "Lucida Grande","Lucida Sans Unicode",Tahoma,Verdana,sans-serif;
height: auto;
overflow: hidden;
}

#content p {
font-size: 13px;
}

#content h2, h3, h4, h5 {
color: #d54e21;
font-family: Georgia, "Times New Roman", Times, serif;
}

.clearfix:after {
content: ".";
visibility: hidden;
display: block;
height: 0;
clear: both;
}

#fullerton{
float: left;
width: 180px;
height: 70px;
margin: 105px 70px;
}
#logo{
float: left;
width: 320px;
height: 281px;
margin: auto;
}
#comingsoon{
float:left;
width: 180px;
height: 70px;
margin: 105px 70px;
}

/* ========================================================== Footer Styles ======= */

#footer {
width: 100%;
height: 50px;
float: left;
font-family: 'Roboto Slab', serif;
}

#footer p {
margin: 10px 25px;
color: #fff;
}

最佳答案

要使元素在水平和垂直方向居中而不需要绝对定位,您可以使用 CSS 属性:transform,其值为 translate() 并结合 相对定位。

例如,一个相对定位的元素可以这样移动:

`transform: translateY(20px);`

这会将您的元素在“Y”轴上向下移动 20 像素。

为了让您的元素垂直居中,我们实际上做了两个 Action 。

  1. 将元素向下移动父元素高度的一半(或 50%)。
  2. 将元素向上移动其自高度度的一半(或 -50%)。

最终结果是一个完美居中的元素,无论是否有任何换行或多行文本。 Browser support is IE9+ .

.parent {transform-style: preserve-3d;} 用于在 translate 将元素放置在“半像素”上时阻止元素变得模糊。

进一步阅读博文 zerosizthree.se

.parent { 
height: 150px; width: 300px; background: #ddd;

-webkit-transform-style: preserve-3d;
-moz-transform-style: preserve-3d;
transform-style: preserve-3d;
}

.center-vertically-and-horizontally {
background: white;
width: 200px;
position: relative;
top: 50%;
left: 50%;

-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
}

div { border: 2px solid #bbb; padding: 0.5em; }
<div class="parent">
<div class="center-vertically-and-horizontally">
Centered both vertically and horizontally within it's parent.</div>
</div>

关于html - 在不使用绝对定位的情况下垂直居中 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25000483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com