gpt4 book ai didi

使用百分比而不是像素时的 HTML 5 布局

转载 作者:行者123 更新时间:2023-11-28 13:10:48 25 4
gpt4 key购买 nike

我有以下代码,当我使用基于像素的测量时,它可以完美地工作,但我想改用百分比,当我使用百分比时,它会破坏我的布局,如下图所示

enter image description here

如上图所示,正文内容和网站标语相互重叠。我需要标语与下面的无序列表一起进入蓝色部分。它在基于像素的布局上运行良好,但现在在应用百分比时出现问题。

这是我基于 HTML 5 的标记

<!DOCTYPE html>
<html lang = "en">
<head>
<meta charset = "UTF-8">
<link href = "site.css" rel = "stylesheet">
<title>Test Page - Test Title of my homepage</title>
</head>
<body>
<header>
<div id = "SiteTitle">
<h1>This is a test !</h1>
</div>
<div id = "Tagline">
<p>This is a test tagline of the website</p>
</div>
<nav>
<div id = "MainMenu">
<ul>
<li>Home</li>
<li>About</li>
<li>Contact</li>
</ul>
</div>
</nav>
</header>
<section>
<div id = "MainContent">
Main Site Cotent
</div>
</section>
<footer>
The Footer
</footer>
</body>
</html>

这是CSS文件

*{
margin: 0;
padding: 0;
height: 100%;
}
header{
background-color: blue;
height: 15%;
}
nav{

}
#SiteTitle{
color: black;
}
#Tagline{
color: black;
}
#MainMenu ul li{
color: black;
}
#MainContent{
height: 70%;
}
footer{
background-color: green;
height: 15%;
}

最佳答案

伴侣,

具有 %(百分比)值的高度属性不能用作像素值。高度百分比将根据父元素的高度计算。最初 body 没有作为整个视口(viewport)的高度。

您需要的第一条规则是:

html, body {
height:100%;
}

请记住,html 和 body 选择器必须在一起才能使 body 高度等于 vievwport 高度。

现在,如果您想拆分页眉、部分和页脚的 viewprot 高度 - 首先,这些元素必须是 body 的直接子元素。那么只有百分比单位会作用于高度属性。

因此您的结构将是:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<title>Test Page - Test Title of my homepage</title>
<link href="site.css" rel="stylesheet" />
</head>
<body>
<header>
header
</header>
<section>
section
</section>
<footer>
footer
</footer>
</body>
</html>

和用于布局的 CSS:

*{
margin: 0;
padding: 0;
}

html, body {
height:100%;
}

header{
background-color: blue;
height:25%;
}

section{
height:65%;
}

footer{
background-color: green;
height:10%;
}

而且你有一个快乐的灵活高度布局。

这不会解决您的问题,因为非常低的屏幕高度会导致重叠问题。您可以通过将 min-height 应用于正文或所需的页眉/部分/页脚元素来修复它。

例如:

header {
min-height:80px;
}

一些额外的建议:

  • 不要使用全局选择器 - 即 *
  • 改为使用 Normalise CSS
  • 基于百分比的高度布局不是最佳做法。

一个简单的演示:http://jsfiddle.net/shekhardesigner/9FBxd/

关于使用百分比而不是像素时的 HTML 5 布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19092849/

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