修复`div`标签的缩放比例

时间:2015-03-11 16:56:52

标签: html css scaling

我正在创建一个包含标题,导航栏和内容的简单网站。它几乎可以在浏览器中运行,屏幕分辨率大小为1366 X 768,但如果你调整浏览器的大小,各种各样的东西都会搞乱。标题变得越来越大,并且重复一切。导航栏和标题栏变得很小,所以我不能将鼠标悬停在链接上。如果浏览器大小很小,则悬停在链接上会溢出。在任何分辨率或大小中,导航栏都会超出屏幕大小。如何解决这些问题,以便我的网站可以正确扩展。我不是最好的设计师,而且是更熟悉的后端Web开发。我正在使用类似vhvw%的测量来调整我的组件的大小。

fiddle

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;
}

3 个答案:

答案 0 :(得分:0)

问题是你的标记仅限于你的分辨率,即1366 X 768 您正在使用额外的填充而不使用border-box属性 如果您对浏览器的大小调整感到困扰,则不应使用高度,如果要为元素提供高度,请使用min-height属性。

看看下面的jsfiddle链接,你会对此有一个清晰的认识。

例如边框框属性

*{
    box-sizing:border-box;
}

http://jsfiddle.net/RockRathore/vew83g1x/1/

答案 1 :(得分:0)

如果您使用的是IE,VH和VW有时会出现问题并且无法正常工作。

所以我的建议是使用

“欺骗”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;
    }
}