css - 相对图像上绝对定位 2 div 的问题
问题描述
使用 Bootstrap 4,我有一个初始设置为 2000px X 500px 的响应式图像,我想将 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-->
解决方案
除非我遗漏了什么,否则这一切似乎都过于复杂了?
使用强大的 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>
推荐阅读
- excel - Workbook.close 导致 sub 退出
- c++ - 如何运行 Wave 快速入门示例?
- vba - PowerPoint 加载项 将文本框添加到所选幻灯片
- c# - 在实现具有默认方法实现的接口的类上使用`GetMethod`返回null
- c# - LINQ 在更大的集合中找到一组值的 MAX 值
- mysql - 执行灵活搜索查询时无法评估表达式方法引发“java.lang.illegalargumentexception”异常
- android - 无法使用 FileProvider 与其他应用共享图像文件
- javascript - 网页上的 Javascript 空白页
- node.js - 查询 MongoDB 问题
- matlab - 过滤在 MATLAB forloop 中绘制的内容