`

table和div设置height:100%无效的完美解决方法

 
阅读更多

刚接触网页排版的新手,常出现这种情况:设置table和div的高height="100%"无效,使用CSS来设置height:"100%"也无效,为什么会这样呢?解决height:100%无效,table和div的解决方法并不相同。

首先说一下table,他比较容易解决,当我们使用Dreamweaver来制作网页,新建一张网页,通常在代码头部会有类似以下的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
没错,你猜对了,问题就出在这里,你试着把这短代码删除,然后再刷新一下网页,你就会看到所有table以你的设置height="100%"的展示!
这段代码是告诉浏览器你的网页是遵循什么标准的,如上面的“W3C”标准,删除掉一般是不影响的。
下面说一下div,div和table一样,如果要实现width:100%是很容易的,但要div的height:"100%",它就不大听话了,其实不是它不听话,是你不知道让它听话的方法。如下代码:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>测试</title>
</head>
<body>
<div style="height:100%"></div>
</body>
</html>
就算和Table一样去掉头部的那段代码也不能100%显示,原因很简单,你让div的height="100%",执行网页时,css先执行到,而整个网页中的内容还没有完全载入,是获取不到div外面的<body>等的高度的,所以height="100%"也就不能如愿显示了。加上
body{height:100%}
就轻松解决啦,一开始就让body以100%显示,他的下级div自然就100%的,不过对于FF浏览器还应该把HTML也先给height:100%,即
html,body{height:100%}

 

Html代码 复制代码 收藏代码
  1. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
  2. <html>
  3. <head>
  4. <title> New Document </title>
  5. <style type="text/css">
  6. html { height: 100%}
  7. body {height:100%;margin:0px;padding:0px}
  8. table{height: 100%;width: 100%;}
  9. </style>
  10. </head>
  11. <body>
  12. <table border=1>
  13. <tr>
  14. <td>
  15. <ul>
  16. <li>12
  17. <li>34
  18. </ul>
  19. </td>
  20. <td>
  21. <iframe name="" src="" width="100%" height="100%"></iframe>
  22. </td>
  23. </tr>
  24. </table>
  25. </body>
  26. </html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
 <head>
  <title> New Document </title>
  <style type="text/css">
    html { height: 100%}
    body {height:100%;margin:0px;padding:0px}
    table{height: 100%;width: 100%;}
  </style>
 </head>

 <body>
    <table border=1>
        <tr>
            <td>
                <ul>
                    <li>12
                    <li>34
                </ul>
            </td>
            <td>
                <iframe name="" src="" width="100%" height="100%"></iframe>
            </td>
        </tr>
    </table>
 </body>
</html>

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/majin_com/archive/2011/04/12/6318499.aspx

分享到:
评论

相关推荐

    vue中设置height:100%无效的问题及解决方法

    本文主要讨论了在Vue.js项目中遇到的设置height:100%无效的问题,分析了原因,并提供了一种通过CSS修改来解决此问题的可行方法。通过确保html和body元素具有合适的高度,可以使得Vue组件中的元素高度设置正确地工作...

    对未知高度的图片设置垂直居中的方法详解

    这种方法的一个弊端是在标准浏览器下不能使用margin属性,而且在IE8中设置边框无效。 方法二则是使用CSS Hack,即通过条件注释针对IE6/7进行特定的设置,而不影响标准浏览器。具体步骤如下: 1. 设置#box的display...

    div表格垂直居中.docx

    这种方法在其他浏览器中无效,但对于IE6+有良好的支持。 ```css .middle-demo-4 { height: 300px; position: relative; } .middle-demo-4 div { position: absolute; top: 50%; left: 0; } .middle-demo-...

    解决layui表格的表头不滚动的问题

    为了解决这个问题,我们可以采用一种分层的方法,将表头和内容分开处理。 步骤如下: 1. 创建两个 table 元素。第一个 table 只包含表头(thead),没有表体(tbody)。这样做是为了让表头保持固定,不随滚动条...

    网页设计中的常见问题及其解决方法(div+css)

    网页设计中的常见问题及其解决方法(div+css) 本文总结了网页设计中的一些常见问题及其解决方法,共32个条目,希望对新手学习网页设计有帮助。 一、ul 标签在 Mozilla 中默认是有 padding 值的,而在 IE 中只有 ...

    移动端android上line-height不居中的问题的解决

    3. **设置`line-height`为0,使用`padding`撑开元素**:理论上,这种方法可以让元素内容垂直居中,但在实际测试中可能无效。 作者提出的解决方法是利用`display: table-cell`,结合`text-align: center`和`vertical...

    css实现的让图片垂直居中的方法

    外部容器依旧设置`display:table-cell`,辅助元素`&lt;i&gt;`的`height`设置为`100%`,并使用`vertical-align:middle`使其居中,图片则保持默认样式。 HTML结构: ```html &lt;div id="box"&gt; &lt;i&gt;&lt;/i&gt; &lt;/div&gt; ``` CSS样式...

    关于学习DIV CSS的一些精妙问答

    然而,这种方法在IE中可能无效,因此可能需要针对IE使用其他技术,如`display: table`或`display: flex`。 掌握这些CSS技巧和解决常见问题的方法对于提升网页布局和设计的效率至关重要。随着技术的发展,一些问题在...

    Div+CSS布局居中.docx

    【Div+CSS布局居中】是网页设计中常见的需求,主要涉及到CSS的布局技术,特别是元素的居中对齐方式。...对于垂直居中,也有类似的各种方法,例如使用`line-height`、`display: table-cell`、`flexbox`或`grid`布局等。

    JavaScript Table行定位效果

    给tr设置relative后就能相对table定位了,看来很简单啊,但问题是这个方法ie8和ff都无效,而且存在很多问题,所以很快就被抛弃了。 ps:该效果用来做tr的拖动会很方便。 接着想到的是给table插入一个新tr,克隆原来...

    左定宽度右自适应宽度并且等高布局实现代码

    这个方法在主要内容区域中再嵌套一个`&lt;div&gt;`,并设置负边距。左侧栏依然浮动,但增加一个负的`margin-right`,使得主要内容区域可以占据整个宽度。主要内容内部的`&lt;div&gt;`设置`margin-left`等于左侧栏的宽度。例如:...

    CSS垂直居中网页布局实现的5种方法.pdf

    这种方法通过将外层`&lt;div&gt;`的`display`属性设置为`table`,内层`&lt;div&gt;`的`display`属性设置为`table-cell`,并使用`vertical-align: middle;`来实现垂直居中。优点是内容高度可变,无需预先设定。但遗憾的是,此方法...

    web前端面试题.pdf

    块级元素包括div、p、h1-h6、form、ul、dl、ol、table等,可以设置宽高,独占一行。 4. 行内元素和块级元素的区别 行内元素不能设置宽高,不独占一行,而块级元素可以设置宽高,独占一行。 5. 让行内元素跟上面的...

    背景图片自动调整大小

    然而,在某些情况下,如父级元素设置了`position: absolute`时,这种方法可能无效。此时,建议使用其他布局技巧来规避该问题。 2. **跨浏览器兼容性** 对于非IE浏览器,可以通过CSS3的`background-size`属性实现...

    jQuery详细教程

    jQuery 使用名为 noConflict() 的方法来解决该问题。 var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。 亲自试一试 结论 由于 jQuery 是为处理 HTML 事件而特别设计的,那么当您遵循...

    CSS中如何把Span标签设置为固定宽度.pdf

    首先,让我们了解为何直接给Span标签设置width属性无效。这是因为按照CSS标准,对于inline元素,width和height属性是不被考虑的。它们只适用于block-level元素或具有display属性设置为inline-block或table-cell的...

    使用Element的InfiniteScroll 无限滚动组件报错的解决

    在本文中,我们将探讨如何解决使用Element UI库中的InfiniteScroll无限滚动组件时遇到的错误。Element UI是一款流行的Vue.js组件库,提供了许多实用的UI组件,其中包括用于实现无限滚动效果的InfiniteScroll组件。...

Global site tag (gtag.js) - Google Analytics