【问题标题】:Divs move around when resizing/zooming-in/out page调整大小/放大/缩小页面时,Divs 会四处移动
【发布时间】:2014-03-28 21:05:36
【问题描述】:

我知道这个问题已经被问过很多次了,但我发现没有一个解决方案对我有用。我正在制作这个网站,当我放大和缩小网页时,div 元素会四处移动。这是 HTML 代码:

<!doctype html>
<html>    
    <head>
        <!-- Header -->
        <center>
            <img src="http://i1349.photobucket.com/albums/p742/lucasgame13/header_zps8f446598.png" alt="Shawn&amp;LucasWeb">
        </center>
        <!-- Header -->
        <title>Shawn & Lucas Web Development!</title>
        <link rel="stylesheet" href="style.css">
    </head>    
    <body>
        <center>
            <h1>Welcome to Shawn & Lucas Web Development!</h1>
        </center>
        <!-- Left Box -->
        <div id="leftbox">
             <h3> Info </h3>

            <p>This is a test. -</p>
            <p>- <a href="Red.html">Click here!</a>
            </p>
        </div>
        <!-- End of Left Box -->
        <!-- Middle Box -->
        <div id="box">
             <h3> Menu </h3>

            <p>Navigate around the website!</p>
            <center><a href="about.html">About Us</a> 
            </center>
        </div>
        <!-- End of Middle Box -->
        <!-- Right Box -->
        <div id="rightbox">
             <h3> Menu </h3>

            <p>Navigate around the website!</p>
        </div>
        <!-- End of Right Box -->
        <footer>
            <p class="us"><font color="black"> Shawn & Lucas WEB - Custom Websites &copy; </p>
         </footer>
     </body>
</html> 

CSS 代码是这样的:

body {
    background:#61c9f5;
}
h1 {
    color:#000000;
    font-family:"Impress BT" arial verdana;
    position:relative;
    bottom:37px;
}    
p.us {
    tetx-align:center;
    color:white;
    font:bold 400%
}

/* Middle Box */
#box {
    border-width: 0.139in;
    border-color: rgb( 75, 75, 75 );
    border-style: dashed;
    background-color: rgb( 115, 115, 115 );
    width: 309px;
    height: 296px;
    z-index: 1;
    display:block;
    margin: auto auto;      
}    
#box h3 { 
    font-size:180%;
    text-align:center;
    position:relative;
    bottom:30px;        
}    
#box p {
    position:relative;
    bottom:60px;
    text-align:center;      
}    
#box a:link, a:visited {
    display:block;
    font-weight:bold;
    color:#FFFFFF;
    background-color:#778899;
    width:120px;
    text-align:center;
    padding:4px;
    text-decoration:none;
    text-align:center;
    border:1px solid black; 
}    
#box a:hover, a:active {
    background-color:#708090
}

/* End of Middle Box */

/* Left Box */ 
#leftbox {
    border-width: 0.139in;
    border-color: rgb( 75, 75, 75 );
    border-style: dashed;
    background-color: rgb( 115, 115, 115 );
    width: 309px;
    height: 296px;
    z-index: 1;
    position:absolute;
    left:70px 
}  
#leftbox h3 {
    font-size:180%;
    text-align:center;
    position:relative;
    bottom:30px;
}
#leftbox p {
    position:relative;
    bottom:60px;
    text-align:center;
}
/* End of Left Box */

/* Right Box */
#rightbox {
    border-width: 0.139in;
    border-color: rgb( 75, 75, 75 );
    border-style: dashed;
    background-color: rgb( 115, 115, 115 );
    width: 309px;
    height: 296px;
    z-index: 1;
    position:absolute;
    top:395px;
    right:70px;     
}
/* End of Right Box */

div {                    
    border-radius:10px;
}   

我没有链接,因为它只在我的电脑上,但我有截图:

http://prntscr.com/34ypmu - 这是 100% 缩放的普通网站

http://prntscr.com/34yq9w - 这是放大时的样子。

我不能发布超过 2 个链接,因为我没有 10 个声望,但是当它被缩小时 盒子彼此远离。

我知道该网站并不是一个真正的好网站,但这只是一个测试,因为当我放大时,没有任何其他网站可以工作。请帮助! (我确实尝试了一个包装器,但它没有用)

【问题讨论】:

  • 您不应将图像放在&lt;head&gt; 标记中,&lt;center&gt; 标记已被弃用。
  • 这很奇怪。我一直听说缩放时会出现问题,但我自己从来没有遇到过问题……
  • @Mathias,我知道,是我的朋友(我们一起创建了网站)那样做的,我没有改变它,因为我没有注意到它。我解决了这个问题,但它仍然不起作用。
  • #bjb568 我觉得跟定位有关,但我真的不知道。
  • @Lucas 我觉得可能是绝对/固定定位……

标签: html css resize


【解决方案1】:

如果您使用text-align: center 在您的框周围添加一个包装器并将display: inline-block 添加到框,它们将在中心彼此相邻对齐。

http://jsfiddle.net/borglinm/JFkYL/

HTML

<div class="boxes">
    <div class="box">Content</div>
    <div class="box">Content</div>
    <div class="box">Content</div>
</div>

CSS

.boxes {
    text-align: center;
}
/* All the boxes */
.box {
    vertical-align: top;
    margin: 0 10px;
    text-align: left;
    display: inline-block;
}

【讨论】:

    【解决方案2】:

    您误用了绝对定位。经验法则:您需要绝对定位吗?没有。

    所以,使用浮点数:

    float: left;
    width: 33%;
    

    记得使宽度合适,这样它就不会落在下一行。如果您不想费心考虑填充/边框,请使用:

    box-sizing: border-box;
    -moz-box-sizing: border-box;
    

    它使边框在宽度内(而不仅仅是内容)。

    【讨论】:

      猜你喜欢
      • 2015-08-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多