什么可以阻止位置:相对;左:0;右:200px;从影响元素的宽度?

时间:2016-11-02 21:59:22

标签: javascript html css

鼓励改善此问题的建议。我会更新这个问题,以便更准确地解释导致问题的原因,一旦我们弄清楚是什么原因导致它帮助那些具有类似DOM结构的人。

目标:获取内容div从面板左侧延伸到200px宽的固定宽度按钮的边缘。

<div class="container" style="left:0; right:0; margin-bottom: 10px; height: 65px; display: block;">
    <div class="panel" style="width:100%; display: block;">
        <div class="contents" style="display:inline-block; position:relative; left: 0px; right: 200px;">
            <div class="buttonTextAndCounterContainer" style="width:100%; display:block">
                <div class="button" style="float:left; display:none;"></div>
                <div class="textAndCounterContainer" style="display:block;">
                    <div class="counter" style="float:right; display:block;"></div>
                    <div class="text" style="width:100%; position:relative; left:0px; vertical-align:top; display:inline-block;"></div>
                </div>
            </div>
        </div>
        <div class="fixedWidthButtons" style="display:inline-block; float:right;"></div>
    </div>
</div>

我看到了一些如何以这种方式设置宽度的示例,但很少有解释什么可以阻止它工作。

我的HTML中有一些元素正确地响应css,即使用position: absolute; left: 0; right: 200px;设置宽度但是,我有一个div,它只是不会对左右两个都做出响应。我似乎能够将它设置为左或右,但如果两者都设置了,它似乎只根据左值计算它的位置。

  • 我没有在任何地方设置div的宽度 - 我试过设置width: auto;
    - 我试过设置position: absolute;
    - 我已尝试leftright的各种值我没有使用变量
  • 我没有尝试将div放在中心位置,我想以这种方式设置它的宽度(具体来说,我可以定义它的宽度,以便它可以占用它'&#39;整个父母减去一些其他可能存在或不存在的具有固定宽度的div,父母的宽度是可变的)
  • div嵌套在其他几个图层的深处,父容器中是否有可能导致此行为的设置?如果是这样,可能会阻止它?
  • 我在创建元素之后在Javascript中设置了css但是在它被添加到容器之前,我不认为这是一个时间问题,但它可能是相关的。
  • 是否存在可能会干扰的特定父元素?
  • 是否存在可能会继承的可能会干扰的样式?

有哪些可能导致此css无法设置元素宽度的情况?

以下是我调查过的一些资源,其中没有一个似乎可以解决我的问题,但您可能对它们感兴趣:
最相关:
http://alistapart.com/article/conflictingabsolutepositions
https://www.sitepoint.com/css-sizing-absolute-position/

与尺寸不太相关,更多关于定位:
http://learn.shayhowe.com/advanced-html-css/detailed-css-positioning/
http://blog.teamtreehouse.com/css-positioning
https://css-tricks.com/absolute-relative-fixed-positioining-how-do-they-differ/
https://css-tricks.com/centering-css-complete-guide/
CSS positioning to fill container: width vs. left/right?

1 个答案:

答案 0 :(得分:0)

解决方案:

要仅使用左和右设置div的宽度,必须设置div的位置:absolute;

来源:http://alistapart.com/article/conflictingabsolutepositions