CSS动态控制DIV居中
1.所谓的动态:就是即使手动去拖拉浏览器,DIV还是会自动居中
2.之前一直以为这个事情是JavaScript做的,
步骤:通过先获取页面的Height和Width,
然后定义DIV的Height和Width,
最后通过上面的值运算 DIV的top值 = (页面的Heght-Div的Height)/2
DIV的left值 = (页面的Width-Div的Width)/2
而且要想实现动态居中,还得在body中加上 onresize事件·····
总之很麻烦,很恶心,不过有一个优点,就是兼容绝大部分的浏览器
3. 后来查询资料发现,同样的动作居然用CSS也可以完成,而且更加简单,
对,没错,相当的简单易懂:
假设DIV控件的id是 popDiv:
#popDiv {
/*就是这个position:fixed起作用,生成相对定位的元素,相对于其正常位置进行定位。*/
position:fixed;
/*这里都是对外边距进行设置*/
margin:auto;
left:0;
right:0;
top:0;
bottom:0;
/*设置div的宽和高*/
width:400px;
height:280px;
/*设置超出范围后,就隐藏超出的部分*/
overflow: hidden;
/*设置边框*/
border: 2px solid #AEBBCA;
/*设置背景颜色*/
background-color: #EEF1F8;
/*设置鼠标的样式*/
cursor: move;
}
可以点击这里恶补以下position的知识:http://www.w3school.com.cn/cssref/pr_class_position.asp
优点:没错,就这样就可以实现我们的要求了,不仅居中,而且是动态居中
(不管是否有滚动条,或者拉动滚动条,或改变浏览器大小,这个div都始终居中显示在浏览器中)
缺点:不支持恐龙级别的古老神器IE6.0以下的浏览器
CSS动态控制DIV居中的更多相关文章
- CSS实现div居中
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- 用CSS控制DIV居中失效的解决方法
1.一般情况下DIV居中失效是因为没写DTD语句 在页面的最上方加上: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitiona ...
- css使div居中
每次想要使div居中都会设置position:absolute;,发现设置其他控件位置时会出现问题,所以采用以下办法: margin:0 auto;
- 如何通过CSS让DIV居中对齐
给Div对应的CSS的添加如下设定即可: MARGIN-RIGHT: auto; MARGIN-LEFT: auto;
- 【转】div居中代码 DIV水平居中显示CSS代码
原文地址:http://www.divcss5.com/rumen/r622.shtml 如何使用CSS让DIV居中显示,让div水平居中有哪些CSS样式呢? 需要的主要css代码有两个,一个为tex ...
- HTML CSS 中DIV内容居中汇总
转载博客(http://www.cnblogs.com/dearxinli/p/3865099.html) (备注:DIV居中情况,网上谈到也比较多,但是这篇文字,相对还是挺全面,现转载,如果冒犯,还 ...
- 【转】CSS中怎么让DIV居中
来源:http://www.cnblogs.com/DebugLZQ/archive/2011/08/09/2132381.html CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的 ...
- CSS中怎么让DIV居中(转载)
CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可 ...
- CSS中怎么让DIV居中
CSS 如何使DIV层水平居中 今天用CSS碰到个很棘手的问题,DIV本身没有定义自己居中的属性, 网上很多的方法都是介绍用上级的text-align: center然后嵌套一层DIV来解决问题. 可 ...
随机推荐
- 强制TFS用户与计算机(域)用户同步
默认情况下,添加到域AD组中的账户不会立刻同步到TFS中. TFS每小时与域控制器同步一次,将计算机安全组中的账户添加到TFS中. 但是可以通过下面几种方式强制TFS立刻同步域中的账户: 1. 在TF ...
- sql-修改每条数据的某一个字段的值
update B set B.maildata =(select SUBSTRING(maildata,0,3) from basedata where basedata.cid = B.cid)+( ...
- .net core 自制错误日志
前言 之前.net framework用的ErrorLog帮助类,对于监控错误形成日志,内容非常清晰,想在.net core2.2中继续用,但是有很多不一样的地方,所以想总结一下. 首先需要HttpC ...
- 在VC++中执行VBS代码
此代码来自https://blog.csdn.net/zhu2695/article/details/13770671 作者: zhu2695 时间:2013年10月31日 13:08:41 #i ...
- Android App的破解技术有哪些?如何防止反编译?
现在最流行的App破解技术大多是基于一定相关技术的基础:如一定阅读Java代码的能力.有一些Android基础.会使用eclipse的一些Android调试的相关工具以及了解一些smali的语法规范 ...
- Remoteland HDU - 4196
题意: 给出一个n,在[1, n] 中挑选几个不同的数相乘,求能的到的最大完全平方数 解析: 最大的肯定是n!, 然后n!不一定是完全平方数 (我们知道一个完全平方数,质因子分解后,所有质因子的质数均 ...
- JSONP前世今生及原理
https://blog.csdn.net/hansexploration/article/details/80314948 http://www.cnblogs.com/yuzhongwusan/a ...
- 446. Arithmetic Slices II - Subsequence
A sequence of numbers is called arithmetic if it consists of at least three elements and if the diff ...
- forword和重定向有什么区别?
一.forword 1.请求只能从同一个web中转发,当前应用之外的找不到. 2.地址栏不变. 3.共享request对象,请求链不断. 4.永久性跳转,最常用. 5.客户端方法功能跳转 二.重定向 ...
- LOJ#6038. 「雅礼集训 2017 Day5」远行(LCT)
题面 传送门 题解 要不是因为数组版的\(LCT\)跑得实在太慢我至于去学指针版的么--而且指针版的完全看不懂啊-- 首先有两个结论 1.与一个点距离最大的点为任意一条直径的两个端点之一 2.两棵树之 ...