【问题标题】:How do you express multiple CSS classes with multiple images?你如何用多个图像表达多个 CSS 类?
【发布时间】:2018-09-23 21:43:22
【问题描述】:

在@DavidThomas 发表评论之后,我提出了一个与此相关的单独问题,而不是编辑此问题以避免混淆。这个问题来自那个问题。 Do CSS rules exist for placing content within elements and positioning them?

我想用图像来表达 CSS 类,这样如果div 具有类 classA、classB、classC 等,则名为 classA.jpg、classB.jpg、classC.jpg 等的图像被放置在 div , 但它们应该以不会相互重叠或覆盖的方式放置在 div 中。

图像将全部小于 div,或调整为 div 大小的一小部分。

简而言之,我要问的问题是如何让一个类将图形放置在 div 宽度的一小部分位置,并将其调整为 hte div 大小的一定百分比。

关于更多背景,我在reddit How can I express multiple CSS classes in the same div?上问了这个问题,但我认为我在这里表达得更简洁。

【问题讨论】:

  • 首先:请edit 向我们展示您的问题:您的“minimal reproducible example”代码,以便我们重现您的问题(不是全部 i> 你的代码,足够 来显示问题)。向我们展示您想要发生的事情。向我们展示您解决问题的最佳尝试。告诉我们它在哪里成功,解释它在哪里/如何失败。阅读这个问题以及 Reddit 上的链接帖子,我不得不承认我仍然不确定您想要什么以及您期望什么。
  • @DavidThomas 我想知道的是是否有 CSS 规则用于将内容放置在图像或文本等元素中,不适用于样式元素,以便具有类的 div placeImage 将导致图像放置在 div 中,或者将导致某些固定文本放置在具有该类的所有 div 中。我的问题假设存在这样的 CSS 规则,但我不确定
  • 请不要回复我的评论并进行澄清:edit您需要澄清的问题。评论是暂时的,如果人们必须阅读问题,那么愿意提供帮助的人数会显着减少。

标签: css image css-position


【解决方案1】:

我不太确定我是否理解您的问题。另外我没有那些名字的图片,所以我不得不使用里面有图片的文章。 这个想法是让你的 div 成为一个带有height:auto 的弹性框。图片都是正方形,但大小不同。

let myDiv = document.querySelector("div");
let classNameRy = myDiv.className.split(" ");

for(let i = 0; i < classNameRy.length; i++){
  let thisImg = document.querySelector(`article.${classNameRy[i]} img`);
  let daSrc = thisImg.getAttribute("src");
  let newImg = document.createElement("img");
  newImg.setAttribute("src", daSrc);
  newImg.setAttribute("alt", "whatever");
  myDiv.appendChild(newImg)
}
div {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-evenly;
  width: 170px;
  height: auto;
  border: 1px solid;
  padding: 4px 0 0;
}

div img {
  margin: 0 2px 4px 0;
  width: 50px;
  height: 50px;
}

article {
  display: none;
}
<div class="a b c d e f"></div>


<article class="a"><img src="https://via.placeholder.com/50x50"></article>
<article class="b"><img src="https://via.placeholder.com/150x150"></article>
<article class="c"><img src="https://via.placeholder.com/250x250"></article>
<article class="d"><img src="https://via.placeholder.com/50x50"></article>
<article class="e"><img src="https://via.placeholder.com/75x75"></article>
<article class="f"><img src="https://via.placeholder.com/50x50"></article>
<article class="g"><img src="https://via.placeholder.com/50x50"></article>
<article class="h"><img src="https://via.placeholder.com/50x50"></article>
<article class="i"><img src="https://via.placeholder.com/50x50"></article>
<article class="j"><img src="https://via.placeholder.com/50x50"></article>
<article class="k"><img src="https://via.placeholder.com/50x50"></article>
<article class="l"><img src="https://via.placeholder.com/50x50"></article>

【讨论】:

  • 谢谢,article 方法也很有趣。是否可以让图像相互重叠?我的想法是使用具有透明背景的相同大小的图像,其不透明区域不会相互重叠,因此如果 3 个类处于活动状态,则背景中将有 3 个不同的非重叠彩色条。 PS。我修改了这个问题以链接到另一个问题,该问题询问了这样一个系统的基本要求。
猜你喜欢
  • 2011-12-19
  • 2018-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-10
  • 2015-10-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多