【问题标题】:Problem With Absolute Positioning 2 Divs on Relative Image相对图像上绝对定位 2 div 的问题
【发布时间】:2020-03-20 19:35:02
【问题描述】:

使用 Bootstrap 4,我有一个初始设置为 2000 像素 X 500 像素的响应式图像,我想将 2 uls 文本(它将是动态文本)放置在它的左右区域并且文本保持不变浏览器调整大小时的位置。

在文本 div 上使用相对图像 div 和绝对值,我最初可以正确定位文本,但是当浏览器调整大小时,LH 文本块的行为完美,但右侧文本块爬升 (3rem) 并移动到左 (7rem) b/t 1900 和 1400 像素。好像 RH 块不遵守 CSS transform:translate 规则,CSS 显示 -webkit-transform:translate(10%, 12%);像现在一样。 有人可以在这里给我一些指示吗?

.heroimg {
    position: relative;
}

.heroimg img {
    height: 100%;
    width: 100%;
}

.noticeboard {
    list-style-type: none;
}

.newstext {
    position: absolute;
    top: 60%;
    left: 15.8%;
    transform: translate(-60%, -15.8%);
    -moz-transform: translate(-60%, -15.8%);
    -webkit-transform: translate(-60%, -15.8%);
}

.nbtext span {
    color: black;
    font-weight: bold;
    font-size: 1rem;
    text-align: center;
    letter-spacing: -1px;
    font-family: "Comic Sans MS";
    padding: 10px;
    display: inline-block;
}

.eventstext {
    position: absolute;
    bottom: 10%;
    right: 12%;
    transform: translate(10%, 12%);
    -moz-transform: translate(10%, 12%);
    -webkit-transform: translate(10%, 12%);
}
<div class="container-fluid">
    <div class="heroimg">
        <picture>
            <source
                srcset="img/posts2000x500.jpg"
                media="(min-width: 1400px)"
            />
            <source
                srcset="http://placehold.it/1400x500"
                media="(min-width: 1000px)"
            />
            <source srcset="http://placehold.it/1000x500" media="(min-width: 769px)" />
            <source srcset="http://placehold.it/800x500" media="(min-width: 577px)" />
            <img
                class=" img-fluid w-100 d-inline"
                srcset="http://placehold.it/600x500"
                alt=""
            />
        </picture>

        <div class="newstext nbtext">
            <span>
                <ul class="noticeboard">
                    <li>Hot News</li>
                    <li>Interesting Topical News</li>
                    <li>Amazing News</li>
                    <li>Fantastic News</li>
                    <li>Boring News</li>
                </ul></span
            >
        </div>
        <!--/newstext-->

        <div class="eventstext nbtext">
            <span>
                <ul class="noticeboard">
                    <li>Hot Events</li>
                    <li>Interesting Topical Event</li>
                    <li>Amazing Event</li>
                    <li>Fantastic Event</li>
                    <li>Boring Event</li>
                </ul></span
            >
        </div>
        <!--/eventstext-->
    </div>
    <!--/heroimg-->
</div>
<!--/container-fluid-->

【问题讨论】:

  • 请注意,&lt;source&gt; 标签不使用也不需要结束斜线,并且在 HTML 中从来没有。

标签: css transform positioning translate absolute


【解决方案1】:

除非我遗漏了什么,否则这一切似乎都过于复杂了?

使用强大的 Flexbox https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Flexbox

只需两个 CSS 属性,您就可以将 ul 列表放在对面。然后在您点击移动设备时使用媒体查询来平衡它。

*{
  margin:0;
  padding:0;
}

.pic{
  display:flex;
  justify-content:space-between;
  background:orange;
  padding:20px;
}
@media(max-width:769px){
  .pic{
    display:block;
  }
  .one{
    margin-bottom:50px;
  }
}
<div class="pic">
  <ul class="one">
    <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
  </ul>
    <ul class="two">
    <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
     <li>Some item</li>
  </ul>
</div>

【讨论】:

  • 大图中是2个空的布告栏,一个在图像的左边,一个在右边;我希望文本位于布告栏的轮廓内。你知道我该怎么做吗?
  • 只需将大纲样式应用于uls中的任一个
  • 我认为我没有很好地解释这一点;主图就像一幅卡通画,中间有一栋建筑,两侧有卡通布告栏;当布告栏的顶部和底部是“卡通化”图像的一部分时,我看不出如何设置它们的样式。当 br
  • 当浏览器被调整大小(但仍然是 XL 图像)时,RH 板范围内的文本向上和向左移动; LH 板上的文本仍然完全集中在板上。所以我的问题是:第二个绝对定位的 Div 似乎没有遵守绝对位置规则。如果我在这方面有点慢,我很抱歉。
猜你喜欢
  • 2011-07-29
  • 2014-05-20
  • 1970-01-01
  • 2013-01-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-22
  • 1970-01-01
相关资源
最近更新 更多