我哪里做错了?

我有一个.social div,但在第一个我想在顶部零填充,在第二个我想没有底部边界。

我尝试创建类的第一个和最后一个,但我认为我在某个地方错了:

.social {
    width: 330px;
    height: 75px;
    float: right;
    text-align: left;
    padding: 10px 0;
    border-bottom: dotted 1px #6d6d6d;
}

.social .first{padding-top:0;}

.social .last{border:0;}

还有HTML

<div class="social" class="first">
    <div class="socialIcon"><img src="images/facebook.png" alt="Facebook" /></div>
    <div class="socialText">Find me on Facebook</div>
</div>

我猜不可能有两个不同的班级吧?如果是这样,我该怎么做呢?


当前回答

如果你想只对父元素的第一个子元素应用样式,那么最好使用:first-child伪类

.social:first-child{
    border-bottom: dotted 1px #6d6d6d;
    padding-top: 0;
}
.social{
    border: 0;
    width: 330px;
    height: 75px;
    float: right;
    text-align: left;
    padding: 10px 0;
}

然后,规则.social既有公共样式,也有最后一个元素的样式。

而.social:first-child用first element的样式重写它们。

你也可以使用:last-child选择器,但是:first- children更受旧浏览器的支持 https://developer.mozilla.org/en-US/docs/CSS/:first-child#Browser_compatibility和https://developer.mozilla.org/es/docs/CSS/:last-child#Browser_compatibility。

其他回答

你可以试试这个:

HTML

<div class="social">
    <div class="socialIcon"><img src="images/facebook.png" alt="Facebook" /></div>
    <div class="socialText">Find me on Facebook</div>
</div>

CSS代码

.social {
  width:330px;
  height:75px;
  float:right;
  text-align:left;
  padding:10px 0;
  border-bottom:dotted 1px #6d6d6d;
}
.social .socialIcon{
  padding-top:0;
}
.social .socialText{
  border:0;
}

要在同一个元素中添加多个类,可以使用以下格式:

<div class="class1 class2 class3"></div>

DEMO

另一种选择是使用后代选择器

HTML:

<div class="social">
<p class="first">burrito</p>
<p class="last">chimichanga</p>
</div>

参考CSS中的第一个:.social .first{颜色:蓝色;}

在CSS中引用最后一个:.social .last{颜色:绿色;}

Jsfiddle: https://jsfiddle.net/covbtpaq/153/

如果你想在一个元素上有两个类,可以这样做:

<div class="social first"></div>

在css中引用它,如下所示:

.social.first {}

例子:

https://jsfiddle.net/tybro0103/covbtpaq/

请记住,通过在class属性中用空格分隔每个类,可以将多个类应用到一个元素。例如:

<img class="class1 class2">

如果你有两个类,即.indent和.font, class="indent font"工作。

你不需要有一个。缩进。css中的字体{}。

你可以在css中把这两个类分开,在html中使用class="class1 class2"来调用它们。只需要在一个或多个类名之间有一个空格。