如何将一个 div 移到另一个 div 的前面?

Posted

技术标签:

【中文标题】如何将一个 div 移到另一个 div 的前面?【英文标题】:How to move a div into front of the other div? 【发布时间】:2017-02-27 15:29:18 【问题描述】:

请看我的html

<div class="parent-canvas">
    <div class="text-canvas" contenteditable="true">
        my text
    </div>
<div class="image">
    <div class="image-canvas">
        <div class="imageupload" onclick="submit_button()"><img src="Image.jpeg"></div>

    </div>
 </div>
</div>

这里当用户点击imageupload div然后submit_button函数起作用。它是用javascript编写的函数。

我想要的是让我的文字显示在图像的前面。这就像 Photoshop 中的图层概念。我需要使背景层是父画布 第一层是 image-canvas ,前层是 text-canvas 。如何做到这一点。?目前发生的事情是我的文本没有显示,它在 image.jpeg 下。

我还需要使我的文本可编辑。在图像中的任何地方单击然后 submit_button 功能工作。但是当我们将我的文本移到前面时,可能在中心部分,在那个文本部分我可以编辑文本, 剩下的部分 submit_button() 函数需要工作。

【问题讨论】:

你探索过 CSS 中的 z-index 吗? w3schools.com/cs-s-ref/pr_pos_z-index.asp 嗨。在这里我不知道如何使用 z index 。你能解释一下吗? 【参考方案1】:

演示:

http://plnkr.co/edit/YmlDaDluwALneBjyQjQE?p=preview

html:

   <div class="parent-canvas">
    <div class="text-canvas" contenteditable="true">
        my text
    </div>
    <div class="image-canvas">
        <div class="imageupload" onclick="submit_button()"><img src="https://3.bp.blogspot.com/-W__wiaHUjwI/Vt3Grd8df0I/AAAAAAAAA78/7xqUNj8ujtY/s1600/image02.png"></div>

    </div>
 </div>

CSS:

.parent-canvas 
  position: relative;
  width: 500px;
  height: 300px;


.text-canvas,.imageupload 
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   bottom: 0;


.text-canvas 
  text-align: center;
  color: #fff;
  z-index:1;
  top: 50%;
  transform: translateY(-50%);
  bottom: auto;


.imageupload 
  display: block;
  overflow: hidden;

【讨论】:

非常感谢朋友。您的代码正在运行。你能告诉我如何将我的文字放在图像的中间吗? .请解释一下,我不需要溢出:隐藏;在 .imageupload 类中。谢谢。 请检查更新的答案以及演示。并且使用了溢出:隐藏,因为图像尺寸很大。 非常感谢朋友。 如果你有时间,也请检查这个问题***.com/questions/40103239/…。否则没问题。【参考方案2】:

试试这个。

function submit_button()

alert('Submit Button Click');
img 
    position: absolute;
    left: 0px;
    top: 0px;
    z-index: -1;
<div class="parent-canvas">
    <div class="text-canvas" contenteditable="true">
        my text </div>
    <div class="image-canvas">
        <div class="imageupload" onclick="submit_button()"><img src="https://yt3.ggpht.com/-v0soe-ievYE/AAAAAAAAAAI/AAAAAAAAAAA/OixOH_h84Po/s900-c-k-no-mo-rj-c0xffffff/photo.jpg"  ></div>

    </div>
 </div>

【讨论】:

感谢您的回答。我会测试它。【参考方案3】:

使用 CSS z-index,这里是使用 z-index 的示例

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Layer Example</title>
<style>
    body 
        overflow: hidden;
        margin: 50px;
    

    .layer_one 
        position: absolute;
        height: 20vh;
        width: 20vh;
        background-color: #ffff00;
        z-index: 1;
    

    .layer_two 
        position: absolute;
        margin: 10px;
        padding: 10px;
        height: 20vh;
        width: 20vh;
        background-color: rgba(138, 43, 226, 0.5);
        z-index: 2;
    

    .layer_three 
        position: absolute;
        margin: 10px;
        padding: 10px;
        height: 20vh;
        width: 20vh;
        background-color: rgba(0, 128, 128, 0.5);
        z-index: 3;
    
</style>
</head>
<body>
<div class="layer_one">
background
<div class="layer_two">
    behind layer three
    <div class="layer_three">
        i am layer three
    </div>
</div>
</div>
</body>
</html>

【讨论】:

以上是关于如何将一个 div 移到另一个 div 的前面?的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个div的内容克隆到另一个div

如何将非子 div 附加到另一个 div 的底部

js如何将一个div移动到另一个div后面

如何使用javascript将div移到鼠标上?

轮播无法将图像 div 移到中心

如何将节点从一列div拖到另一列