weebox弹出窗口不居中显示?

简介: weebox弹出窗口不居中显示?

某些页面weebox弹出窗口不居中显示,某些页面又居中显示,弹出窗口的居中算法也OK,这是为什么呢?


一、解决办法


作为对你负责的态度,必须先告知你决绝办法。


在页面顶端加入以下代码:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


注意必须是这样的


<!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">
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<%@ include file="/components/common/jscsslib.jsp"%>
<head>


而不能是这样的



<html xmlns="http://www.w3.org/1999/xhtml">
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
<%@ include file="/components/common/taglib.jsp"%>
<%@ include file="/components/common/jscsslib.jsp"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<head>


二、错误分析


jquery weebox总结中介绍了weebox的基本使用方法,那么对于weebox弹出框不居中显示的原因,首先我们必须来先看看其setCenterPosition居中算法是否合理。


this.setCenterPosition = function() {
    var wnd = $(window), doc = $(document),
        pTop = doc.scrollTop(), pLeft = doc.scrollLeft(),
        minTop = pTop;  
    pTop += (wnd.height() - self.dh.height()) / 2;
    pTop = Math.max(pTop, minTop);
    pLeft += (wnd.width() - self.dh.width()) / 2;
    self.dh.css({top: pTop, left: pLeft});
}


发现算法还是非常ok的,不过请注意doc = $(document)。

前文我也告诉你了weebox不居中显示的解决办法,那么究竟原因关联在哪里呢?


声明必须是 HTML 文档的第一行,位于 标签之前。

声明不是 HTML 标签;它是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令。

在 HTML 4.01 中, 声明引用 DTD,因为 HTML 4.01 基于 SGML。DTD 规定了标记语言的规则,这样浏览器才能正确地呈现内容。

虽然这段话也并不能直接表明doctype和窗口居中之间的关系,但从解决办法中可以猜测到,如果不指定 ,那么窗口在计算document的宽高时就不是标准的像素值,这就间接的导致弹出窗口的x、y坐标没有定位准确。


相关文章
|
6月前
|
前端开发
css样式实现一个滑动按钮
css样式实现一个滑动按钮
57 0
|
前端开发 数据安全/隐私保护
网页|利用提示框(Tooltip)实现弹窗效果
网页|利用提示框(Tooltip)实现弹窗效果
581 0
|
Android开发 UED
完美解决android软键盘挡住输入框方法,还不顶标题栏
完美解决android软键盘挡住输入框方法,还不顶标题栏
1370 0
完美解决android软键盘挡住输入框方法,还不顶标题栏