CSS高度100%不起作用[重复]

Posted

技术标签:

【中文标题】CSS高度100%不起作用[重复]【英文标题】:CSS height 100% percent not working [duplicate] 【发布时间】:2014-02-16 21:32:02 【问题描述】:

我有一个带有height: 100%; 的 div,但它不起作用。当我声明一个固定高度(例如height: 600px;)时,它正在工作,但我想要一个响应式设计。

html:

<blink><div class="row-fluid split-pane fixed-left" style="position: relative; height: 78%;">
    <div class="split-pane-component" style="position: relative; width: 50em;">
        <div style="">
            <ul class="nav nav-tabs">
                <li class="active"><a href="#html" data-toggle="tab">Html</a></li>
                <li><a href="#helpers" data-toggle="tab">Helpers</a></li>
            </ul>

            <div class="tab-content">
                <div class="tab-pane active" id="html" style="height: 100%;">
                    <textarea id="htmlArea" style="height: 100%;">:html</textarea>
                </div>
                <div class="tab-pane" id="helpers" style="height: 100%;">
                    <textarea id="helpersArea">:helpers</textarea>
                </div>
            </div>
        </div>
    </div>
    <div class="split-pane-divider" id="my-divider" style="left: 50em; width: 5px;"></div>
    <div class="split-pane-component" style="left: 50em; margin-left: 5px;">
        <div style="">
            <ul class="nav nav-tabs">
                <li>
                    <a href="#" class="active">Preview
                    <img   class="preview-loader" src="img/spinner-green2.gif" style="display: none" />
                    </a>
                </li>
            </ul>

            <div class="tab-content">
                <div class="tab-pane active" style="height: 100%;">
                    <iframe name="previewFrame" frameborder="0" allowtransparency="true" allowfullscreen="true" style="width: 100%; height: 100%;"></iframe>
                </div>
            </div>
        </div>
    </div>
</div>
</blink>

【问题讨论】:

iframe 没有自动高度。您必须使用 javascript 获取它并定义它。如果您希望它响应,您可以使用窗口调整大小功能 Origin of the blink tag 【参考方案1】:

您可能需要为height:100% 声明下面的代码才能为您的 div 工作

html, body margin:0;padding:0;height:100%;

小提琴:http://jsfiddle.net/5KYC3/

【讨论】:

这对我有用。【参考方案2】:

您没有指定 html 的“高度”。当您在元素(即 div)中分配百分比时,css 编译器需要知道父元素的大小。如果您不指定它,您应该会看到没有高度的 div。

最常见的解决方案是在css中设置如下属性:

html
    height: 100%;
    margin: 0;
    padding: 0;

你是在对 html 标签(html 是所有 html 元素的父级)说“获取 HTML 文档中的所有高度”

希望对你有所帮助。干杯

【讨论】:

如何分配元素相对于页面高度的高度?【参考方案3】:

我会说你有两个选择:

    获取所有父 div 样式为 100% 高度(包括正文和 html)

    为父 div 之一使用绝对定位(例如 #content),然后将所有子 div 设置为高度 100%

【讨论】:

位置固定也可以。【参考方案4】:

将包含的元素/div 设置为高度。否则,您要求浏览器将高度设置为未知值的 100%,但它不能。

更多信息在这里:http://webdesign.about.com/od/csstutorials/f/set-css-height-100-percent.htm

【讨论】:

这不是未知的,浏览器已经计算了每个元素的值。这不是未知的【参考方案5】:

我认为您需要确保所有高于 100% 高度 div 的容器 div 标签也设置了 100% 高度,包括 body 标签和 html。

【讨论】:

【参考方案6】:

有关代码镜像 div,请参阅手册,这些部分可能对您有用:

http://codemirror.net/demo/fullscreen.html

var editor = CodeMirror.fromTextArea(document.getElementById("code"), 
  lineNumbers: true,
  theme: "night",
  extraKeys: 
    "F11": function(cm) 
      cm.setOption("fullScreen", !cm.getOption("fullScreen"));
    ,
    "Esc": function(cm) 
      if (cm.getOption("fullScreen")) cm.setOption("fullScreen", false);
    
  
);

还可以看看:

http://codemirror.net/demo/resize.html

还有一条评论:

内联样式很糟糕,你应该不惜一切代价避免这种情况,这不仅会让你感到困惑,而且是一种糟糕的做法。

【讨论】:

【参考方案7】:

夜的答案是正确的

 html, body margin:0;padding:0;height:100%;

还要检查您的 div 或元素是否不在另一个中(高度小于 100%) 希望这对其他人有帮助。

【讨论】:

答案是正确的。 html, body 必须是高度 100%。您想要的 div 必须是 100% + body 和您要设置的 div 之间的所有父母。

以上是关于CSS高度100%不起作用[重复]的主要内容,如果未能解决你的问题,请参考以下文章

Css过渡高度使用javascript不起作用[重复]

CSS不透明度背景颜色和文本不起作用[重复]

CSS背景图像宽度100%高度自动[重复]

图像上的 CSS 过渡不起作用

元素上的悬停效果在 CSS 中不起作用 [重复]

在css中height:100%;不起作用!