获取一个元素,如果它有一个特定的id css [closed]

vkc1a9a2  于 2024-01-09  发布在  其他
关注(0)|答案(2)|浏览(129)

**已关闭。**此问题需要debugging details。目前不接受回答。

编辑问题以包括desired behavior, a specific problem or error, and the shortest code necessary to reproduce the problem。这将帮助其他人回答问题。
3天前关闭。
Improve this question
我需要改变一个元素的宽度,只有当一个孩子有id="detail",所以在我的css我这样做:

.ui-dialog:has(#detail){
    width: 51em !important;
    
}

字符串
但这不是工作。有人能帮我吗?

vsnjm48y

vsnjm48y1#

如果你想使用JS,如果一个元素的子元素有id="detail",你需要做的是改变元素的宽度:

const parentEl = document.querySelector(".ui-dialog")
const childEl = parentEl.querySelector("#detail")

if(childEl) parentEl.style.width = '51em'

字符串

fivyi3re

fivyi3re2#

// I created a li element after three seconds so you can understand better
setTimeout(() => {
var newListItem = document.createElement("li");
newListItem.id = "detail";
newListItem.textContent = "Three";

var existingList = document.querySelector(".ui-dialog");

existingList.appendChild(newListItem);
}, 3000)
.ui-dialog{
    width: 100px;
    background: red;
}
.ui-dialog:has(#detail){
    width: 51em;
    background: green;
}
<ul class="ui-dialog">
<li class='child'>one</li>
<li class='child'>two</li>
</ul>

在这个例子中,如果没有id detail的孩子,颜色是红色的,但是当孩子被创建并添加到我们现有的List中时,它使用:has()css

相关问题