Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

How can I update this legacy glyphicons to work with Bootstrap 5's FontAwesome?

The following code works well using Bootstrap 3, but when I update to Bootstrap 5, the glyphicon doesn’t work.

The following is the HTML, which renders nice radio buttons. When an option is checked, it should show a nice glyphicon, but this doesn’t work in Bootstrap 5. How can I update this code to work with Bootstrap 5?

<ul class="chec-radio">
    <li class="pz">
        <label class="radio-inline">
            <input type="radio" checked="" id="pro-chx-residential" name="property_type" class="pro-chx" value="constructed">
            <div class="clab">Beginner</div>
        </label>
    </li>
    <li class="pz">
        <label class="radio-inline">
            <input type="radio" id="pro-chx-commercial" name="property_type" class="pro-chx" value="unconstructed" checked>
            <div class="clab">Intermediate</div>
        </label>
    </li>
    <li class="pz">
        <label class="radio-inline">
            <input type="radio" id="pro-chx-open" name="property_type" class="pro-chx" value="open_land">
            <div class="clab">Advanced</div>
        </label>
    </li>
</ul>

This is the CSS:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

ul.chec-radio {
    margin: 15px;
}
ul.chec-radio li.pz {
    display: inline;
}
.chec-radio label.radio-inline input[type="checkbox"] {
    display: none;
}
.chec-radio label.radio-inline input[type="checkbox"]:checked+div {
    color: #fff;
    background-color: #000;
}
.chec-radio .radio-inline .clab {
    cursor: pointer;
    background: #e7e7e7;
    padding: 7px 20px;
    text-align: center;
    text-transform: uppercase;
    color: #333;
    position: relative;
    height: 34px;
    float: left;
    margin: 0;
    margin-bottom: 5px;
}
.chec-radio label.radio-inline input[type="checkbox"]:checked+div:before {
    content: "\e013";
    margin-right: 5px;
    font-family: 'Glyphicons Halflings';
}
.chec-radio label.radio-inline input[type="radio"] {
    display: none;
}
.chec-radio label.radio-inline input[type="radio"]:checked+div {
    color: #fff;
    background-color: #000;
}
.chec-radio label.radio-inline input[type="radio"]:checked+div:before {
    content: "\e013";
    margin-right: 5px;
    font-family: 'Glyphicons Halflings';
}

Any help is highly appreciated. Thanks.

>Solution :

Here is the Updated code using bootstrap 5

ul.chec-radio {
  margin: 15px;
  padding: 0;
}

ul.chec-radio li.pz {
  display: inline-block;
  margin-right: 10px;
  vertical-align: middle;
}

.chec-radio .radio-inline .clab {
  display: flex;
  align-items: center;
  cursor: pointer;
  background: #e7e7e7;
  padding: 7px 20px;
  text-align: center;
  text-transform: uppercase;
  color: #333;
  position: relative;
  height: 34px;
  margin: 0;
  margin-bottom: 5px;
}

.chec-radio label.radio-inline input[type="checkbox"] {
  display: none;
}

.chec-radio label.radio-inline input[type="checkbox"]:checked+div {
  color: #fff;
  background-color: #000;
}

.chec-radio label.radio-inline input[type="checkbox"]:checked+div:before,
.chec-radio label.radio-inline input[type="radio"]:checked+div:before {
  content: "\f00c";
  margin-right: 5px;
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
}

.chec-radio label.radio-inline input[type="radio"] {
  display: none;
}

.chec-radio label.radio-inline input[type="radio"]:checked+div {
  color: #fff;
  background-color: #000;
}
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Bootstrap 5 Radio Buttons</title>
  <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/css/bootstrap.min.css" rel="stylesheet">
  <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.3/dist/js/bootstrap.bundle.min.js"></script>
  <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/5.15.3/css/all.min.css">
</head>

<body>
  <ul class="chec-radio">
    <li class="pz">
      <label class="radio-inline">
                <input type="radio" checked="" id="pro-chx-residential" name="property_type" class="pro-chx" value="constructed">
                <div class="clab">Beginner</div>
            </label>
    </li>
    <li class="pz">
      <label class="radio-inline">
                <input type="radio" id="pro-chx-commercial" name="property_type" class="pro-chx" value="unconstructed" checked>
                <div class="clab">Intermediate</div>
            </label>
    </li>
    <li class="pz">
      <label class="radio-inline">
                <input type="radio" id="pro-chx-open" name="property_type" class="pro-chx" value="open_land">
                <div class="clab">Advanced</div>
            </label>
    </li>
  </ul>
</body>

</html>
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading