gpt4 book ai didi

html - 停止两个对象重叠

转载 作者:太空宇宙 更新时间:2023-11-04 13:15:14 26 4
gpt4 key购买 nike

我正在建立一个网站来托管 Crysis Wars 游戏的在线游戏服务器列表,并且刚刚发现在 Adob​​e Fireworks 中开发设计并在之后添加相关代码要容易得多。

我正在设计的当前网页在页面中央有一个登录框,而且效果很好。也就是说,直到我们更改浏览器窗口的大小。

这是正常情况下的网页: enter image description here

它显示正确,但这是调整浏览器窗口大小时的屏幕截图:

enter image description here

可以看出,这是页面的问题,因为访问者的屏幕分辨率不同,而且这个问题很容易再次发生。

我的问题是,我怎样才能强制这两个 CSS 对象保持它们的位置,并且永不重叠?这很麻烦,因为登录框在网页上居中。

网页可见crysis-or.eu (请不要因为我在实时网站上开发而责备我)。

HTML代码:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<html>
<head>
<title>Server Portal | Login</title>
<link href="./css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div class="navbar">
</div>
<div class="loginui">
</div>
</body>
</html>

CSS:

body {
width:100%;
margin-left:-0px;
background-color:07080A;
}

body > .loginui {
width:400px;
height:400px;
position: absolute;
top:0;
bottom: 0;
left: 0;
right: 0;

margin: auto;
background:url("http://crysis-or.eu/img/login_b_bg.png") repeat-x;
}

body > .navbar {
width:500px;
height:100px;
position: absolute;
margin-top:50px;
margin-left:100px;

background:url("http://crysis-or.eu/img/navbar.png") repeat-x;
}

最佳答案

我会推荐以下内容:

将导航栏和登录窗口放在单独的 wrapper-div 中,以防止它们重叠。您可以将 HTML 更改为:

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<html>
<head>
<title>Server Portal | Login</title>
<link href="./css/main.css" rel="stylesheet" type="text/css" />
</head>
<body>
<header id="top-bar">
<div class="navbar">
</div>
</header>
<section id="main">
<div class="loginui">
</div>
</section>
</body>
</html>

Header 和 Section 就像 Div 一样,唯一的区别是它们的语义意义。

因为 .top-bar 和 .loginui 不再是主体的直接子项,所以您的选择器将不再起作用。将 CSS 选择器更改为 .top-bar.loginui 而不是 body > .top-barbody > .loginui

标题需要指定的高度,并且需要其位置为“相对”或“绝对”。一个绝对定位的子元素将被绝对定位到任何最近的父元素,它也是绝对的,或者显式相对的。背景颜色仅用于说明目的,将在生产中移除。

header {
position: relative;
height: 200px;
background-color: red;
}

您希望该部分尽可能多地填充,因此需要绝对定位。 这里的技巧,可以解决您的问题,是添加一个 min-height 属性以防止该部分变得小于其内容,从而允许重叠。

section {
position: absolute;
top: 200px;
left: 0;
right: 0;
bottom: 0;
min-height: 400px;
background-color: blue;
}

这应该适合您。此解决方案的一个问题是登录窗口将相对于其容器而不是整个窗口居中。它将比您当前的设计低 100 像素(标题高度的一半)。为了解决这个问题,如果这对您很重要,您需要使用不同的方法将其垂直居中。将顶部设置为 50%,然后使用负顶部边距来补偿一半高度加上标题高度的一半。因为它有固定的高度,所以很简单:(400px + 200px)/2 = 300px。

.loginui {
width: 400px;
height: 400px;
position: absolute;
top: 50%;
left: 0;
right; 0;
margin: -300px auto 0;
background: url('path/to/login_b_bg.png');
}

关于html - 停止两个对象重叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24440152/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com