css - 基于 div 而不是屏幕的条件 CSS

标签 css conditional-statements

所以我做了一些研究并接近答案,但我试图做的事情可能无法单独使用 CSS,我真的希望它是。

最终目标是,如果 id 为 primary 的元素的宽度为 915 或更小,则将具有 bricks 类的元素的宽度设置为 90%。

html 片段:

<div id='primary'>
    <div class='bricks'>
        <p>div-1</p>
    </div>
    <div class='bricks'>
        <p>div-2</p>
    </div>
</div>

CSS 片段:

#primary{
    width:100%;
}

.bricks{
    width:45%;
}

@media only screen and ( max-width: 915px ){
    .bricks{
        width:90%;
    }
}

如果屏幕尺寸小于 915 像素,这目前有效并将带有砖 block 作为类的元素的宽度设置为 90%。但是要注意的是,有一些动态内容可能会或可能不会 float 到 id 为 primary 的元素的左侧和右侧。这意味着屏幕尺寸并不总是决定元素的宽度。

问题:有没有办法根据 #primary 的宽度仅使用 CSS(无 javascript/php/等)为 .bricks 设置条件 CSS 而不是屏幕尺寸?

我知道这可以通过 javascript 轻松完成,但要使其与其他 javascript/jQuery 插件一起使用,必须在 CSS 样式表中而不是在元素样式属性中设置 css。

最佳答案

无法在 div 宽度上放置 if 条件

我知道这可以用 javascript 轻松完成,但要使其与其他 javascript/jQuery 插件一起使用,必须在 CSS 样式表中设置 css,而不是在元素样式中属性。

为此,您可以在样式表中使用 2 个不同的类,即

.wide {width:90%;}
.half {width:45%;}

现在您可以使用 jQuery 检查 #primary 容器宽度并设置类:

const $primary = $("#primary");
$primary
    .find(".bricks")
        .addClass($primary.width() < 915 ? "wide" : "half")

关于css - 基于 div 而不是屏幕的条件 CSS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17183302/

相关文章:

css - 使用 CSS 样式图像文本输入框的光标放置

shell - 如果在 shell 脚本中嵌套

c# - 通用列表,使用条件语句计数的项目

r - 检查一个 df 的每组是否至少有两个值与另一个 df 组匹配

mathjax - 文本溢出 :ellipsis with MathJax?

html - 如何在 html/css 中垂直分隔组内容?

css - 为响应式设计检测不同桌面显示器的宽度

python - 如何在 python 窗口中显示和管理 HTML

PHP 日期之间的比较

R ifelse 匹配