css通用小笔记03——浏览器窗口变小 div错位的问题
我最近写网页的时候,经常碰到一个普遍的问题,经过我的查阅和尝试,终于解决了这一问题,这里有两种方法提供给大家,如果博友还有更好的方法,欢迎补充。
一.使用min-width属性:
我们先看看下面这段代码(html):
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>无标题文档</title>
<meta charset="utf-8" />
<style type="text/css">
body {margin: 0px;padding:0px;}
.top {width: 100%; height: 60px;background: green;}
.nav {width: 1000px;height: 60px;border: 2px solid red;margin: 0 auto;}
.nav p {width: 1000px;height: 60px; text-align: center;}
</style>
</head>
<body>
<div class="top">
<div class="nav"><p>这是导航区域</p></div>
</div>
</body>
</html>
浏览器全屏时显示如下(显示正常):
如果有人问nav区域设置高度同样为60px;为什么红色的边框超出了高度,那是因为边框设置了2px,所以总高度多了4个像素,所以超出了范围。要想要不超出,所以需要在nav区域的高度上减去4个像素。

图1 浏览器窗口全屏显示
当我们把浏览器窗口变小时,我们会发现,这时候就会有问题出现了,如下图:

图2 浏览器变小,显示错误
为什么会出现这样错位的问题呢?我们来分析一下。首先要知道,top区域宽度100%,是相对于浏览器来说的。就上图而言,这里有个等式:红色边框宽度(nav) = 绿色区域(top)+空白区域。当浏览器窗口变小,而且浏览器的宽度小于nav区域的1000px时,当我们把下面的滚动条拉到最右边时,发现出了错。那我们应该怎么来修改这个错误,就用到了min-width属性,意思是最小宽度。
把此属性加到top区域里面: .top {min-width: 1000px; width: 100%; height: 60px;background: green;},其他代码不变。在运行一下,如下图所示:

图3 加了min-width ,浏览器变小,显示正常
从上图可以看出,滚动条拉倒最右边,也出现了正确的情况。绿色填充到了nav区域。所以问题得到了解决。为什么问题会得到解决呢?
答:top区域加了min-width属性,设置为1000px,意思是top区域的最小宽度为1000px,所以当浏览器窗口变小到小于1000时,top的宽度为1000px,而nav的宽度也是1000px,所以就刚好完全显示,不会出错了。
二.现在我们讲解第二种方法,用图片填充整个背景。
代码如下:
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>无标题文档</title>
<meta charset="utf-8" />
<style type="text/css">
body {margin: 0px;padding:0px;background:url(4.jpg) repeat;}/*使用图片填充整个body*/
.nav {width: 1000px;height: 60px;border: 2px solid red;margin: 0 auto;}
.nav p {width: 1000px;height: 60px; text-align: center;}
</style>
</head>
<body>
<div class="top">
<div class="nav"><p>这是导航区域</p></div>
</div>
</body>
</html>
使用图片重复填充整个body之后,再添加导航区域nav居中显示,浏览器窗口变小的时候显示如下:

