无法弄清楚我的语法有什么问题

时间:2013-09-08 12:21:35

标签: html css css-selectors

正如您在此处http://jsfiddle.net/Ec8kN/所见,我的CSS圈无法正常工作。最初我只有一个类.circle,我多次使用多个圆圈,它工作正常。然后我决定以不同的方式命名每个圆圈(即circle-1,circle-2,circle-3),以便在稍后阶段使用JS获得更好的控制。 这就是问题的起点。现在我将它们重命名为circle-1,circle-2等,它们将不再正确显示。可能是什么问题?非常感谢

<div class="circle-1 circlebackground circle_5px_marging">
    <p>Créativité</p>
    <div class="innercircle">
        <p>Le fdfd stimule la dfdsfd du fdfds en le dfdfd à réinventer sa dfdsf de la dfds dfs et donc les fdsfs qu’il peut y fdssf.</p>
    </div>
</div>
<div class="circle-2 circlebackground circle_5px_marging">
    <p>Circle 2</p>
    <div class="innercircle">
        <p>by Angela</p>
    </div>
</div>
<div class="circle-3 circlebackground">
    <p>Circle 3</p>
    <div class="innercircle">
        <p>by Angela</p>
    </div>
</div>


.circle_5px_marging {
    margin-right: 30px;
}
.circle-1, .circle-2, .circle-3  {
    position: relative;
    float: left;
    margin-bottom: 10px;
    width: 220px;
    height: 220px;
    border-radius: 50%;
    box-shadow: inset 0 0 0 0px rgba(255, 255, 255, 0.6), 0 1px 2px rgba(0, 0, 0, 0.1);
    -webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
}

.circlebackground {
    border:1px solid #2970AE;
    background: #FFF;

}
.innercircle {
    position: absolute;
    width: inherit;
    height: inherit;
    border-radius: 50%;
    background: #2970AE;
    opacity: 0;
    -webkit-transition: all 0.4s ease-in-out;
    -moz-transition: all 0.4s ease-in-out;
    -ms-transition: all 0.4s ease-in-out;
    -o-transition: all 0.4s ease-in-out;
    transition: all 0.4s ease-in-out;
    -webkit-transform: scale(0);
    -moz-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    -webkit-backface-visibility: hidden;
}
.circle-1, .circle-2, .circle-3 p {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    color: #2970AE;
    letter-spacing: 1px;
    font-weight: 700;
    font-size: 14px;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.innercircle p {
    position: absolute;
    top: 50%;
    left: 50%;
    margin: 0;
    color:#fff;
    text-align: center;
    font-weight: 300;
    font-size: 10px;
    opacity: 1;
    -webkit-transition: all 1s ease-in-out 0.4s;
    -moz-transition: all 1s ease-in-out 0.4s;
    -ms-transition: all 1s ease-in-out 0.4s;
    -o-transition: all 1s ease-in-out 0.4s;
    transition: all 1s ease-in-out 0.4s;
    -webkit-transform: translate(-50%, -50%);
    transform: translate(-50%, -50%);
}
.circle-1:hover {
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.1), 0 1px 2px rgba(0, 0, 0, 0.1);
}
.circle-1:hover .innercircle {
    opacity: 1;
    -webkit-transform: scale(1);
    -moz-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
}

.circle-1:hover .innercircle p {
    opacity: 1;
}

.clear {
    clear: both;
}

5 个答案:

答案 0 :(得分:3)

.circle-1, .circle-2, .circle-3 p更改为.circle-1 p, .circle-2 p, .circle-3 p。它应该工作。

就像现在一样,此规则下设置的属性将应用于classcircle-1circle-2的元素以及p标记所有元素下的class标记1}}为circle-3

Fiddle Demo

答案 1 :(得分:2)

您需要修复一个选择器:

.circle-1 p, .circle-2 p, .circle-3 p

而不是:

.circle-1, .circle-2, .circle-3 p

就像我在您之前的问题上写过的那样,当前选择器应用于.circle-1.circle-2以及.circle-3内的所有段落。如果您希望将它应用于这些类中的每个段落,则必须分别在每个类上解决p

jsFiddle Demo

答案 2 :(得分:1)

我只能建议您恢复常用的圆圈类,然后为每个圆圈添加不同的ID(例如id =“circle1”),并使用#CSS运算符(例如#circle1)自定义每个圆圈。这样你可以稍微整理你的CSS代码。例如,您的第一个圈子:

    <div id="circle-1" class="circle circlebackground circle_5px_marging">
    <p>Créativité</p>
    <div class="innercircle">
    <p>Le fdfd stimule la dfdsfd du fdfds en le dfdfd à réinventer sa dfdsf de la dfds dfs et donc les fdsfs qu’il peut y fdssf.</p>
    </div>

here

答案 3 :(得分:0)

回到你的圈子的一个css课程是要走的路。如果您需要在Javascript中区分它们,请在每个圆圈中添加一个ID。

来自W3学校:

类选择器用于指定一组元素的样式。与id选择器不同,类选择器最常用于多个元素。

此外,访问Javascript中的ID比访问类更容易,更快捷。即使框架变得简单,浏览器现在也很快。

答案 4 :(得分:-1)

我发现了这个问题。 没有语法错误,但你所拥有的Circle 1被Circle-2重叠,你可以通过隐藏圆圈2看到它。

所以你只需要改变圆圈2的位置。