【问题标题】:How do I stop my divs from moving around while zooming?如何在缩放时阻止我的 div 移动?
【发布时间】:2013-06-15 01:18:41
【问题描述】:

大家好,

我正在为当地的天文俱乐部开发一个网站,我正在免费做这个网站,以建立我的投资组合和技能组合。

我在页面顶部的标题中有一个导航栏。当我缩小到大约 90% 时,导航栏中的元素会四处移动,导致布局看起来有点时髦。

如果有帮助,我在

上有一个活生生的例子

http://www.JamesRobertCook.com/BCAAS/

这是我的导航栏的 HTML:

<div id="header_bar">
    <div id="nav">
        <div id="cssmenu">
                <ul>
                   <li class="active"><a href="index.html"><span>Home</span></a></li>
                   <li class="has-sub"><a href="#"><span>Products</span></a>
                      <ul>
                         <li class="has-sub"><a href="#"><span>Product 1</span></a>
                            <ul>
                               <li><a href="#"><span>Sub Item</span></a></li>
                               <li class="last"><a href="#"><span>Sub Item</span></a></li>
                            </ul>
                         </li>
                         <li class="has-sub"><a href="#"><span>Product 2</span></a>
                            <ul>
                               <li><a href="#"><span>Sub Item</span></a></li>
                               <li class="last"><a href="#"><span>Sub Item</span></a></li>
                            </ul>
                         </li>
                      </ul>
                   </li>
                   <li><a href="#"><span>About</span></a></li>
                   <li class="last"><a href="#"><span>Contact</span></a></li>
                </ul>
        </div>
    </div>

这里是相关的 CSS:

#header_bar {
background: rgba(44, 44, 44, 0.75);
height: 36px;
margin: 0 auto;
}

#nav {
height: 36px;
margin: 0 auto;
width: 960px;
}

#cssmenu {
height: 36px;
background-color: rgb(44, 44, 44)s;
}

#cssmenu ul {
margin: 0;
padding: 0;
}

#cssmenu > ul > li {
float: left;
margin-left: 15px;
position: relative;

#cssmenu > ul > li > a {
color: rgb(160,160,160);
font-family: Verdana, 'Lucida Grande';
font-size: 15px;
line-height: 36px;
padding: 15px 85px;
-webkit-transition: color .15s;
-moz-transition: color .15s;
-o-transition: color .15s;
transition: color .15s;

我认为将其粘贴在容器中并为其提供固定的高度/宽度可以解决问题,但我在本地尝试过,但没有成功。

感谢您的帮助!如果可能,您能否解释一下我做错了什么?我想从我的错误中学习

谢谢!

编辑

我刚刚注意到,在缩放时,我的三个“特色”框中的内容也与它所在的相应 div 重叠!我当然弄坏了一些东西。

【问题讨论】:

  • 我通常只是让我的网站在人们乱用缩放时爆炸。如果您想尝试防止缩放,请查看:stackoverflow.com/questions/14050841/…
  • @KaiQing 你在移动设备上遇到过问题吗?我对此的担忧是 iPad/Smart Phone 用户会被抛在后面。想法?
  • 对于移动设备,您可以使用元缩放级别。 &lt;meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"&gt;
  • 感谢您的信息!一个快速的谷歌提供了我需要知道的关于元缩放的所有信息。尽管如此,仍在寻找解决我的问题的方法,这一定是导致它的愚蠢行为。总是很傻。
  • @KaiQing - 那些需要大一点字体的人呢?讨厌他们?

标签: css html layout


【解决方案1】:

我很抱歉。我在页面上进一步查看内容 div 时偏离了方向,完全失去了对您真正问题的关注。我希望对您最初的问题的简单解决方案能帮助您原谅我。

#header_bar {
    background: rgba(44, 44, 44, 0.75);
    height: 36px;
    margin: 0 auto;

    min-width: 960px;
}

min-width: 960px;960px 是 960 像素,与页面其他主要内容的宽度相同)意味着&lt;div&gt;id="header_bar" 不能小于960px即使有人以超低分辨率查看、调整浏览器窗口大小或放大很远,它也能与您的其他内容相匹配。

再次,很抱歉完全搞砸了,但顺便说一句,如果您有兴趣,我相信我可以就一些事情给您一些建议。例如,您似乎在页面中过度使用了&lt;div&gt;&lt;span&gt;。这两个元素并不排斥接收您应用到它们的一些样式,在某些情况下,子元素或这些元素的父元素可以接收样式,您可以完全消除这些元素。

如果您想对提示和提示等进行更详细的解释,我喜欢为想法和讨论编程/开发而玩音板,我想我可以向您展示我多年来学到的一些对您有帮助的东西.

【讨论】:

  • @MrS1ck,我有一些时间玩它,并用 CSS3/HTML5 重建了布局,仅作为示例。我使用了更少的 HTML 标记,这意味着您的用户浏览器下载更少,页面加载更快。精简你的代码总是一件好事,虽然你没有要求它,但我希望你仍然会发现它有用并从中学习一些技巧。 trap-nine.com/bcaas 哦,你还把 BCASS,我很确定你打算把 BCAAS 放在你的页面上。
  • 谢谢!我刚回到这个项目,你的跟进极大地帮助了我!
  • 没问题,伙计。很高兴我能帮上忙。
【解决方案2】:

如果您不希望文本穿过边界,您的 div 元素需要变得更高,或者您需要在它们上设置溢出,但除此之外,我看不出您的 div 元素在哪里做任何不寻常的事情.它们是静态大小的,它们不会改变任何东西的大小。它们“移动”是因为用户正在调整大小/缩放,并且在此期间它们不能保持静止。您必须找到一种方法来阻止用户调整大小/缩放以防止发生任何变化。

【讨论】:

  • 谢谢!我想我要去寻找一种有效的方法来禁止缩放!
  • 您可能想仔细检查一下我,但我认为这实际上是不可能的,除非使用移动设备。只是一个想法,也许使用 JavaScript,您可以捕获缩放迭代并修改它或修改页面的内容,使其看起来相同并限制缩放。只是一个想法谷歌没有保证它也会起作用。您应该能够调整 div 的大小并使内容适合。缩放对我来说不会影响您的页面,除非一切都显得更大。您的文本在 100% 和 500% 的 div 之外一样多。谷歌浏览器版本:27.0.1453.110 m.
  • @MrS1ck 不禁止缩放,只是展示了糟糕的开发技能。如果放大,布局应该是可用的,有人说 150% 其他人 200%
  • 我必须同意@RyanB。您不应该尝试使用户的浏览器适合您的布局,而应相反。话虽这么说,如果您追求这一点,并且如果您的目标受众不关心并继续回来,那么这取决于您……做您喜欢的事情。就个人而言,我喜欢认为我的目标受众根本不需要缩放,但我尽量不做任何会让布局混乱的事情。我并不是建议禁止缩放是一个好主意(只是为了澄清)。
【解决方案3】:

尝试使用% 作为单位而不是px&lt;li&gt;(列表项)分配宽度

(即)如果您在菜单中使用五个&lt;li&gt;,请将width:20% 分配给&lt;li&gt;

【讨论】:

    猜你喜欢
    • 2022-11-15
    • 1970-01-01
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-28
    • 2015-08-29
    • 2020-07-12
    相关资源
    最近更新 更多