将主体元素的宽度扩展到超出窗口的宽度

达斯科

我有一个页面,其中包含动态生成的表。该表的列数及其内容的宽度是在页面生成时确定的,但是可以足够大以使该表超过窗口的宽度。

发生这种情况时,body元素的宽度不会扩展为包含其内容,而是限制为窗口的宽度。这样,所有其他后代元素(表除外)的最大宽度也等于窗口的宽度:

__________________________ window bounds
| BODY ELEM              |
| ______________________ | 
| |     HEADER ELEM    | |
| |____________________| |
|                        |
| ______________________ |
| |      DIV#main      | |
| | __________________________________________________
| | |    ELEMENT WHICH IS WIDER THAN WINDOW          |
| | |________________________________________________|
| |____________________| |
|                        |
| ______________________ |
| |     FOOTER ELEM    | |
| |____________________| |
|________________________|

这意味着当水平滚动时,其他块级元素会过早停止(它们的背景色不会扩展,从而破坏了页面的外观)。

这是一个显示问题的jsFiddle注意结果窗口中的黄色块如何向右扩展,而棕色,白色和蓝色块却没有。

我正在寻找一种解决此问题的纯CSS方法。

我最不提出任何要求就不改变文档结构的方法是:

body {
  min-width: -webkit-min-content;
  min-width: -moz-min-content;
  min-width: min-content;
}

但是,IE根本不支持“最小内容”。是否有人对此问题有跨浏览器的纯CSS解决方案?

为了完整起见(以防人们看不到jsFiddle),下面是一些显示问题的代码:

<!DOCTYPE html>
<html>
  <head>
    <style type="text/css">

    * {margin:0;padding:0;}

    body {
        background-color: #888;
        /* Adding the two lines below fixes the problem for webkit and moz.  But IE does not support min-content.
        min-width: -webkit-min-content;
        min-width: -moz-min-content;
        */
    }

    header {
        background-color: #321;
    }

    header nav {
        padding: 10px;
        color: #FFF;
    }

    footer {
        padding: 10px;
        color: #ccc;
        background-color: #123;
    }

    #main {
        padding: 16px;
        background-color: #FFF;
    }

    #wideContent {
        background: #FF0;
        width: 4800px; /* In reality, this will vary at runtime, so I cannot set an explict width on the body */
    }

    table {
        border-collapse: separate;
        border-spacing: 0px;
        border-color: #808080;
        border-style: solid;
        border-width: 1px;
        border-bottom-width: 0;
        background-color: #FFF;
    }

    td, th {
        border-color: #808080;
        border-style: none;
        border-width: 0;
        border-bottom-style: solid;
        border-bottom-width: 1px;
        padding: 5px 10px;
        min-width: 100px;
    }

    </style>
  </head>
  <body>
    <header>
      <nav>Header</nav>
    </header>
    <div id="main">
      <div id="wideContent">
        <p>Content here will be a table with a very large number of columns.</p>
        <p>The content and width of the table is not known beforehand, so cannot be preset anywhere in CSS.</p>
      </div>
    </div>
    <footer>
      <p>Footer</p>
    </footer>
  </body>
</html>
伊克巴尔

我刚刚添加了以下CSS。而且有效。

body {
    float: left;
    min-width: 100%;
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将元素扩展到div的宽度

来自分类Dev

将元素扩展到div的宽度

来自分类Dev

将内联元素扩展到其自动宽度

来自分类Dev

可以宽度:自动将div扩展到超出屏幕宽度

来自分类Dev

可以宽度:自动将div扩展到超出屏幕宽度

来自分类Dev

网格元素未扩展到100%宽度

来自分类Dev

如何使用CSS将包装元素扩展到整个浏览器宽度?

来自分类Dev

段落元素在换行前将div扩展到最大宽度

来自分类Dev

CSS:将文本背景扩展到容器宽度

来自分类Dev

在 flex 容器中,如何防止 100% 宽度的图像扩展到主体尺寸?

来自分类Dev

将<hr>的宽度扩展到页面的宽度并更改锚标记的颜色

来自分类Dev

图像上的CSS3模糊滤镜扩展到超出原始宽度

来自分类Dev

CSS宽度限制为浏览器窗口的100%(不会扩展到右侧滚动区域)

来自分类Dev

CSS宽度限制为浏览器窗口的100%(不会扩展到右侧滚动区域)

来自分类Dev

使包含多列元素的div容器扩展到列的宽度

来自分类Dev

如何使弹性项目扩展到可用宽度,每行最多4个元素?

来自分类Dev

使包含多列元素的div容器扩展到列的宽度

来自分类Dev

如何在使用初始负载和抽动类时将引导程序组件(容器)扩展到整个窗口的宽度和高度?

来自分类Dev

移至下一行时,将图像扩展到容器宽度

来自分类Dev

将最后一个li扩展到ul的剩余宽度并正确对齐

来自分类Dev

将最后一个li扩展到ul的剩余宽度?

来自分类Dev

在容器div内时将div扩展到页面的整个宽度

来自分类Dev

将一行上的窗体框的总宽度扩展到100%

来自分类Dev

Bootstrap 3.3以特定宽度将col-lg-10扩展到col-lg-12

来自分类Dev

将jQuery垂直制表符内容区域扩展到整个页面宽度

来自分类Dev

我如何将微调框宽度扩展到布局中的第二项

来自分类Dev

如何将伪背景色扩展到中心容器之外而不是屏幕宽度?

来自分类Dev

CSS div扩展到整个浏览器宽度

来自分类Dev

如何使内联块表扩展到100%的宽度?

Related 相关文章

  1. 1

    将元素扩展到div的宽度

  2. 2

    将元素扩展到div的宽度

  3. 3

    将内联元素扩展到其自动宽度

  4. 4

    可以宽度:自动将div扩展到超出屏幕宽度

  5. 5

    可以宽度:自动将div扩展到超出屏幕宽度

  6. 6

    网格元素未扩展到100%宽度

  7. 7

    如何使用CSS将包装元素扩展到整个浏览器宽度?

  8. 8

    段落元素在换行前将div扩展到最大宽度

  9. 9

    CSS:将文本背景扩展到容器宽度

  10. 10

    在 flex 容器中,如何防止 100% 宽度的图像扩展到主体尺寸?

  11. 11

    将<hr>的宽度扩展到页面的宽度并更改锚标记的颜色

  12. 12

    图像上的CSS3模糊滤镜扩展到超出原始宽度

  13. 13

    CSS宽度限制为浏览器窗口的100%(不会扩展到右侧滚动区域)

  14. 14

    CSS宽度限制为浏览器窗口的100%(不会扩展到右侧滚动区域)

  15. 15

    使包含多列元素的div容器扩展到列的宽度

  16. 16

    如何使弹性项目扩展到可用宽度,每行最多4个元素?

  17. 17

    使包含多列元素的div容器扩展到列的宽度

  18. 18

    如何在使用初始负载和抽动类时将引导程序组件(容器)扩展到整个窗口的宽度和高度?

  19. 19

    移至下一行时,将图像扩展到容器宽度

  20. 20

    将最后一个li扩展到ul的剩余宽度并正确对齐

  21. 21

    将最后一个li扩展到ul的剩余宽度?

  22. 22

    在容器div内时将div扩展到页面的整个宽度

  23. 23

    将一行上的窗体框的总宽度扩展到100%

  24. 24

    Bootstrap 3.3以特定宽度将col-lg-10扩展到col-lg-12

  25. 25

    将jQuery垂直制表符内容区域扩展到整个页面宽度

  26. 26

    我如何将微调框宽度扩展到布局中的第二项

  27. 27

    如何将伪背景色扩展到中心容器之外而不是屏幕宽度?

  28. 28

    CSS div扩展到整个浏览器宽度

  29. 29

    如何使内联块表扩展到100%的宽度?

热门标签

归档