边框间距属性不起作用

时间:2017-08-29 17:57:10

标签: html css css3 flexbox

首先,感谢您抽出宝贵时间。我希望得到这个结果 - 与您在下图中看到的相同:

Border spacing

我试图实现3个DIV。第一个div就像一个容器,另外两个DIV就像列。

我创建的主DIV的代码是:

.detacont {
border-top: 1px solid #c0c0c0;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-flow: row wrap;
-ms-flex-flow: row wrap;
margin-top: 20px;
padding-top: 7px;
}

其他DIV的代码是:

    .leftcol {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
width: 50%;
}

并且

    .rightcol {

border-left: solid 1px #c0c0c0;
padding-left: 15px;

 }

这是HTML:

<div class="detacont">
<div class="detacont leftcol">
<div class="travel-price" itemprop="priceRange">
<span class="pricefrom">
Offer
</span>
<span class="pricelarge">
<span class="pricecurrency" itemprop="currenciesAccepted" content="USD">$</span>
<span class="pricenums">150</span>
<span class="pricenumsclose">per item</span>
</span>
</div>

并且

<div class="detacont rightcol">
<div class="linkcls">
<a class="linkcliss" href="http://amazon.com" rel="nofollow" target="_blank">Buy Now</a>
</div>
</div>
</div>
</div>

我无法将TOP div边界分开,这就是我所得到的。我错过了什么?

enter image description here

完整的CSS代码:

<style>

.detacont {
border-top: 1px solid #c0c0c0;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-flow: row wrap;
-ms-flex-flow: row wrap;
margin-top: 20px;
padding-top: 7px;
}
.detacont .leftcol {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: vertical;
-webkit-box-direction: normal;
width: 50%;
padding-top: 7px;
}
.travel-price {
font-size: 2rem;
line-height: 2.2rem;
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-flow: row wrap;
-ms-flex-flow: row wrap;
flex-flow: row wrap;
}
.pricefrom {
font-size: 1.7rem;
line-height: 2rem;
-webkit-align-content: flex-end;
-ms-flex-line-pack: end;
align-content: flex-end;
width: 100%;
}
.pricelarge {
display: -webkit-box;
display: -webkit-flex;
display: -ms-flexbox;
display: flex;
-webkit-box-orient: horizontal;
-webkit-box-direction: normal;
-webkit-flex-direction: row;
-ms-flex-direction: row;
flex-direction: row;
}
.pricecurrency {
font-size: 2rem;
line-height: 3.3rem;
-webkit-align-self: flex-start;
-ms-flex-item-align: start;
align-self: flex-start;
}
.pricenums {
font-size: 4.1rem;
line-height: 4.1rem;
}
.pricenumsclose {
color: #888;
-webkit-align-self: flex-end;
-ms-flex-item-align: end;
align-self: flex-end;
padding-bottom: .75rem;
}
.rightcol {

border-left: solid 1px #c0c0c0;
padding-left: 15px;

 }

.linkcls {
    font-size: 1.4rem;
    line-height: 1.8rem;
}
.linkcliss {
    font-size: 1.7rem;
    line-height: 2.5rem;
    -webkit-box-align: center;
    -webkit-align-items: center;
    -ms-flex-align: center;
    align-items: center;
    background-color: #008385;
    color: #fff;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -webkit-justify-content: center;
    -ms-flex-pack: center;
    justify-content: center;
    min-height: 48px;
    padding: 8px 24px;
    text-align: center;
    -webkit-transition: color 200ms,background-color 200ms,border-color 200ms;
    transition: color 200ms,background-color 200ms,border-color 200ms;
    width: 100%;
}
</style>

1 个答案:

答案 0 :(得分:1)

detacont是一个适用于leftcolrightcol元素的类

<div class="detacont leftcol">
...
<div class="detacont rightcol">

detacont课程的第一条规则是

border-top: 1px solid #c0c0c0;

因此,当您将此类应用于列元素时,它会带来所有CSS规则。

解决此问题的一种方法是为容器提供一个具有自己的border-top规则的唯一类。

例如:

.container {
  border-top: 1px solid #c0c0c0; }