gpt4 book ai didi

html - 将正文元素宽度扩展到超出窗口宽度

转载 作者:太空狗 更新时间:2023-10-29 13:25:45 25 4
gpt4 key购买 nike

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

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

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

这意味着当水平滚动时,其他 block 级元素会提前停止(它们的背景颜色不会扩展,破坏页面的外观)。

Here is a jsFiddle showing the problem .请注意结果窗口中的黄色 block 如何向右扩展,但棕色、白色和蓝色 block 不会。

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

我最接近的完全没有改变文档结构的是:

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

但是,IE 根本不支持“min-content”。有没有人有跨浏览器的纯 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%;
}

关于html - 将正文元素宽度扩展到超出窗口宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22301513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com