Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript DocType导致div过高(未执行页边距顶部)_Javascript_Html_Css_Internet Explorer - Fatal编程技术网

Javascript DocType导致div过高(未执行页边距顶部)

Javascript DocType导致div过高(未执行页边距顶部),javascript,html,css,internet-explorer,Javascript,Html,Css,Internet Explorer,我在HTML文档中使用了特定的DocType,以确保IE呈现Arial的方式与Firefox、Chrome和Safari相同 我的问题:由于这个特定的doctype,它会导致一些div坐得比它们应该坐的高(y轴)。这只发生在IE中。你知道我能做些什么来解决这个问题吗?可能是CSS重置或IE黑客 我正在使用的导致此错误的doctype是: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 我之所以使用这

我在HTML文档中使用了特定的DocType,以确保IE呈现Arial的方式与Firefox、Chrome和Safari相同

我的问题:由于这个特定的doctype,它会导致一些div坐得比它们应该坐的高(y轴)。这只发生在IE中。你知道我能做些什么来解决这个问题吗?可能是CSS重置或IE黑客

我正在使用的导致此错误的doctype是:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

我之所以使用这种doctype,是因为它使IE显示的Arial文本与其他浏览器的字体相同(否则就不同),但它也会使div放得太高

  • 使用HTML5 doctype:
    。doctype只是用来防止怪癖模式(而不是修复所有的不一致)。DTD设置要使用的HTML(HTML4、XHTML等),并告诉浏览器标记的有效性。HTML5 doctype中不使用DTD

  • 确保
    
    
  • 使用HTML5 doctype:
    。doctype只是用来防止怪癖模式(而不是修复所有的不一致)。DTD设置要使用的HTML(HTML4、XHTML等),并告诉浏览器标记的有效性。HTML5 doctype中不使用DTD

  • 确保此doctype之前没有空格:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    
    
    IE中的原因

    我在HTML文档中使用特定的DocType来确保IE 以与Firefox、Chrome和Safari相同的方式呈现Arial

    您应该让IE9使用(这是“不同的”文本呈现技术)。IE9(标准模式)和Firefox之间的文本呈现应该非常相似。如果不是,那就是出了问题

    如果您坚持让IE9使用GDI文本呈现,那么有一个比通过古老的doctype强制使用怪癖模式更好的解决方案

    您应该使用触发标准模式的任何doctype,例如HTML5 doctype:

    <!DOCTYPE html>
    
    
    
    然后,您应该在
    中添加此meta标记,以强制IE与IE8一样工作,并完成GDI文本呈现:

    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    
    
    
    这样,IE将使用IE8模式,这是从怪癖模式(即IE5.5)的一个重大改进

    我已经暗示过这一点,但我必须明确地说:请不要为了避免DirectWrite而强制使用IE8模式。相反,接受IE9新的和改进的文本呈现

    此doctype:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    
    
    IE中的原因

    我在HTML文档中使用特定的DocType来确保IE 以与Firefox、Chrome和Safari相同的方式呈现Arial

    您应该让IE9使用(这是“不同的”文本呈现技术)。IE9(标准模式)和Firefox之间的文本呈现应该非常相似。如果不是,那就是出了问题

    如果您坚持让IE9使用GDI文本呈现,那么有一个比通过古老的doctype强制使用怪癖模式更好的解决方案

    您应该使用触发标准模式的任何doctype,例如HTML5 doctype:

    <!DOCTYPE html>
    
    
    
    然后,您应该在
    中添加此meta标记,以强制IE与IE8一样工作,并完成GDI文本呈现:

    <meta http-equiv="X-UA-Compatible" content="IE=8" />
    
    
    
    这样,IE将使用IE8模式,这是从怪癖模式(即IE5.5)的一个重大改进


    我已经暗示过这一点,但我必须明确地说:请不要为了避免DirectWrite而强制使用IE8模式。相反,接受IE9新的和改进的文本呈现

    未选择doctype对演示文稿产生影响。doctype用于将浏览器置于标准模式或非标准模式,是页面上的第一件事。您显示的doctype不适用于现代网页,因此不应使用。IE的任何问题都是由于它的缺陷而不是doctype。请参阅Joseph的回答。未选择doctype对演示文稿产生影响。doctype用于将浏览器置于标准模式或非标准模式,是页面上的第一件事。您显示的doctype不适用于现代网页,因此不应使用。IE的任何问题都是由于它的缺陷而不是doctype。见Joseph的回复。这里有一个相关的MSDN链接:这里有一个相关的MSDN链接: