'How to make a proper border around multiple elements

I still trying to learn html/css and flex box. I currently workiong on a search bar and I want to add a boder arond two icon and a placeholder. However, I'm actually just able to place a boder aroud thoses elements separatly or to the box, that is to large from what I whant do. Can someone plese help me ?

div.rechercheBar {
  background-color: red;
  display: flex;
  border: 0.5px solid blueviolet;
}

div.rechercheBarMobile {
  display: none;
}

div.buttonLocalisationIcon {
  background-color: lightgrey;
  display: flex;
  width: 50px;
  height: 50px;
  border-radius: 10px 0px 0px 10px;
  align-items: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

input.searchBar {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonResearch {
  width: 150px;
  height: 50px;
  background-color: #0065FC;
  color: #DEEBFF;
  border-radius: 0px 10px 10px 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

div.buttonResearch:hover {
  background-color: #DEEBFF;
  color: #0065FC;
  border-radius: 10px;
}


/*Format mobile*/

div.rechercheBar {
  display: none;
}

div.rechercheBarMobile {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0.5px solid pink;
  /*Erreur ICI:  met la bordure trop grande*/
}

div.buttonMagnifyingGlass {
  width: 10%;
  height: 50px;
  background-color: #0065FC;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border-radius: 10px;
}

input.searchBarMobile {
  width: 70%;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonMagnifyingGlass:hover {
  height: 50px;
  background-color: red;
  color: #0065FC;
  border-radius: 10px;
}
<div class="rechercheBar">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBar" type="search" placeholder="Marseille, France">
  <div class="buttonResearch">Rechercher</div>
</div>
<div class="rechercheBarMobile">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBarMobile" type="search" placeholder="Marseille, France">
  <div class="buttonMagnifyingGlass">
    <i class="fa-solid fa-magnifying-glass"></i>
  </div>
</div>


Solution 1:[1]

You're already part of the way there with the border-radius attribute, you just need to define the actual border attribute. I did it the shorthand way but here's a breakdown of the attribute itself: https://developer.mozilla.org/en-US/docs/Web/CSS/border Worth noting that the border attribute has quite a bit of customization options and there's also an explanation of border versus outline in the article just in case you ever decide to use an outline for something instead.

div.rechercheBar {
  background-color: red;
  display: flex;
  border: 0.5px solid blueviolet;
}

div.rechercheBarMobile {
  display: none;
}

div.buttonLocalisationIcon {
  background-color: lightgrey;
  display: flex;
  width: 50px;
  height: 50px;
  border: 1px solid black;
  border-radius: 10px 0px 0px 10px;
  align-items: center;
  justify-content: center;
}

input.searchBar {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonResearch {
  width: 150px;
  height: 50px;
  background-color: #0065FC;
  color: #DEEBFF;
  border-radius: 0px 10px 10px 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

div.buttonResearch:hover {
  background-color: #DEEBFF;
  color: #0065FC;
  border-radius: 10px;
}


/*Format mobile*/

div.rechercheBar {
  display: none;
}

div.rechercheBarMobile {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0.5px solid pink;
  /*Erreur ICI:  met la bordure trop grande*/
}

div.buttonMagnifyingGlass {
  width: 10%;
  height: 50px;
  background-color: #0065FC;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  border: 1px solid black;
  border-radius: 10px;
}

input.searchBarMobile {
  width: 70%;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonMagnifyingGlass:hover {
  height: 50px;
  background-color: red;
  color: #0065FC;
  border-radius: 10px;
}
<div class="rechercheBar">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBar" type="search" placeholder="Marseille, France">
  <div class="buttonResearch">Rechercher</div>
</div>
<div class="rechercheBarMobile">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBarMobile" type="search" placeholder="Marseille, France">
  <div class="buttonMagnifyingGlass">
    <i class="fa-solid fa-magnifying-glass"></i>
  </div>
</div>

Solution 2:[2]

For icons border you can use border: 1px solid black; and for placeholder border you can use ::-webkit-input-placeholder

div.rechercheBar {
  background-color: red;
  display: flex;
  border: 0.5px solid blueviolet;
}

div.rechercheBarMobile {
  display: none;
}

div.buttonLocalisationIcon {
    background-color: lightgrey;
    display: flex;
    width: 50px;
    height: 50px;
    border-radius: 10px 0px 0px 10px;
    align-items: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid black;
}

input.searchBar {
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonResearch {
  width: 150px;
  height: 50px;
  background-color: #0065FC;
  color: #DEEBFF;
  border-radius: 0px 10px 10px 0px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}

div.buttonResearch:hover {
  background-color: #DEEBFF;
  color: #0065FC;
  border-radius: 10px;
}


/*Format mobile*/

div.rechercheBar {
  display: none;
}

div.rechercheBarMobile {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  border: 0.5px solid pink;
  /*Erreur ICI:  met la bordure trop grande*/
}

div.buttonMagnifyingGlass {
    width: 10%;
    height: 50px;
    background-color: #0065FC;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-radius: 10px;
    border: 1px solid black;
}

input.searchBarMobile {
  width: 70%;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  padding: 20px;
}

div.buttonMagnifyingGlass:hover {
  height: 50px;
  background-color: red;
  color: #0065FC;
  border-radius: 10px;
}

.searchBarMobile::-webkit-input-placeholder {

border-style:solid;
border-width:thin 1px ;
}
.searchBarMobile:-moz-placeholder {
border-style:solid;
border-width:thin 1px;

}
.searchBarMobile:-ms-input-placeholder {
border-style:solid;
border-width:thin 1px;
}
<div class="rechercheBar">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBar" type="search" placeholder="Marseille, France">
  <div class="buttonResearch">Rechercher</div>
</div>
<div class="rechercheBarMobile">
  <div class="buttonLocalisationIcon">
    <i class="fa-solid fa-location-dot"></i>
  </div>
  <input class="searchBarMobile" type="search" placeholder="Marseille, France">
  <div class="buttonMagnifyingGlass">
    <i class="fa-solid fa-magnifying-glass"></i>
  </div>
</div>

Solution 3:[3]

Thanks you for your answer. Here what I did finally:

div.buttonLocalisationIcon {
    background-color: lightgrey;
    display: flex;
    width: 7%;
    height: 50px;
    border-radius: 10px 0px 0px 10px;
    align-items: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-top:  0.5px solid lightslategray;
    border-bottom:  0.5px solid lightslategray;
    border-left:  0.5px solid lightslategray;
}
input.searchBar{
    height: 52px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: none;
    padding: 20px;
    border-top:  0.5px solid lightslategray;
    border-bottom: 0.5px solid lightslategray;
}
div.buttonResearch {
    width: 150px;
    height: 50px;
    background-color: #0065FC;
    color: #DEEBFF;
    border-radius: 0px 10px 10px 0px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    border-top:  0.5px solid lightslategray;
    border-bottom:  0.5px solid lightslategray;
    border-right:  0.5px solid lightslategray;

}

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 AStombaugh
Solution 2 Sumit Sharma
Solution 3 myUsserName