【问题标题】:DIV overflow:auto percentage width using content and not parent to set widthDIV 溢出:使用内容而不是父级设置宽度的自动百分比宽度
【发布时间】:2015-04-28 05:43:46
【问题描述】:

我有一个DIV,如下所示,并且以下类适用于它们。我希望包装器DIV 在必要时滚动并适合 100% 的屏幕宽度。我看到的问题是包装器DIV,当我将它设置为width: 100% 时使用的是内容的宽度而不是父级。

有问题的包装器 DIV 是 #pageContent_headingsWrapper。在智能手机的小视口上,width: 100% 在屏幕外扩展,使页面变得非常大。我不知道为什么。

有什么想法吗?

另外,我想要 pageContent_headings 中的一排水平框。为了让 inline-block 元素位于一条水平线上,我必须将 pageContent_headings 的宽度设置为 800 像素左右,然后让 pageContent_headingsWrapper 变为相同的宽度,而不是父级。

<div id="pageContentWrapper" class="default">
    <div id="pageContentWrapperCell">
        <div id="pageContent_headingsWrapper">
            <div id="pageContent_headings"></div>
        </div>
    <div id="pageContent_content"></div>
</div>
</div>

大视口的 CSS:

#pageContentWrapper.default {
    display: none; 
}

#pageContentWrapper.show { 
    display: table; 
    height: 100%;
    width: 100%;
    color: black; 
    font-family: 'Cloister Black';
}

#pageContentWrapperCell {
    display: table-cell;
    position: relative;
    height: 100%;
    width: 100%;
    vertical-align: middle;
    text-align: center;
}

#pageContent_headingsWrapper {
    position: relative;
    margin-bottom: -75px;
    text-align: center;
    border: red 1px solid;
}

.pageContent_headerBox {
    display: inline-block;
    height: 100px;
    width: 150px;
    background-color: white;
    margin: 10px;
    border: 2px #CCCCCC solid;
    color: black;
    cursor: hand;
    cursor: pointer;
}

.pageContent_headerBox_selected {
    display: inline-block;
    height: 100px;
    width: 150px;
    background-color: black;
    margin: 10px;
    border: 2px white solid;
    color: white;
    cursor: hand;
    cursor: pointer;
}

.pageContent_headerBox_label {
    color: inherit;
    font-size: 18pt; 
    margin: 0px;
    padding: 0px;
}

.pageContent_headerBox_price {
    color: inherit;
    font-size: 14pt;
    margin: 0px;
    padding: 0px;
}

#pageContent_title {
    width: 100%; 
    text-align: center; 
}

#pageContent_content {
    padding: 10px; 
    display: block; 
    min-height: 500px; 
    width: 75%; 
    margin: 15px auto; 
    background-color: white; 
    color: black; 
    font-family: 'Cloister Black';
    font-size: 14pt;
    text-align: center; 
    padding-top: 50px;
}

#pageContent_content p {
    margin: 0px;
    padding: 0px;
}

.pageContent_text {
    display: block;
    opacity: 1;
    position: relative;
    margin-top: 5px;
}

小视口的 CSS:

#pageContent_wrapper.show {
     margin-top: 30px;  
 }

#pageContent_headingsWrapper {
    height: 100px; 
    min-height: 100px;
    max-height: 100px;
    width: 100%;
    min-width: 200px;
    max-width: 100%
    text-align: center; 
    overflow: auto;  
}

#pageContent_headings {
    min-width: 250px;
    border: 1px green solid;
}

.pageContent_headerBox {
    display: inline-block;
    height: 100px;
    width: 150px;
    background-color: white;
    margin: 10px;
    border: 2px #CCCCCC solid;
    color: black;
    cursor: hand;
    cursor: pointer;
 }

.pageContent_headerBox_selected {
    display: inline-block;
    height: 100px;
    width: 150px;
    background-color: black;
    margin: 10px;
    border: 2px white solid;
    color: white;
    cursor: hand;
    cursor: pointer;
}

【问题讨论】:

  • 你能把它和一些示例内容一起放入 jsfiddle 吗?我不确定您的内容应该放在哪里才能重现问题。
  • 我很抱歉。 pageContent_headings 是我放置与此问题有关的标题内容的位置。其中我有一些大约 100 像素 x 150 像素的 DIV。我将它们水平排列成一行。
  • 我在测试时没有发现任何问题。您确定您的脚本中没有其他冲突导致额外空间吗?这是小提琴:jsfiddle.net/1hafdgh3

标签: css width


【解决方案1】:

使用 width:auto 代替 width:100%

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 2019-06-28
    • 2017-09-01
    • 2013-03-13
    • 1970-01-01
    • 2019-01-11
    • 1970-01-01
    相关资源
    最近更新 更多