1

我想隐藏我的 CSS 三角形,它使用 附加到一个 div :before,我遇到了这个解决方案来实现:https ://stackoverflow.com/a/11354393/998117

但是,我的 jQuery 不工作:

$(".contact input[type='submit']").click(function(event) {
    event.preventDefault();
    $(".contact .inner").addClass("hidden");
    ...

(是的,它确实被调用了。)

这就是我的 CSS/SASS 的样子:

.contact {
    background: #3c6ea5;
    color: #fff;
    display: none;
    height: 500px;

    .hidden:before {
            display: none;
        }

    .inner {
        margin: auto;
        padding-top: 20px;
        position: relative;
        width: 400px;

        &:before {
            border: solid;
            border-color: #3c6ea5 transparent;
            border-width: 14px 16px 0 16px;
            bottom: -107px;
            content: "";
            display: block;
            position: absolute;
            right: -50px;
        }

        .hidden:before {
            display: none;
        }
    }
    ...

为什么不隐藏它?我究竟做错了什么?

4

2 回答 2

6

你的 Sass 有点不对劲,应该是:

.inner {

    &.hidden:before {
        display: none;
    }
}

注意隐藏前的 &

于 2013-09-21T20:54:46.157 回答
0

试试下面的代码来解决你的问题:

.inner { &:before {     
     .hidden & { display:none;}}}
于 2020-03-19T11:17:20.203 回答