您将使用什么css规则来支持较小的屏幕和调整大小?

时间:2013-11-22 10:10:59

标签: html css overflow positioning

我目前在调整窗口大小方面存在问题,这会切断大量页面,并且相对于文档定位的元素会从页面上移开。 看看它的样子:

正常: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>

3 个答案:

答案 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就是你要做的事情的一个例子。