图4 使用图片填充body,显示正常。
从上图我们发现,滚动条拉倒右边,还是显示正常,也就是问题已经得到了解决。
但是有同学可能会问,如果选择这种方法,背景不是我想要的效果怎么样?
答:做项目的时候,都是给一张psd图片,你用ps从网页上面直到最下面切一张包含整个body颜色的小图,用来填充body就好了。以后创建的div再设置背景色会覆盖掉body色,所以完全没有影响。
这是本人自己想到的两种方法,个人觉得第二种还比较方便。如果还有其他的方法,欢迎大家补充!
css通用小笔记03——浏览器窗口变小 div错位的问题的更多相关文章
- 解决FileExplorer窗口变小问题
3.解决FileExplorer窗口变小问题 须在$HOME/.vimrc中添加: "解决FileExplorer窗口变小问题 let g:bufExplorerMaxHeight=30 l ...
- 兼容浏览器 div固定浏览器窗口底部 浮动div
css内容: <style type="text/css"> #ken_BB { padding-right:30px; text-align: center; col ...
- SpannableString 转换局部字体大小,但在EditText测量之前设置内容,测量高度为,字体变小之前的高度
public void setHint(@NonNull String hint, @Nullable CharSequence subHint) { this.hint = hint; if (su ...
- 用css实现一个空心圆,并始终放置在浏览器窗口左下角
用css实现一个空心圆,并始终放置在浏览器窗口左下角 div{ position:fixed; bottom:0; ...
- 用css 添加手状样式,鼠标移上去变小手,变小手
用css 添加手状样式,鼠标移上去变小手,变小手 cursor:pointer; 用JS使鼠标变小手onmouseover(鼠标越过的时候) onmouseover="this.style. ...
- JQ方法实用案例///鼠标移动到div和修改ipt中弹窗、CSS鼠标变小手、JQ获取元素属性、JQ选择器
今天学习了jQ,jQ对js的帮助很大,菜鸟教程上也有属性.可以查看 js 和 jquery主要的区别 在 dom 想用jquery 必须先引入(顺序问题) 先css 再js: ...
- 用css 添加手状样式,鼠标移上去变小手
用css 添加手状样式,鼠标移上去变小手,变小手 用css 添加手状样式,鼠标移上去变小手,变小手 cursor:pointer; 用JS使鼠标变小手onmouseover(鼠标越过的时候) onmo ...
- js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动)
本文为大家详细介绍下使用js实现遮罩弹出层居中,且随浏览器窗口滚动条滚动,示例代码如下,感兴趣的朋友可以参考下, js+css 实现遮罩居中弹出层(随浏览器窗口滚动条滚动) 下面看看我的原始代码: & ...
- Javascript进阶篇——(DOM—节点---获取浏览器窗口可视区域大小+获取网页尺寸)—笔记整理
浏览器窗口可视区域大小获得浏览器窗口的尺寸(浏览器的视口,不包括工具栏和滚动条)的方法:一.对于IE9+.Chrome.Firefox.Opera 以及 Safari: • window.innerH ...
随机推荐
- CentOS安装运行NodeJS框架Express
安装依赖包 yum -y install gcc make gcc-c++ openssl-devel wget 下载/解压NodeJs wget http://nodejs.org/dist/v0. ...
- Linux RHCS 基础维护命令
本文只是介绍Linux RHCS最基本的一些维护命令,属于DBA应该了解的层面. 查看集群状态 集群正常启动 集群正常关闭 查看服务是否关闭开机启动 1. 查看集群状态 clustat cman_to ...
- 解决gradle /Users/xxxx/Documents/workspace/fontmanager/.gradle/2.2.1/taskArtifacts/cache.properties (No such file or directory)报错办法
git 上down下项目后,发现Android Studio报错: What went wrong: java.io.FileNotFoundException: /Users/raomengyang ...
- asp.net App_Code文件夹相关操作
最近用到了App_Code文件夹,想要实现动态编译文件的方式,即替换文件夹中的类文件从而达到实时修改代码的效果,类似web.config,网上查到的资料基本都是把文件夹中的类文件修改属性为" ...
- Halcon编程-基于纹理的mara检测
表面瑕疵检测是机器视觉领域非常重要的一个应用.机器视觉是集光学.机电和计算机三个领域的一门不算新的技术.但目前表面瑕疵检测在学界主要是计算机专业或者控制专业瞄准图像处理方向在做,而视觉光学系统这一块主 ...
- js基础篇——原型与原型链的详细理解
js中的对象分为两种:普通对象object和函数对象function. function fn1(){}; var fn2 = function(){}; var fn3 = new Function ...
- 阅读《LEARNING HARD C#学习笔记》知识点总结与摘要三
最近工作较忙,手上有几个项目等着我独立开发设计,所以平时工作日的时候没有太多时间,下班累了就不想动,也就周末有点时间,今天我花了一个下午的时间来继续总结与整理书中要点,在整理的过程中,发现了书中的一些 ...
- [Asp.net 5] Configuration-新一代的配置文件(ConfigurationSource的多种实现)
关于配置文件的目录:[Asp.net 5] Configuration-新一代的配置文件 在前面我们介绍了,系统中用IConfigurationSource表示不同配置文件的来源,起到读取.设置.加载 ...
- Socket开发框架之框架设计及分析
虽然在APP应用.Web应用.Winform应用等大趋势下,越来越多的企业趋向于这些应用系统开发,但是Socket的应用在某些场合是很必要的,如一些停车场终端设备的接入,农业或者水利.压力监测方面的设 ...
- android布局属性详解
RelativeLayout用到的一些重要的属性: 第一类:属性值为true或false android:layout_centerHrizontal 水平居中 android:layout_cen ...