如何在调整网页大小时保持div居中?
问题描述:
我正在使用The Odin Project学习CSS,并制作了Google.com主页的样机。一切看起来都很完美,直到我调整了浏览器窗口的大小和元素移动的位置。如何在调整网页大小时保持div居中?
我一直在尝试很多不同的方法,如何在页面调整大小时保持div(Google徽标,搜索栏和按钮)居中。
#header {
position: absolute;
top: 50%;
left: 50%;
margin-left: -150px;
margin-top: -125px;
width: 300px;
padding: 10px;
}
#topbar {
font-family: arial, sans-serif;
}
.centered {
width: 960px
}
.footer {
position: absolute;
right: 0;
bottom: 0;
left: 0;
padding: 0.15rem;
background-color: #f2f2f2;
font-family: arial, sans-serif;
font-size: 15px;
color: #666;
}
.alignleft {
float: left;
}
.alignright {
float: right;
}
p {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #7D7676;
}
<title>Google</title>
<link rel="stylesheet" type="text/css" href="google-homepage-css.css">
<!-- Top bar -->
<body>
<div id="topbar">
<p align="right"><a href="https://mail.google.com" style="color:#7D7676;text-decoration: none">Gmail</a> <a href="https://images.google.com" style="color:#7D7676;text-decoration: none">Images</a>
<img style="vertical-align:middle" src="http://i.imgur.com/xmMdSIp.png"> </p>
</div>
<br>
<!-- Google Center Image -->
<div id="centered">
<div id="logo">
<img id="header" src="http://i.imgur.com/hs6n5hR.png" width="400">
</div>
</div>
<!-- Search Bar and Buttons -->
<div id="search">
<form id="searchbar" width="500">
<br>
<input type="text">
<br>
</form>
<br>
<button type="button" id="firstbutton">Google Search</button>
<button type="button" id="secondbutton">I'm Feeling Lucky</button>
</div>
<!-- Footer -->
<div class="footer">
<p class="alignleft"><a href="https://www.google.com/intl/en/ads/" style="color:#666;text-decoration: none"> Advertising</a>
<p class="alignleft"><a href="https://www.google.com/services/" style="color:#666;text-decoration: none">Business</a>
<p class="alignleft"><a href="https://www.google.com/intl/en/about/" style="color:#666;text-decoration: none">About</a>
</p>
<p class="alignright"><a href="https://www.google.com/intl/en/policies/privacy/" style="color:#666;text-decoration: none">Privacy</a>
<a href="https://www.google.com/intl/en/policies/terms/" style="color:#666;text-decoration: none">Terms</a>
<a href="https://www.google.com/preferences" style="color:#666;text-decoration: none">Settings </a>
</p>
</div>
我觉得应该是这样的,但我不知道:
div {
position: relative
margin-left:auto;
margin-right:auto;
}
注意:我将在搜索栏和按钮之后调整大小和添加颜色,这是我在浏览器页面重新调整大小时,如何将搜索栏和按钮保持在Google徽标下居中的最大担忧。
答
您可以将房产text-align: center
添加到您的<div>
祖先,并且其ID为#search
。
#search{ text-align: center; }
,因为他们保留自己的特色inline
这将居中<input>
和<button>
元素。
#header {
position: absolute;
top: 50%;
left: 50%;
margin-left: -150px;
margin-top: -125px;
width: 300px;
padding: 10px;
}
#topbar {
font-family: arial, sans-serif;
}
#search {
text-align: center;
}
.centered {
width: 960px
}
.footer {
position: absolute;
right: 0;
bottom: 0;
left: 0;
padding: 0.15rem;
background-color: #f2f2f2;
font-family: arial, sans-serif;
font-size: 15px;
color: #666;
}
.alignleft {
float: left;
}
.alignright {
float: right;
}
p {
font-family: Arial, Helvetica, sans-serif;
font-size: 14px;
color: #7D7676;
}
<title>Google</title>
<link rel="stylesheet" type="text/css" href="google-homepage-css.css">
<!-- Top bar -->
<body>
<div id="topbar">
<p align="right"><a href="https://mail.google.com" style="color:#7D7676;text-decoration: none">Gmail</a> <a href="https://images.google.com" style="color:#7D7676;text-decoration: none">Images</a>
<img style="vertical-align:middle" src="http://i.imgur.com/xmMdSIp.png"> </p>
</div>
<br>
<!-- Google Center Image -->
<div id="centered">
<div id="logo">
<img id="header" src="http://i.imgur.com/hs6n5hR.png" width="400">
</div>
</div>
<!-- Search Bar and Buttons -->
<div id="search">
<form id="searchbar" width="500">
<br>
<input type="text">
<br>
</form>
<br>
<button type="button" id="firstbutton">Google Search</button>
<button type="button" id="secondbutton">I'm Feeling Lucky</button>
</div>
<!-- Footer -->
<div class="footer">
<p class="alignleft"><a href="https://www.google.com/intl/en/ads/" style="color:#666;text-decoration: none"> Advertising</a>
<p class="alignleft"><a href="https://www.google.com/services/" style="color:#666;text-decoration: none">Business</a>
<p class="alignleft"><a href="https://www.google.com/intl/en/about/" style="color:#666;text-decoration: none">About</a>
</p>
<p class="alignright"><a href="https://www.google.com/intl/en/policies/privacy/" style="color:#666;text-decoration: none">Privacy</a>
<a href="https://www.google.com/intl/en/policies/terms/" style="color:#666;text-decoration: none">Terms</a>
<a href="https://www.google.com/preferences" style="color:#666;text-decoration: none">Settings </a>
</p>
</div>
答
<div>
是块元素并默认它需要它的父的100%的宽度。
如果您尝试使用margin: 0 auto
居中,那么您将无法获得预期结果。您必须设置宽度才能应用边距。
请参见下面的例子:
.parent{
width: 400px;
height: 100px;
border: 1px solid blue;
}
.item{
width: 100px;
margin: 0 auto;
border: 1px solid green;
}
<div class="parent">
<div class="item">
<span>some text</span>
</div>
</div>
你试过吗? ''''' –
无论屏幕大小如何,google徽标都居中。复制你为此做的任何事情? – imjared
您可以将margin-left/margin-right设置为“auto”,但您需要指定div的宽度以允许broawser计算边距。 – Dexter0015