【问题标题】:Positioning elements around element围绕元素定位元素
【发布时间】:2018-07-14 23:58:54
【问题描述】:

我需要像上图那样将元素放置在一侧,并在它们上具有 onclick 功能以显示相应的文本。有关如何最好地实现这一点以做出响应的任何信息? 响应式是指点和文本应始终保持在相对于瓶子大小的相同位置。

我所做的是将所有内容放入容器 div 中,然后将元素相对于该 div 定位,并将瓶子图像定位到容器 div 的绝对位置。 当容器 div 具有固定尺寸时,它有点工作,但我想有更好的方法来做到这一点。

编辑:添加代码!格式化很烂,抱歉。

<div class="bottle-one">
                            <div class="bottle-one-content">
                            <div class="bottle-one-image">
                                <div class="message">
                                    <div class="message-hidden">
                                        <div>
                                            text
                                        </div>
                                        <div>
                                            <img src="assets/images/icons/line_blue.svg" alt="">
                                        </div>
                                    </div>
                                    <a href="#msg1" class="droplet droplet1 js-drop">
                                        <img src="assets/images/icons/droplet.svg">
                                    </a>
                                </div>
                                <div class="message">
                                    <div class="message-hidden">
                                        <div>
                                            text
                                        </div>
                                        <div>
                                            <img src="assets/images/icons/line_blue.svg" alt="">
                                        </div>
                                        <a href="#msg2" class="droplet droplet2 js-drop">
                                            <img src="assets/images/icons/droplet.svg">
                                        </a>
                                    </div>
                                </div>
                                <div class="message">
                                    <div class="message-hidden">
                                        <div>
                                            text

                                        </div>
                                        <div>
                                            <img src="assets/images/icons/line_blue.svg" alt="">
                                        </div>
                                        <a href="#msg3" class="droplet droplet3 js-drop">
                                            <img src="assets/images/icons/droplet.svg">
                                        </a>
                                    </div>
                                </div>
                                <div class="message">
                                    <div class="message-hidden">
                                        <div>
                                            text
                                        </div>
                                        <div>
                                            <img src="assets/images/icons/line_blue.svg" alt="">
                                        </div>
                                        <a href="#msg4" class="droplet droplet4 js-drop">
                                            <img src="assets/images/icons/droplet.svg">
                                        </a>
                                    </div>
                                </div>
                                <img src="assets/images/bottle1.png" alt="" class="bottle-one-bottle">
                            </div>
                        </div>


    .bottle-one {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 30%;
}

.bottle-one-image {
    height: 100%;
    position: relative;
    width: 251px;
}
.message {
  left: -340px;
  top: 180px;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  text-transform: uppercase;
  font-size: .7rem;
  color: #004197;
  height: 30px;
  width: 400px;
  margin-bottom: 1rem;
}
.message-hidden {
  display: flex;
}

.message-hidden div:nth-of-type(1)  {
  text-align: right;
  font-family: 'BrandonGrotesqueWeb-Black', sans-serif;
  letter-spacing: 2px;
  border-right: 1px solid #004197;
  width: 70%;
}
.message-hidden div:nth-of-type(2)  {
  width: 30%;
  display: flex;
  overflow:hidden;
}

【问题讨论】:

  • 能否请您放一些您已经编写的代码来解决这个问题。
  • 请阅读How to Askminimal reproducible example。请注意,SO 不是代码编写服务,我们帮助编写代码。
  • @vjeko,您能否提供更多有关您想要此布局的 响应度 的详细信息?你能举一些例子,它应该如何看待不同的屏幕尺寸?
  • @RamanMishra 添加了代码,抱歉!
  • @IlyaStreltsyn 我只需要将点粘在两侧并始终保持在相同的位置,相对于瓶子的大小

标签: html css positioning


【解决方案1】:

我想出这个来帮助您将元素对齐到 div 的左侧。

通过混合使用[psuedo-elements]floats,我认为这可以为您提供所需的效果。发布您的代码,我会很乐意为您提供另一部分的帮助。

html {
  width: 550px;
  border: none;;
}
body {
  font-family: sans-serif;
  color: rgba(0,0,0,.15);
  height:200px;
}
body:after {
  content: '';
  display: block;
  clear: both;
}
div {
  position: relative;
}
div:after {
  font-size: 200%;
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  text-align: center;
}
.sibling {
  border: 3px solid red;
  height:200px;
}
.sibling.root:after {
  content: 'Sibling';
  color: green;
}
.float {
  float: left;
  border: 3px solid blue;
  height: 90px;
  width: 150px;
  z-index: 1;
}
.float:after {
  content: 'floated Element';
  color: red;
}
.root {
  overflow: hidden;
}
<div class="float"> 
</div>
<div class="sibling root">
 
</div>

【讨论】:

  • 我不是最好的,但我试图帮助这个人解决问题,因为没有人为他提供解决方案?
  • 您的答案没有显示遵循形状图形的解决方案。此外,该问题缺少代码示例,因此有太多可行的选择如何解决,因此提问者需要提供更多信息。
  • @JimCiaston 感谢您的时间 Jim,红点的问题是它们不在同一个 h 上。行。
  • 没问题,有没有写在红点上,还是你只想要红点?
  • @JimCiaston Dots 具有 onclick 烤箱,显示线条和必须与点对齐的文本,与原始帖子中发布的图像非常相似。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-13
  • 1970-01-01
  • 1970-01-01
  • 2018-08-26
  • 2011-08-22
相关资源
最近更新 更多