我目前在调整窗口大小方面存在问题,这会切断大量页面,并且相对于文档定位的元素会从页面上移开。 看看它的样子:
正常:http://i.imgur.com/KpnUOwI.png
最小化:http://i.imgur.com/CfCrmub.png
在最小化时滚动到最后:http://i.imgur.com/p8dwiP9.png
我要么想要蓝色元素直接结束,即使它被最小化(它的宽度:100%),或者让元素按比例调整到窗口并适合所有内容(一切都相对于文档定位)
css:
body {
margin:0;
padding:0;
height:100%;
width:100%;
position:relative;
overflow:auto;
}
#headr {
background-image:url(../images/top%20bg.jpg);
background-repeat:no-repeat;
height:400px;
width:100%;
position:relative;
z-index:-100;
overflow:hidden;
}
#lgo {
position:relative;
margin-left:33%;
margin-top:80px;
}
#nav {
background-image:url(../images/nav%20bar.png);
position:relative;
top:0;
margin-top:0px;
width:100%;
width:!important;
height:99px;
}
#listone {
list-style-type:none;
display:inline;
margin-left:570px;
top:25px;
position:relative;
overflow:hidden;
}
.navlist {
display:inline;
font-size:33px;
padding:25px;
color:#FFF;
font-weight:bold;
font-family:Verdana, Geneva, sans-serif;
position:static;
}
#searchb {
background-image:url(../images/search.png);
background-repeat:no-repeat;
width:500px;
height:200px;
position:relative;
padding:0px;
margin-left:1350px;
margin-top:-85px;
}
#searchb form {
display:inline;
}
#searchbar {
background-color:transparent;
border:0px;
position:absolute;
top:50px;
left:60px;
width:200px;
height:80px;
outline:none;
font-size:24px;
}
.searchsubmit {
border:0px;
background-color:transparent;
position:absolute;
top:70px;
left:400px;
width:30px;
height:50px;
}
HTML:
<body>
<div id="nav">
<ul id="listone">
<li class="navlist">Home</li>
<li class="navlist">Portfolio</li>
<li class="navlist">Prices</li>
<li class="navlist">Contact</li>
</ul>
<div id="searchb">
<form>
<input type="text" id="searchbar" placeholder="Search">
<input type="image" class="searchsubmit" src="images/searchicon.png" value="">
</form></div>
</div>
</div>
<div id="headr">
<!--<img src="images/head logo.png" id="lgo"> -->
</div>
答案 0 :(得分:0)
@Joe - 我猜你正在寻找一个响应式设计。我建议你和Twitter Bootstrap 3相处。负责窗口大小的CSS Framework。您只需要创建一些div
类来使其响应。
与框架相处可以让您更轻松,更快速地开发页面,Twitter Bootstrap 3为我们做到这一点。
这是另一个post,其中给出了相同的答案。
答案 1 :(得分:0)
是的,你必须为你想要的每个尺寸制作sepcifiy,你就像为任何其他css文件一样编写底层媒体的css。这是一个例子
/*if the width is over 768px the background will turn blue*/
@media screen and (min-width: 769px) {
body {
background:blue;
}
}
/*if the width is under 768px the background will turn yellow*/
@media screen and (max-width: 769px){
body {
background:yellow;
}
}
答案 2 :(得分:0)
您只需要重写希望在每个断点处更改的属性。 CSS的级联属性在这里很重要,所以你应该注意选择器的特殊性和顺序,以达到预期的结果为DRY。
如果你真的想支持多种屏幕尺寸,你应该看看响应式网页设计。将你的px替换为em就是你要做的事情的一个例子。