首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在JS更改HTML元素的位置后重新呈现CSS

问在JS更改HTML元素的位置后重新呈现CSS
EN

Stack Overflow用户
提问于 2021-04-25 04:24:48
回答 1查看 45关注 0票数 0

我有一个独特的情况要解决。有10个div,每个在左边有一个图像,右边有一个段落。现在,我使用CSS nth-child()选择器来切换左侧所有奇数div图像的位置,以使用Flex的order属性显示在右侧。

一支笔来说明这个问题- https://codepen.io/rpmcmurphy/pen/dyNaRJw

问题是,当我使用JS对所有10个父div进行重新排序时,它们会随身携带nth-child(odd),这意味着两个/三个奇数的父母会相继出现。这是我试图实现的目标的可视化表示-

它们是如何加载页面的-

代码语言:javascript
复制
<div> // div 1
    <img src=""> <p>Hello</p>
<div>
.......
<div> // div 10
    <img src=""> <p>Hello</p>
<div>

我要做的是-

代码语言:javascript
复制
1. All 10 parent divs will rearrange randomly (using JS I am already doing that)
2. All the ODD `div`s will push the <IMG> to the right side (using flex's order property to do that)

这两个技巧都是单独起作用的。但是当组合在一起时,页面看起来是这样的-

代码语言:javascript
复制
<div> // div 1
    <img src=""> <p>Hello</p>
<div>
<div> // div 2
    <p>Hello</p> <img src="">
<div>
<div> // div 3, previously div 10 before JS rearranged it, for example
    <img src=""> <p>Hello</p>
<div> // div 4
    <img src=""> <p>Hello</p>
<div>
.......

使用为所有奇数div设置的灵活顺序,当JS将原始的CSS 10带入上面的div 3时,它应该获得我为奇数子元素编写的CSS并将img标记设置在右侧,因为它最初是数字10 (偶数),现在JS将其设置为数字3(奇数)。它不会把新的CSS当作奇数,即使它被JS切换了,它也会保持不变。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-25 04:58:40

试试这个CSS,我想它就是你想要的。

代码语言:javascript
复制
.row:nth-child(odd) > div:nth-child(1) {
  order: 20 !important;
  border: 3px solid red;
}
.row:nth-child(odd) > div:nth-child(2) {
  order: 10 !important;
  border: 3px solid red;
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67247111

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档