我编写的代码中有两个问题我不确定如何解决:
页面在 Google Chrome 上的外观
当我放大和缩小时,我的两列div
s 不会一起缩放。
如果我放大超过一定数量,div
他们会破坏他们的容器并完全扭曲网页。
这是任何想要查看它的人的相关 HTML 和 CSS 代码的小提琴。
当用户放大或缩小时,我希望 div 的位置可以放大或缩小。
编辑:直到第 130 行是描述我为此页面编码的元素的相关 CSS 标记,其余的 CSS 来自 Bootstrap 并且与此无关(与此问题有关)
我编写的代码中有两个问题我不确定如何解决:
页面在 Google Chrome 上的外观
当我放大和缩小时,我的两列div
s 不会一起缩放。
如果我放大超过一定数量,div
他们会破坏他们的容器并完全扭曲网页。
这是任何想要查看它的人的相关 HTML 和 CSS 代码的小提琴。
当用户放大或缩小时,我希望 div 的位置可以放大或缩小。
编辑:直到第 130 行是描述我为此页面编码的元素的相关 CSS 标记,其余的 CSS 来自 Bootstrap 并且与此无关(与此问题有关)
你想要的效果是什么?当他们放大时,就好像整个页面都被缩放了?或者您希望背景等保持静态并且只放大前景内容?
除此之外,您可以禁用比例,以便永远不会发生这些类型的扭曲:
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
坏消息是破坏设计的不是缩放,而是浏览器尺寸的变化。
尝试将缩放设置为 50%,然后将浏览器窗口更改为一半大小。你的显示又是正确的,不是吗?
现在将缩放保持在 100%,只需更改浏览器尺寸。无论如何它都会破裂,不是吗?
当您在尺寸中混合像素和百分比时,您的布局高度依赖于浏览器的大小。为避免这种情况,您可以仅使用像素,或仅使用 %,但不能混合使用。(或者在你混合它们的地方很好地混合控制!)
当您放大并且不更改浏览器尺寸时,就像您将浏览器尺寸变小(根据新的缩放系数)
为此,您必须为 div 的宽度或容器宽度分配一个值。像这样:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<style>
body{
font-size:36px;
font-family:Arial, Helvetica, sans-serif;
}
.mega_cont{
margin:0 auto;
padding-top:10%;
width:710px;
}
.super_cont_lhs{
float:left;
width:300px;
margin-right:5px;
}
.cont1{
width:100%;
float:left;
height:auto;
background-color:#000;
margin-bottom:10px;
color:#CCC;
}
.cont2{
width:100%;
float:left;
height:auto;
background-color:#000;
color:#CCC;
}
.super_cont_rhs{
width:400px;
float:left;
height:auto;
background-color:#F60;
}
</style>
</head>
<body>
<div class="mega_cont">
<div class="super_cont_lhs">
<div class="cont1">P - S P E C T R A</div>
<div class="cont2">B E G I N</div>
</div>
<div class="super_cont_rhs">
P-Spectra enables practicing engineers to design seismic retrofit solutions with supplemental dampers using performance based design.
</div>
</div>
</body>
</html>
你必须设计液体页面。使页面具有响应性,您的上述问题就会消失。同样对于响应式设计页面,最好使用引导程序。Bootstrap 将使您轻松进行响应式设计。这是下载引导程序所有使用说明的链接... http://twitter.github.io/bootstrap/
您正在寻找响应式设计。
基本上,将其设为两列而不是 3 个定位块。摆脱所有显式width
s,并失去绝对定位。然后设置display:inline-block
(或@ShannonHochkins 说你可以使用float:left
。我只是更喜欢内联块)和基于 % 的宽度。
来吧:http: //jsfiddle.net/daCrosby/Dtcrn/1/
我删除了很多额外的代码(<head>
,<script>
等) - 这不是您网站上的额外代码,它只是让 jsFiddle 更干净。
这是一个简单的示例,说明如何 mae 2 列:
HTML
<div id="nav_bar">
[ ... ]
</div>
<div id="about_block">
[ ... ]
</div>
CSS
#nav_bar,
#about_block{
display:inline-block;
vertical-align:top;
margin-left:-4px;
width:25%;
}
#about_block{
width:75%;
}