css - CSS 属性选择器:如何设置父元素的样式但使用子元素的属性?
问题描述
基本上,我有一个 iframe,其中包含我要选择的 src 属性值。我的选择器查询和应用样式如下所示:
.news-frame .news-modal.bt-custom-forms .modal-dialog iframe[src^="/sites/testSite/"] {
width: 1286px !important;
}
但是,我只想设置父 .modal-dialog 类的宽度属性而不是 iframe 的宽度。
知道如何实现这一目标吗?
谢谢!
解决方案
不,CSS 还没有父选择器。
在 CSS 中
CSS4 选择器:has
将解决您的问题,但目前不支持。
在 JavaScript 中
/* select the result div */
let resultDiv = document.getElementById("result");
/*
* select the first modal with these classes :
* querySelector select only the first
* See querySelectorAll to select all results
*/
let modal = document.querySelector(
".news-frame .news-modal .bt-custom-forms .modal-dialog"
);
/* check for the iframe child attribute value */
let iframeElement = document.querySelector(
'.news-frame .news-modal .bt-custom-forms .modal-dialog iframe[src^="https://"]'
);
/* querySelector return null if no result */
if (
null !== iframeElement
&& null !== modal
) {
modal.style.width = "width: 1286px !important;";
resultDiv.innerHTML += " Good website";
} else {
resultDiv.innerHTML += " Wrong website";
}
<div id="test">
<div class="news-frame">
<div class="news-modal">
<div class="bt-custom-forms">
<div class="modal-dialog">
<iframe src="https://stackoverflow.com/questions/56073820/css-attribute-selectors-how-can-i-style-parent-element-but-use-attribute-of-chi#" width="300" heigth="200">
<p>Your browser does not support iframes.</p>
</iframe>
</div>
</div>
</div>
</div>
<div id="result"></div>
</div>
推荐阅读
- jquery - 在 JQuery 中,我可以使用变量名来引用控件吗?我正在尝试更改标签的文本,但似乎找不到引用它的方法
- android - 工作经理适合在后台播放音乐吗?
- react-native - 无法使用 npm 和 yarn 为 react devtool 安装电子
- excel - 仅在 Excel 数据透视表或 Power 查询中按连接唯一字符串分组
- flutter - 向 TextInputField 颤振添加框阴影
- nuxt.js - Apollo 模块有时不调用请求
- windows - 如何在没有断字符的情况下输出`exec.Command`的输出数据
- oracle - 使用在 Docker 容器中运行的 ksqlDB 连接到外部 Oracle 数据库
- lambda - 有没有更好的方法来创建一个带有 lambda 的 forEach 的结果的新 ArrayList
- google-apps-script - 在复制电子表格时重命名appsscript项目