Je me demandais, est-il possible de définir une couleur d'arrière-plan derrière le rayon de la bordure?

Je veux obtenir cet effet: entrez la description de l'image ici

J'utilise ce HTML:

<div class="content-header" tabindex="-1">
    <span class="html">TITLE</span>
</div>
<div class="content-txt-v2" tabindex="-1">
  <p>
  Content
  </p>        
</div>

Et j'utilise ce CSS:

.content-header {
    height: 18px;
    line-height: 18px;
    background-color: #4C741B;
    margin-top: 20px;
    float: left;
    -moz-border-radius: 10px 10px 0px 0px;
    -webkit-border-radius: 10px 10px 0px 0px;
    -khtml-border-radius: 10px 10px 0px 0px;
    border-radius: 10px 10px 0px 0px;    
    padding: 0px 14px;
    font-weight: bold;
    font-size: 14px;
    color:#fff;
}
.content-txt-v2 {
    clear: both;
    width: 669px;
    padding: 0 10px;
    margin: 0px auto;
      border: 2px solid #E9EAE3;
    -moz-border-radius: 20px 10px 10px 10px;
    -webkit-border-radius: 20px 10px 10px 10px;
    -khtml-border-radius: 20px 10px 10px 10px;
    border-radius: 20px 10px 10px 10px;
    float:left;
    background-color:red;
}

J'ai ajouté le code ci-dessus dans un JSFIDDLE

J'ai essayé de définir la couleur d'arrière-plan de mon div content-txt-v2 mais sans succès. Quelqu'un peut-il me guider dans la bonne direction? Est-ce possible avec seulement deux div? ou devrais-je ajouter plus d'objets?

1
Rotan075 5 janv. 2016 à 12:19

2 réponses

Meilleure réponse

Pourquoi tu ne fais pas quelque chose comme ça? il vous donne la sortie souhaitée sans trop de maux de tête!

* {
  box-sizing: border-box;
}
.content-header {
  height: 18px;
  line-height: 18px;
  background-color: #4C741B;
  margin-top: 20px;
  float: left;
  -moz-border-radius: 10px 10px 0px 0px;
  -webkit-border-radius: 10px 10px 0px 0px;
  -khtml-border-radius: 10px 10px 0px 0px;
  border-radius: 10px 10px 0px 0px;
  padding: 0px 14px;
  font-weight: bold;
  font-size: 14px;
  color: #fff;
  z-index: 10;
  /* z-index same as red bar*/
  position: relative;
}
.content-header:after {
  position: absolute;
  top: 100%;
  left: 0;
  content: '';
  background: #4C741B;
  width: 18px;
  height: 18px;
  display: block;
  z-index: 5;
  /* z-index less than red bar*/
}
.content-txt-v2 {
  clear: both;
  width: 669px;
  padding: 0 10px;
  margin: 0px auto;
  border: 2px solid #E9EAE3;
  -moz-border-radius: 20px 10px 10px 10px;
  -webkit-border-radius: 20px 10px 10px 10px;
  -khtml-border-radius: 20px 10px 10px 10px;
  border-radius: 20px 10px 10px 10px;
  float: left;
  background-color: red;
  position: relative;
  /* for giving z-index */
  z-index: 10;
  /* z-index equal to title block */
}
<div class="content-header" tabindex="-1">
  <span class="html">TITLE</span>
</div>
<div class="content-txt-v2" tabindex="-1">
  <p>
    Content
  </p>
</div>
1
Deepak Yadav 5 janv. 2016 à 09:35

C'est assez difficile à faire, mais vous pouvez le simuler: https://jsfiddle.net/85c8ss94/1/

.content-header {
    height: 30px;
    line-height: 18px;
    background-color: #4C741B;
    margin-top: 20px;
    float: left;
    -moz-border-radius: 10px 10px 0px 0px;
    -webkit-border-radius: 10px 10px 0px 0px;
    -khtml-border-radius: 10px 10px 0px 0px;
    border-radius: 10px 10px 0px 0px;    
    padding: 0px 14px;
    font-weight: bold;
    font-size: 14px;
    color:#fff;
    margin-bottom: -12px;
}
.content-txt-v2 {
    clear: both;
    width: 669px;
    padding: 0 10px;
    margin: 0px auto;
    border: 2px solid #E9EAE3;
    -moz-border-radius: 20px 10px 10px 10px;
    -webkit-border-radius: 20px 10px 10px 10px;
    -khtml-border-radius: 20px 10px 10px 10px;
    border-radius: 20px 10px 10px 10px;
    float:left;
    background-color:red;
}
2
Jonas Grumann 5 janv. 2016 à 09:23