我正在创建一个包含标题,导航栏和内容的简单网站。它几乎可以在浏览器中运行,屏幕分辨率大小为1366 X 768,但如果你调整浏览器的大小,各种各样的东西都会搞乱。标题变得越来越大,并且重复一切。导航栏和标题栏变得很小,所以我不能将鼠标悬停在链接上。如果浏览器大小很小,则悬停在链接上会溢出。在任何分辨率或大小中,导航栏都会超出屏幕大小。如何解决这些问题,以便我的网站可以正确扩展。我不是最好的设计师,而且是更熟悉的后端Web开发。我正在使用类似vh
和vw
或%
的测量来调整我的组件的大小。
HTML 的
<header id="header"><h1 class="title">Test Test Test</h1></header>
<nav id="nav">
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
</nav>
CSS
@import url(http://fonts.googleapis.com/css?family=Quicksand);
body {
margin: 0;
background-color: #dddddd;
}
#header {
padding-top: 20px;
padding-left: 35px;
background-color: #9000f0;
height: 20vh;
width: 100%;
overflow: none;
}
#nav {
background-color: #44aa66;
height: 10vh;
width: 100%;
padding-left: 10%;
padding-right: 10%;
text-align: center;
}
.title {
color: #f9f9f9;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-size: 48px;
}
.text {
height: 65%;
width: 5%;
color: #f9f9f9;
margin: 0;
padding-top: 20px;
padding-left: 50px;
float: left;
}
.text:hover {
background-color: #44cc66;
}
答案 0 :(得分:0)
问题是你的标记仅限于你的分辨率,即1366 X 768 您正在使用额外的填充而不使用border-box属性 如果您对浏览器的大小调整感到困扰,则不应使用高度,如果要为元素提供高度,请使用min-height属性。
看看下面的jsfiddle链接,你会对此有一个清晰的认识。
例如边框框属性
*{
box-sizing:border-box;
}
答案 1 :(得分:0)
所以我的建议是使用
“欺骗”vh值#header {
height: 0;
padding-bottom: 20%;
}
@import url(http://fonts.googleapis.com/css?family=Quicksand);
body {
margin: 0;
background-color: #dddddd;
}
#header {
padding-top: 20px;
padding-left: 35px;
background-color: #9000f0;
height: 0;
padding-bottom: 20%;
width: 100%;
overflow: none;
}
#nav {
background-color: #44aa66;
height: 0;
padding-bottom: 10%;
width: 100%;
padding-left: 10%;
padding-right: 10%;
text-align: center;
}
.title {
color: #f9f9f9;
margin: 0;
font-family: 'Quicksand', sans-serif;
font-size: 48px;
}
.text {
height: 0;
width: 5%;
padding-bottom: 7.5%;
color: #f9f9f9;
margin: 0;
padding-top: 20px;
padding-left: 50px;
float: left;
}
.text:hover {
background-color: #44cc66;
}
<header id="header"><h1 class="title">Test Test Test</h1></header>
<nav id="nav">
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
<p class="text">Test</p>
</nav>
答案 2 :(得分:0)
也许是一个跳跃点...但是这个fiddle显示了为您的目标使用vmax和媒体查询的示例。您可以为您的目的试验这些值。
代码:
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
html {
font-size: 1em;
height: 100%;
width: 100%;
}
body {
height: 100%;
width: 100%;
margin: 0;
background-color: #dddddd;
}
#header {
padding: 2vmax 2vmax;
background-color: #9000f0;
height: 9vmax;
width: 100%;
overflow: none;
}
#nav {
background-color: #44aa66;
min-height: 4vmax;
width: 100%;
padding: 0 2vmax;
}
.title {
color: #f9f9f9;
margin: 0;
font-family:'Quicksand', sans-serif;
font-size: 5vw;
}
.text {
color: #f9f9f9;
margin: 0;
float:left;
padding: .6vmax 1.5vmax;
font-size: 2.3vmax;
}
.text:hover {
background-color: #44cc66;
}
@media all and (max-width: 480px) {
.text {
font-size: 12px;
padding: 5px 10px;
}
#nav {
height: 25px;
}
}