我对一般的编码是新手,对这个网站也是新手,如果我做错了什么,我很抱歉. 我想创建一个类似Picrew的网站,但遇到了一个问题.我想把它对齐,这样字符就在顶部,用于 Select 其他选项的按钮在底部:image link

但老实说,目前整个联盟充其量也只是摇摇欲坠,而且是灾难性的. 我很确定这是因为相对和绝对的位置,但这是我发现如何将图片添加到其他图片上的唯一方法(比如,将眼睛放在头上).

<body>
        <div class="container ">
            <div class="row">
              <div class="col">
                <div class="navbar">
                    navbar soon to be
                </div>
              </div>
            </div>
            <div class="row">
              <div class="col">
                <div class="img-display position-relative">
                    <img class="body-part position-absolute" id="body-section" src="/testImage/body_default.png"  alt="Default Body" width=400px;/>
                    <img class="head-part position-absolute" id="head-section" src="/testImage/head_default.png"  alt="Default Head" width=400px;/>
                    <img class="ears-part position-absolute" id="ears-section" src="/testImage/ears_default1.png"  alt="Default Ears" width=400px;/>
                    <img class="eyes-part position-absolute" id="eyes-section" src="/testImage/eyes_default.png" alt="Default Eyes" width=400px;/>
                    <img class="mouth-part position-absolute" id="mouth-section" src="/testImage/mouth_default.png" alt="Default Mouth" width=400px;/>
                    <img class="nose-part position-absolute" id="nose-section" src="/testImage/nose_default.png" alt="Default Nose" width=400px;/>
                    <img class="eyebrows-part position-absolute" id="eyebrows-section" src="/testImage/eyebrows_default.png" alt="Default Eyebrows" width=400px;/>
                </div>
              </div>
            </div>
            <div class="row">
              <div class="col">
                <div class="options-menu">
                    <ul class="test1">
                        <li class="test">X-Type</li>
                        <li class="test">X-Type</li>
                        <li class="test">X-Type</li>
                        <li class="test">X-Type</li>
                    </ul>
                </div>
              </div>
            </div>
            <div class="row">
              <div class="col">
                <div class="options">
                    <ul class="test1">
                        <li class="test"><button onclick="changeImage('/testImage/ears_default1.png')"><img src="/testImage/ears_default1.png" width="108px" height="192px"/></button></li>
                        <li class="test"><button onclick="changeImage('/testImage/ears_default2.png')"><img src="/testImage/ears_default2.png" width="108px" height="192px"/></button></li>
                        <li class="test"><button onclick="changeImage('/testImage/ears_default3.png')"><img src="/testImage/ears_default3.png" width="108px" height="192px"/></button></li>
                        <li class="test"><button onclick="changeImage('/testImage/ears_default4.png')"><img src="/testImage/ears_default4.png" width="108px" height="192px"/></button></li>
                        <li class="test"><button onclick="changeImage('/testImage/ears_default5.png')"><img src="/testImage/ears_default5.png" width="108px" height="192px"/></button></li>
                    </ul>
                </div>
              </div>
            </div>
          </div>
        <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/js/bootstrap.bundle.min.js" integrity="sha384-A3rJD856KowSb7dwlZdYEkO39Gagi7vIsF0jrRAoQmDKKtQBHUuLZ9AsSv4jD4Xa" crossorigin="anonymous"></script>
        <script src="script.js"></script>
    </body>

推荐答案

管理包含绝对定位元素的复杂布局是可能的,但很棘手.考虑使用display: grid(handy reference here)!

按照你期望的面部特征(眼睛、鼻子、耳朵、嘴巴、你拥有的东西)来布置你的网格区域.您可以将它们限制为固定的宽度和高度,并按您认为合适的方式处理内部内容对齐方式.如果身体部位占据多个栅格区域,则可能需要巧妙地使用grid-template-areas属性.您仍然可以在栅格区域内使用position: absolute.

这是我用一张非常平淡的脸制作的一个小演示:

.container {
  padding: 2rem 0;
}

.head {
  border: 1px solid black;
  border-radius: 50%;
  display: grid;
  grid-template-areas:
    "left-eye right-eye"
    "nose nose"
    "mouth mouth";
  grid-template-columns: 1fr 1fr;
  grid-template-rows: 1fr;
  padding: 1rem;
  width: 100px;
  height: 100px;
}

/* Use display: flex; to vertically and horizontally 
   center elements within the grid areas */
.body-part {
  display: flex;
  align-items: center;
  justify-content: center;
}

.left-eye {
  grid-area: left-eye;
}

.right-eye {
  grid-area: right-eye;
}

.nose {
  grid-area: nose;
}

.mouth {
  grid-area: mouth;
}
<div class="container">
  <div class="head">
    <div class="body-part left-eye">0</div>
    <div class="body-part right-eye">0</div>
    <div class="body-part nose">|</div>
    <div class="body-part mouth">______</div>
  </div>
</div>
<div class="container">
  Controls, etc. here
</div>

Html相关问答推荐

角|将动态html属性添加到子组件

如何仅 Select 与子代CSS类匹配的第一个元素

创建一个带有div和径向渐变的全宽半圆

我无法使用背景图像css,因为我在VS代码中将照片放在不同的文件夹中

Css网格:两列,除非小于150px

Html视频标签:圆角像素化

带有图标和悬停过渡的CSS按钮

Vutify中看不见的V行

是否可以只使用css而不使用像&;nbsp;这样的HTML符号来实现断字而不换行空格?

如何制作';在第';页中搜索;是否发现多个元素中的单词?

Tailwind 网格行高度可防止拉伸到最高行的所有相同高度

使单行路径的 svg 填充父级的 100% 宽度

在 CSS 中的 div 中获取文本以环绕其他文本?

有没有办法在 Flutter 中创建这个浮动标签表单?

图像比预期宽的网格列

防止 HTML 表格在 Quarto 中使用全页宽度

为什么相同持续时间的转换需要不同的时间?

嵌套固定定位的 Div 滚动条渗透到前景中的 Div

SVG 适用于 Safari,不适用于 Chrome

调整窗口大小时试图阻止按钮移动