簡體   English   中英

在<canvas>上顯示<div>

[英]Displaying a <div> over a <canvas>

Firefox和Chrome中存在的問題是我有一個帶有純色背景的畫布,以及一個帶有純色背景顏色/圖像的div。 div被限制在畫布頂部。 div不會顯示在畫布上。 一個有趣的注意事項是,如果div中有文本,它將正確顯示。 這意味着它是兩個瀏覽器中的瀏覽器錯誤。 以下是一些想要嘗試的人的代碼。

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <style type="text/css">
        #d{background-color:#111;margin-top:-150px;z-index:999999;}
    </style>
    <script type="text/javascript">
        function load() {
            var c = document.getElementById("c").getContext("2d");
            c.fillStyle = "rgba(255, 200, 200, 1)";
            c.fillRect(0, 0, c.canvas.width, c.canvas.height);
        }
    </script>
</head>
<body onload="load()">
    <canvas id="c" width="500" height="300"></canvas>
    <div id="d" style="width:500px;height:300px"></div>
</body>
</html>

那么,有人有任何變通方法嗎? 或者我在HTML5規范中遺漏了哪些內容,說這是正確的?

請注意,請不要問我為什么要使用邊距而不是固定/絕對/等等替代品。 我需要利潤。

這只能通過應用樣式來修復:

#d {position:relative;}

要么

#d {position:absolute;}

這最近發生在我身上,而不是改變它的布局方式,我從div切換到使用帶display:inline-blockspan display:inline-block

適用於Firefox / Chrome / Safari。 尚未在IE中測試過。

使用以下代碼,希望它可以幫助您:

 <head>
     <style type="text/css">
          #c{background-color:#000;z-index:-1;position: fixed;}
          #d{background-color:#aa00aa;margin-top:-50px;z-index:0;}
     </style>
     <script type="text/javascript">
         function load() {
             var cntx = document.getElementById("c").getContext("2d");
             cntx.fillStyle = "rgba(255, 200, 200, 1)";
             cntx.canvas.top = "0";
             cntx.canvas.left = "0";
             cntx.fillRect(0, 0, cntx.canvas.width, cntx.canvas.height);

             var obj = document.getElementById("d");
             obj.style.position = "fixed";
             obj.style.top = 50;
             obj.style.left = 0;
         }
     </script>
 </head>
 <body onload="load()">
     <canvas id="c" width="500" height="300"></canvas>
     <div id="d" style="width:500px;height:300px"></div>
 </body>

添加位置:相對; (或絕對)#d似乎適用於chrome和firefox。 如果你問我,不知道為什么。 這對你有好處嗎?

好吧,我已經閱讀了你的問題,我明白你不想使用職位......無論你必須使用職位來讓z-index工作。 position:相對字面意思在這種情況下什么都不做,保存你要求的東西。 這是一個解決方案,雖然它依賴於位置:相對http://jsfiddle.net/jalbertbowdenii/Ar6Sh/

暫無
暫無

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

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