某些頁面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坐標沒有定位準確。
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持錯新站長站。
新聞熱點
疑難解答
圖片精選