【问题标题】:How to fix height respective screen resolution?如何固定高度各自的屏幕分辨率?
【发布时间】:2013-03-26 03:56:18
【问题描述】:

我已经发布了我的网页图片,还发布了我在上面应用的 html 代码和 CSS。

我希望我的#main 应该在页面上以固定高度显示为相应的笔记本电脑分辨率。 那么我应该给它多少尺寸呢? 我遇到的另一个问题是,当我尝试给它高度时,它不适用。我的#main 也包含一个页脚。 我需要在我的 CSS 中应用它进行哪些更改?当我在其中加载任何内容时,我的#main 会扩展高度。但我希望它的高度应该是固定的。

HTML

<html>
<head>
<title> Index </title>
        <link type="text/css" rel="stylesheet" href="../Content/Site.css">
        <script type="text/javascript" src="../../Scripts/jquery-1.9.1.min.js">
        <script type="text/javascript" src="../../Scripts/jquery.js">
        <script type="text/javascript" src="../../Scripts/MicrosoftAjax.js">
        <script type="text/javascript" src="../../Scripts/MicrosoftMvcAjax.js">
        <script type="text/javascript" src="../../Scripts/MicrosoftMvcValidation.js">
        <script type="text/javascript" src="../../Scripts/modernizr-1.7.min.js">
        <link type="text/css" rel="stylesheet" href="../Content/menu.css">
        <script type="text/javascript" src="../../Scripts/menu.js">
</head>

<body>
<div class="page">
     <header>
        <table id="header">
        <div id="menu">
        <ul class="menu">
        <li class="current">
        <li>
        <a href="/CRMDashboard/Dashboard">
        </li>
        <li>
        <a class="parent" href="/CRM/Index">
        <div>
        </li>
        <li>
        <a class="parent" href="#">
        <div>
        </li>
        <li>
        <a class="parent" href="#">
        <div>
        </li>
        <li>
        <a href="/FilterCRMRequest/Index">
        </li>
        <li>
        <a href="#">
        </li>
        <li class="back" style="left: 30px; width: 100px; display: block; overflow: hidden;">
        <div class="left"></div>
        </li>
        </ul>
        </div>
    </header>
<section id="main">
    <h2>Index</h2>
        <footer>
                <hr>
                <p> Copyright (c) 2012 </p>
                <hr>
        </footer>
</section>

</div>
</body>
</html>

CSS

body {
    background: none repeat scroll 0 0 rgba(0, 117, 149, 0.9);
    color: #000000;
    font-family: "Trebuchet MS",Verdana,Helvetica,Sans-Serif;
    font-size: 0.85em;
    height: 100%;
    margin: 0;
    padding: 0;
}


.page {
    margin-left: auto;
    margin-right: auto;
    width: 98%;
}

header, #header {
    border: 0 none;
    color: #000000;
    margin-bottom: 0;
    padding: 0;
    position: relative;
}
header, footer, nav, section {
    display: block;
}

header, #header {
    color: #000000;
}

#main {
     padding: 30px 30px 15px;
background-color: #fff;
border-radius: 4px 4px 4px 4px;
top:50px;
bottom:10px;
/*position:fixed;*/
right:10px;
left:10px;
-webkit-border-radius: 4px;
-moz-border-radius: 4px;

}
footer, #footer {
    background-color: #FFFFFF;
    border-radius: 0 0 4px 4px;
    color: #999999;
    font-size: 0.9em;
    line-height: normal;
    margin: 0;
    padding: 10px 0;
    text-align: center;
}

菜单的 CSS

div#menu {
    background: url("images/main-bg.png") repeat-x scroll 0 0 transparent;
    height: 41px;
}


div#menu ul.menu {
    padding-left: 30px;
}
div#menu ul {
    border-radius: 0 0 4px 4px;
    float: left;
    list-style: none outside none;
    margin: 0;
    padding: 0;
}

div#menu li {
    background: url("images/main-delimiter.png") no-repeat scroll 98% 4px transparent;
}
div#menu li {
    border-radius: 0 0 4px 4px;
    display: block;
    float: left;
    margin: 0;
    padding: 0 5px 0 0;
    position: relative;
    z-index: 9;
}

我想要这样的输出:

我还希望我的#main 在内容加载更多时显示滚动条...而不是浏览器的滚动条显示。

这些是我的菜单:

我可以通过在#main 中使用position:fixed 来解决问题,但是当我使用它时.. 我的#main 会在菜单上被覆盖。

【问题讨论】:

  • header 标签尚未关闭,您的问题不是很清楚。请更新问题和代码。

标签: asp.net html css height


【解决方案1】:

谷歌搜索“流体高度布局”。你会得到很多例子。

这个example 实现了您的要求。

这是more

【讨论】:

    【解决方案2】:

    在较新的浏览器上,您可以使用calc() 函数动态设置部分的高度,例如

    html, body, .page { 
        height: 100%;
        margin: 0; padding: 0;
    }
    
    header {
      height: 100px;
    }
    
    section {
       height: -webkit-calc(100% - 110px);
       height: -moz-calc(100% - 110px);
       height: calc(100% - 110px);
       border: 1px red solid;
       overflow: auto;
    }
    

    dabblet 示例:http://dabblet.com/gist/5308785

    支持 calc() 的浏览器:http://caniuse.com/calc

    【讨论】:

      【解决方案3】:

      我猜你不应该应用静态高度/或给它固定高度,虽然你可以使用 javascript/jquery 从你发布的图片中,我想下面的 css 应该是你的解决方案。

      将 css 添加到您的#main

        top:50px;
          bottom:10px;
          position:fixed;
          right:10px;
          left:10px;
      

      编辑:在#main 中添加了overflow:auto 演示http://jsfiddle.net/hEGms/2/

      【讨论】:

      • 如果我加载任何内容.. 我希望在#main 中滚动显示而不是滚动浏览器!有可能吗?
      • 是的,这是可能的。在#main 中加载导致溢出的任何内容都会在#main 本身中添加滚动条,而不是在浏览器中。这就是为什么在你的#main 中添加溢出:自动
      • 如果我添加位置:固定; .. 布局变得混乱.. 意味着.. 菜单栏上的所有内容都会覆盖。 !! :(
      • 我可以得到你的完整代码吗?请为此添加一个小提琴,以便我可以帮助您。
      • 我猜问题是#main 由于其定位而覆盖了菜单。尝试将#main css下的顶部增加到115px
      【解决方案4】:

      来自 w3c 规范:

      section 元素表示文档的通用部分或 应用。在这种情况下,一个部分是一个主题分组 内容,通常带有标题。

      章节的例子是章节,不同的标签页在一个 选项卡式对话框,或论文的编号部分。一个网站的 主页可以分为介绍、新闻等部分 项目和联系信息。

      ...

      注意:section 元素不是通用容器元素。当一个 element 用于样式目的或为了方便 在编写脚本时,鼓励作者使用 div 元素。一种 一般规则是节元素只有在 元素的内容将在文档的 大纲。

      按照这个逻辑,如果你需要一个元素来应用样式,你就需要一个 div。 &lt;section&gt; 标签是语义标签,而不是功能标签。在你的 section 标签内,你应该有一个 div 元素来保存内容,它应该是 CSS 样式的目标。

      编辑:另外,由于&lt;section&gt; 是一个HTML5 元素,如果您使用的是旧版浏览器,则需要将其显式设置为display: block

      【讨论】:

      • 哦,我把它从
        改为
      猜你喜欢
      • 2013-09-04
      • 2010-11-19
      • 2012-07-16
      • 2015-10-03
      • 2012-04-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多