【发布时间】:2016-11-17 15:25:48
【问题描述】:
我正在通过 The Odin Project 学习 CSS,并制作了 Google.com 主页的模型。一切看起来都很完美,直到我调整了浏览器窗口的大小并且元素移动了位置。
我一直在尝试许多不同的方法来让 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 徽标下方居中。
【问题讨论】:
-
你试过了吗?
<meta name="viewport" content="width=device-width, initial-scale=1"> -
无论屏幕大小如何,谷歌徽标都会居中。复制你为此所做的一切?
-
可以设置margin-left/margin-right为“auto”,但需要指定div的宽度,让浏览器计算margin。
-
不要使用
position属性来定位元素(是的,我知道...)。 display and float 更适合布局(以及强大的 Flexbox 和 1-3 年的网格布局,但我认为它不适合初学者)。还要搜索“CSS 中的水平居中”=> 边距:0 auto vs text-align: center(用于将自身或其内容居中,大致)