我已经开始创建一个网站,并希望在我的导航栏下面放一个横幅。 我原来两个div都准确定位我想要的方式,但是在调整大小时,右边的div移动到左边的div下面。 两者都使用float:left和float:right定位。
HTML:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title> Welcome </title>
<link rel="stylesheet" type="text/css" href="Style1.css">
</head>
<body>
<div id="wrapper">
<div id="header">
<div id="topHeader">
<div id="logo">
<img src="Images/HeaderLogo.png" alt="Logo for Matt Meadows">
</div>
</div> <!--End of topHeader -->
</div> <!--End of Header -->
<nav>
<div id="nav-links">
<ul>
<li>Home</li>
<li>Portfolio</li>
<li>About</li>
<li>Contact</li>
</ul>
</div>
</nav>
<div id="contentHeaderContainer">
<div id="contentHeader">
<img src="Images/HomePageContentHeader.png">
<div id="headerText">
<h1 id="welcome">WELCOME</h1>
<p class="Text1">The Way Website Development should be...</p>
<p class="Text2">UNIQUE</p>
<p class="Text5">CONCISE</p>
<p class="Text3">VIBRANT</p>
<p class="Text4">PROFESSIONAL</p>
<p class="Text6">SIMPLE</p>
</div> <!--End of headerText -->
</div> <!--End of contentHeader -->
</div> <!--End of contentHeaderContainer -->
</div> <!--End of wrapper -->
</body>
</html>
CSS:
body, html
{
margin:0;
height:100%;
width:100%;
}
#wrapper
{
margin-left: auto;
margin-right: auto;
}
#topHeader
{
width: 100%;
height:75px;
background: rgb(36,36,36); /* Old browsers */
background: -moz-linear-gradient(top, rgba(36,36,36,1) 0%, rgba(52,52,52,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(36,36,36,1)), color-stop(100%,rgba(52,52,52,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#242424', endColorstr='#343434',GradientType=0 ); /* IE6-9 */
}
#logo
{
margin-left: 50px;
padding-top: 10px;
}
nav
{
float:left;
width: 100%;
height: 45px;
background: url('Images/NavBG.png');
-webkit-box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
-moz-box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
}
#nav-links
{
margin: 0 auto;
}
ul
{
margin:0 auto;
padding:0;
list-style:none;
width: 700px;
}
li
{
display:inline;
float:left;
padding: 10px 55px 10px 55px;
font-size: 20px;
font-family: Arial, Helvetica, sans-serif;
color: #CCCCCC;
-webkit-transition: background 0.5s ease;
-moz-transition: background 0.5s ease;
-o-transition: background 0.5s ease;
transition: background 0.5s ease;
}
li:hover
{
background: #4d4c4c;
color: #FFF;
}
#contentHeaderContainer
{
height: 450px;
margin-left: auto;
margin-right: auto;
background: rgb(36,36,36); /* Old browsers */
background: -moz-linear-gradient(top, rgba(36,36,36,1) 0%, rgba(52,52,52,1) 100%); /* FF3.6+ */
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(36,36,36,1)), color-stop(100%,rgba(52,52,52,1))); /* Chrome,Safari4+ */
background: -webkit-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* Chrome10+,Safari5.1+ */
background: -o-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* Opera 11.10+ */
background: -ms-linear-gradient(top, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* IE10+ */
background: linear-gradient(to bottom, rgba(36,36,36,1) 0%,rgba(52,52,52,1) 100%); /* W3C */
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#242424', endColorstr='#343434',GradientType=0 ); /* IE6-9 */
-webkit-box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
-moz-box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
box-shadow: 0px 7px 15px rgba(20, 20, 20, 0.5);
}
#contentHeader img
{
float:left;
margin-top: 50px;
}
#headerText
{
float:right;
width: 700px;
height: 300px;
}
#welcome
{
font-family: "Myriad Pro", Myriad, "Liberation Sans", "Nimbus Sans L", "Helvetica Neue", Helvetica, Arial, sans-serif;
color: #cccccc
}
p
{
font-family: "Myriad Pro", Myriad, "Liberation Sans", "Nimbus Sans L", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.Text1
{
color: #999999;
font-size: 20px;
font-weight: bold;
}
.Text2
{
color:#8d9999;
font-size: 22px;
font-weight: bold;
margin-left: 100px;
margin-top: 50px;
}
.Text3
{
color:#8d9999;
font-size: 22px;
font-weight: bold;
margin-left: 350px;
margin-top: 50px;
}
.Text4
{
color:#8d9999;
font-size: 22px;
font-weight: bold;
margin-left: 100px;
margin-top: 50px;
}
.Text5
{
float:right;
color:#8d9999;
font-size: 22px;
font-weight: bold;
margin-top:-50px;
}
.Text6
{
float:right;
color:#8d9999;
font-size: 22px;
font-weight: bold;
margin-top:-50px;
}
我希望#contentHeaderContainer中的两个子div保持完全静止,即使在调整大小时也是如此。 E.G在调整窗口大小时,窗口的边框会移动,但内容仍保持绝对静止。
答案 0 :(得分:3)
询问#contentHeader img
和#headerText
? - 这些是为我调整窗口大小调整的位置。
您可以绝对定位它们,并分别给它们left:0;
和right:0;
而不是float:left;
和float:right;
。
也许,就像那样:
#contentHeader {
position:relative;
width:100%;
}
#contentHeader img {
position:absolute;
left:0;
top:90px;
}
#headerText {
position:absolute;
right:0;
top:45px;
width:700px;
height:300px;
}
这样,图像不会将文本向下推,而是会留在文本后面。如果这不是你想要的,你可能需要澄清一下这个问题。
修改强>
要使元素保持彼此之间的固定距离,您必须为容器指定固定宽度。但通常在调整窗口大小时它们不会保持居中,因为左边缘将开始向右推动容器。但你可以使用一个技巧,通过做这样的事情(例如我们假设固定宽度为1200px),在窗口大小调整大小的页面中心保持相同的距离:
#contentHeader {
position:relative;
width:1px;
}
#contentHeaderImg {
position:absolute;
right:0;
width:500px;
top:90px;
text-align:left;
}
#headerText {
position:absolute;
left:0;
top:45px;
width: 700px;
height: 300px;
}
现在你只需要调整左右定位元素的宽度,使它们位于你想要的位置=)
Here it's on jsfiddle.我在这里围绕图像(#contentHeaderImg
)制作了另一个div,因为我不知道你的图像宽度 - 更容易定位。
所以,分配宽度应该可以做到,但你不能拥有 漂浮到边缘和两个元素的相同排列 同时调整大小......只有你这样才有可能 按比例缩放所有标题内容。
答案 1 :(得分:2)
如果您想要图像和headerText
并排,您必须给它们足够的空间来做到这一点。为#wrapper
#wrapper {
margin-left: auto;
margin-right: auto;
width:960px;
}
如果您总想占据整个宽度,请使用min-width
代替
#wrapper {
margin-left: auto;
margin-right: auto;
min-width:960px;
}
答案 2 :(得分:0)
要防止在调整浏览器窗口大小时移动内容,只需避免使用绝对度量单位(像素),而仅使用百分比%和视口单位vw。这对我来说效果很好。我在Divs中使用了这些样式。
.centercolumn {
float: left;
width: 50%;
padding: 1%;
background-color: #f8df67;
height: 80vh;
margin-top: 1%;
margin-left: 0px;
margin-right: 1%;}
.sidecolumn {
float: left;
width: 20%;
padding: 1%;
margin-top: 1%;
margin-left: 0px;
margin-bottom: 1%;
height: 80vh;}