19

我已经建立了一个非常基本的站点,其中包含一个#container div,其中包括#navbar 和#content。但是,当我放大或缩小时,#navbar 会扭曲,如果我放大链接会被推到彼此下方而不是内联。如果我缩小,链接之间会添加太多的填充。我怎样才能阻止这个?

HTML:

<div id="navbar">
<ul>
    <li><a href="index.html">Home</a></li>
    <li><a href="top.html">Top</a></li>
    <li><strong><a href="free.html">FREE</a></strong></li>
    <li><a href="photo.html">Photo</a></li>
    <li><a href="about.html">About</a></li>
    <li><a href="contact.html">Contact Us</a></li>
</ul>
</div>

<div id="content">

<p>Some sample text.<p>

</div>


</div>

CSS:

#container {

    position: static;
    background-color: #00bbee;
    margin-left: 20%;
    margin-right: 20%;
    margin-top: 7%;
    margin-bottom: 15%;
    border: 2px solid red;


}

#navbar  ul{

    list-style: none;



}

#navbar  li{

    display: inline;

}

#navbar li a{

    text-decoration: none;
    color: #11ff11;
    margin: 3%;
    border: 1px dotted orange;
    padding-left: 4px;

}

#navbar li a:hover {

    background-color: white;
    color: green;

}

#navbar {

    background-color: #eeeeee;
    padding-top: 2px;
    padding-bottom: 5px;
    border: 1px solid yellow;

}

我怎样才能阻止它扭曲?

另外,我对 CSS 还是很陌生,我被教导使用 % 而不是 px。那正确吗?还有什么你要指出的,请告诉我。

提前致谢!

4

9 回答 9

7

由于这个问题仍然得到不断的关注,我将发布我目前使用的解决方案。

CSS 媒体查询:

@media screen and (max-width: 320px) { 

/*Write your css here*/

}

@media screen and (max-width: 800px) { 

}

查看: CSS-Tricks + 设备尺寸媒体查询

于 2015-05-14T21:28:48.537 回答
5

我有一个类似的问题,我通过在导航菜单周围添加一个额外的 div 来解决。然后我添加了以下内容

#menu-container {
    position: absolute;
    white-space: nowrap;
    overflow: hidden;

}

这阻止了它的包装。希望它有效。

于 2013-03-15T22:06:30.447 回答
1

要解决放大问题,请尝试将min-width属性添加到外部计数器(#container#navbar?)。设置min-width可防止网页尝试缩小超出指定宽度(即 300 像素)。如果你放大得太远,而不是<div>跳到下一行里面的元素,你的导航栏将停止收缩,并且页面底部会出现一个滚动条。

示例(在您的样式表中):

#navbar {min-width:300px;}

实现此目的的另一个好方法是将 min-width 属性应用于页面正文。

示例(在您的样式表中):

body {min-width:300px;}

最后,如果你想让你的导航栏跨越页面的整个宽度,请{clear:both;}在样式表中使用。

于 2013-06-27T09:07:30.140 回答
0

您将要使用 css 媒体查询为 css 中的不同样式设置断点。如果使用得当,它将解决任何失真问题。

于 2015-02-18T15:05:32.480 回答
0

给你,这很像上面的建议,但它有一个固定宽度的内容区域,如果你正在寻找全宽我很抱歉 (;_;)

<style>
body {
    margin:0px;
}
#container {
    width:990px;
    background-color: #00bbee;
    margin:0 auto;
    border: 2px solid red;
}
#navbar ul {
    list-style: none;
}
#navbar li {
    display: inline;
}
#navbar li a {
    text-decoration: none;
    color: #11ff11;
    margin: 3%;
    border: 1px dotted orange;
    padding-left: 4px;
}
#navbar li a:hover {
    background-color: white;
    color: green;
}
#navbar {
    background-color: #eeeeee;
    padding-top: 2px;
    padding-bottom: 5px;
    border: 1px solid yellow;
}
</style>

<div id="container">
  <div id="navbar">
    <ul>
      <li><a href="index.html">Home</a></li>
      <li><a href="top.html">Top</a></li>
      <li><strong><a href="free.html">FREE</a></strong></li>
      <li><a href="photo.html">Photo</a></li>
      <li><a href="about.html">About</a></li>
      <li><a href="contact.html">Contact Us</a></li>
    </ul>
  </div>
  <div id="content">
    <p>Some sample text.
    <p> 
  </div>
</div>
于 2014-10-10T19:11:10.767 回答
0

嗯....您是否尝试过添加最小宽度/最小高度属性?您可以在#container div 中包含这些属性。这可能只是解决问题。

于 2012-03-21T01:55:08.703 回答
0

不同的浏览器使用不同的缩放技术。他们都有缺点。使用百分比会引入舍入误差。没有简单的答案。

见: http: //www.codinghorror.com/blog/2009/01/the-two-types-of-browser-zoom.html

于 2012-03-14T19:57:30.120 回答
0

这主要是因为您以百分比设置了宽度或边距属性。如果您这样做,请确保您为此类元素提供最大宽度

于 2014-10-07T09:41:29.370 回答
0

我只需为页面上的所有元素/div 设置绝对高度和宽度。

id {高度:250px; 宽度:500px}

或者您也可以使用 min/max-width/hight 在不同的屏幕尺寸或调整浏览器窗口大小时调整页面布局。

于 2014-05-10T11:48:06.933 回答