Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/90.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
HTML5/CSS全高布局_Css_Html_Layout_Alignment - Fatal编程技术网

HTML5/CSS全高布局

HTML5/CSS全高布局,css,html,layout,alignment,Css,Html,Layout,Alignment,好的,这是我的基本网站结构: <body> <div id="wrapper"> <header><a href="/"> </a></header> <nav> <ul> <li><a href="...">...</a></li>

好的,这是我的基本网站结构:

<body>
    <div id="wrapper">
        <header><a href="/"> </a></header>
        <nav>
            <ul>
                <li><a href="...">...</a></li>
                <li><a href="...">...</a></li>
                <li><a href="...">...</a></li>
            </ul>
        </nav>
        <div id="content"></div>
        <footer><a href="/"> </a></footer>
    </div>
</body>
这就是我想要实现的(最好不要使用javascript黑客):

  • 页眉和页脚高度由其内容大小决定
  • div#content
    的最小高度应为X像素,但如果不这样做,则应尽可能扩展页面内容
  • div#wrapper
    应该拉伸以填充整个视口高度,而
    div#content
    是拉伸以填充的灵活部分
  • 我正试图以尽可能多的浏览器为目标,但我并没有真正做到完全的跨浏览器兼容性。让我们去死吧
  • 我得到了一个奇怪的结果:

    正如你所看到的,包装不是拉伸来填充浏览器视口,因此,页脚(底部的黑条)浮动在页面的中间。


    你能帮帮我吗?

    css3附带了一个高度和宽度单位,很多人并不真正使用或了解它。vw和vh,表示视口宽度和视口高度。你应该使用它们。如果你想让你的一个div达到全高,那么设置高度:100vh,如果它是一个图像,并且你不想它被垂直挤压,则设置宽度:auto。我经常使用大众和vh。vw最大,甚至是字体大小我将使用字体大小:2vw或类似的,1.6或另一个小数点,这样无论设备的宽度是多少,它将始终是2个视口宽度(2vw)。玩转它,你会找到正确的尺寸。将页脚和导航设置为vh或vw,它们将与您使用的任何设备成比例。

    css3中有一个高度和宽度单位,许多人并不真正使用或了解。vw和vh,表示视口宽度和视口高度。你应该使用它们。如果你想让你的一个div达到全高,那么设置高度:100vh,如果它是一个图像,并且你不想它被垂直挤压,则设置宽度:auto。我经常使用大众和vh。vw最大,甚至是字体大小我将使用字体大小:2vw或类似的,1.6或另一个小数点,这样无论设备的宽度是多少,它将始终是2个视口宽度(2vw)。玩转它,你会找到正确的尺寸。将页脚和导航设置为vh或vw,它们将与您使用的任何设备成比例。

    代码>显示:flex是当今最简单的问题(此外,它看起来很像这个问题)

    html
    {
    字体大小:100%;
    身高:100%;
    线高:1.4;
    溢出y:滚动;
    }
    身体
    {
    背景:#EEE url(“../images/background.png”)重复-y中心固定;
    颜色:#333;
    身高:100%;
    字体:1em“Lato-Regular”;
    保证金:0;
    填充:0;
    }
    #包装纸
    {
    身高:100%;
    保证金:0自动;
    宽度:960px;
    显示器:flex;
    弯曲方向:柱
    }
    #内容
    {
    弹性:1;
    利润率:20px0;
    /*溢出:自动;添加此选项,它将在需要时显示一个滚动条,并且不会向下推页脚*/
    }
    页脚{
    背景:浅灰色;
    /*无需设置任何高度,最终为最小高度*/
    
    

    display:flex;
    是现在最容易的事情(而且看起来很像这个问题)

    html
    {
    字体大小:100%;
    身高:100%;
    线高:1.4;
    溢出y:滚动;
    }
    身体
    {
    背景:#EEE url(“../images/background.png”)重复-y中心固定;
    颜色:#333;
    身高:100%;
    字体:1em“Lato-Regular”;
    保证金:0;
    填充:0;
    }
    #包装纸
    {
    身高:100%;
    保证金:0自动;
    宽度:960px;
    显示器:flex;
    弯曲方向:柱
    }
    #内容
    {
    弹性:1;
    利润率:20px0;
    /*溢出:自动;添加此选项,它将在需要时显示一个滚动条,并且不会向下推页脚*/
    }
    页脚{
    背景:浅灰色;
    /*无需设置任何高度,最终为最小高度*/
    
    

    你能创建一个JSFIDLE吗?用你提供的代码,我无法重新创建它。那是因为你没有任何内容……相信我,当你用300行内容填充它时,就可以了。内容属性、最小高度、高度和再次高度都是无用的,兄弟……默认情况下高度是自动的,因为它填充了con的内容tainer。你可以设置你的
    正文的背景,使之与你的
    页脚相匹配,这样你就不会在页脚下看到较浅的背景。然后将较浅的背景移到你的
    #内容中。你还没有发布页眉和页脚的css。你能创建一个JSFIDLE吗?用你提供的代码我无法重新创建它。那是因为你没有任何内容…相信我,当你用300行内容填充它时,它会没事的。内容属性,最小高度,高度和再次高度都是无用的兄弟…默认情况下高度是自动的,因为它填充了容器中的内容。你可以设置
    正文的背景来匹配
    页脚
    ,这样您就不会在页脚下看到较浅的背景。然后将较浅的背景移到您的
    #内容
    。您还没有发布页眉和页脚的css。是的,但是IE8和IE9中不支持flexbox布局模块:(@Nasco.Chachev read#OP;)的要求(特别是最后一句)@GabyakaG.Petrioli是的,我读过。我的观点是一样的,让旧的浏览器消亡:D,但我只是说flexbox还没有完全得到支持。no hate tho:)@Nasco.Chachev对于旧的浏览器,display:table layout属性可以帮助您几乎同样容易地实现这一点,但是没有办法让页脚完全冻结嗯
    html
    {
        font-size: 100%;
        height: 100%;
        line-height: 1.4;
        overflow-y: scroll;
    }
    
    body
    {
        background: #EEE url("../images/background.png") repeat-y center center fixed;
        color: #333;
        height: 100%;
        font: 1em 'Lato-Regular';
        margin: 0;
        padding: 0;
    }
    
    #wrapper
    {
        height: 100%;
        margin: 0 auto;
        width: 960px;
    }
    
    #content
    {
        min-height: 460px;
        height: auto !important;
        height: 460px;
        margin: 20px 0;
    }