簡體   English   中英

如何在CSS中使高度可變的固定頂部菜單欄?

[英]How can I make a fixed top menubar with a changing height in CSS?

我想在我的網站頂部有一個固定的菜單欄。 (滾動時不會移動)。 我的問題是,此菜單欄的高度可以變化(一個或兩個(或更多)級別取決於項目數/屏幕大小)

由於頂部菜單是固定的,因此我必須為“真實”內容添加一個頁邊距頂部(否則它將開始隱藏在菜單下),但是由於菜單高度是可變的,因此我無法設置頁邊距-最佳。

因此,是否有可能“強制”內容不在我的菜單欄中? 我該怎么辦? (我不希望將javascript用作定位之王)

這是我用來測試解決方案的代碼:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="language" content="en" />

    <style>
        body
        {
            margin: 0;
            padding: 0;
            color: #575757;
            font: normal 10pt Arial,Helvetica,sans-serif;
            background: #cdcdcd;
        }

        #page
        {
            margin-top: 0px;
            margin-bottom: 5px;
            width:100%;
            max-width:1500px;
            margin-left:auto;
            margin-right:auto;
        }

        #mainmenu
        {
            background:#b90014 repeat-x left top;
            position:fixed;
            /*height:28px;*/
            width:100%;
            z-index:100;
            left:0;
            background-image:linear-gradient(#b90014, #d00018);
        }

        #mainmenu p#lastUpdate
        {
            float:right;
            color:#ffffff;
            margin-top:5px;
            margin-right:10px;
            margin-bottom:0px;
            margin-left:5px;
        }

        #mainmenu ul
        {
            padding:6px 20px 5px 20px;
            margin:0px;
        }

        #mainmenu ul li
        {
            display: inline;
        }

        #mainmenu ul li a
        {
            color:#ffffff;
            background-color:transparent;
            font-size:12px;
            font-weight:bold;
            text-decoration:none;
            padding:8px 8px 4px;
        }

        #mainmenu ul li a:hover, #mainmenu ul li.active a
        {
            color: #d00018;
            background-color:#FFFFFF;
            text-decoration:none;
        }
    </style>

</head>

<body>

<div id="page">

    <div id="mainmenu">
        <p id="lastUpdate">Last Update : this date</p><ul id="yw0">
            <li><a href="/index.php?r=index">Accueil</a></li>
            <li><a href="/index.php?r=reports">Rapports</a></li>
            <li><a href="/index.php?r=nestedReport">Rapports personnalisés</a></li>
            <li class="active"><a href="/index.php?r=quickReport">Rapports instantannés</a></li>
        </ul>

    </div><!-- mainmenu -->

    <div id="content">
        <div id="contentbox">
            HELLO WORLD
        </div>
    </div><!-- content -->

</div><!-- page -->

</body>
</html>

謝謝 !

我認為您正在尋找的是媒體查詢:

https://developer.mozilla.org/en-US/docs/Web/Guide/CSS/Media_queries

您可以根據屏幕尺寸應用CSS樣式。

我認為您不能僅在CSS中執行此操作,因為它無法檢測到此類頁面中的更改。 如下所述,您可以使用CSS填充接近您想要的位置,但是我懷疑它不會正是您想要的。 這是JavaScript設計的目的之一。 我很高興被證明是錯誤的

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM