JSFiddle - React, Tailwind, and code Playground

by zerrax

HTML

<form class="page_init">
  <label class="items"><input name="items_number" type="radio"><span>6</span></label>
  <label class="items"><input name="items_number" type="radio"><span>5</span></label>
  <label class="items"><input name="items_number" type="radio"><span>4</span></label>
  <label class="items"><input name="items_number" type="radio"><span>3</span></label>
</form>

<div class="car">
<a class="a">Nouvelles séries</a>
<div id="carsl" class="carsl">
  <div class="carousel" name="items" style="margin-left:0;" id="carsl1">
  <ul>
    
  <li>
        <div>
    <a>Mr Robot</a>
    <ul id="star-rating">
<li class="rated">1</li>
<li class="rated">2</li>
<li class="rated">3</li>
<li>4</li>
<li>5</li>
</ul>
    <a>2012</a>
    <div>
      <p>
          “Proven Innocent” racconta la storia emotiva della lotta di una donna per dimostrare l’innocenza di persone condannate ingiustamente. Il dramma legale segue una sfortunata società di difesa criminale guidata da un avvocato feroce e intransigente, Madeline Scott, che è stato ingiustamente condannato in un caso di omicidio sensazionale che l’ha resa una famigerata ossessione mediatica. Madeline gestisce lo studio legale con il suo socio, Easy Boudreau, l’avvocato che l’ha aiutata a liberarsi dopo 10 anni di carcere. Il loro team comprende anche l’investigatore Bodie Quick e il direttore delle comunicazioni Violet Price, che gestisce un vero podcast criminale che segue ogni indagine.
      </p>
    </div>
     <span><a href="google.fr"></a></span>
    </div>
  </li>
  <li>
        <div>
    <a>Mr Robot</a>
    <ul id="star-rating">
<li class="rated">1</li>
<li class="rated">2</li>
<li class="rated">3</li>
<li>4</li>
<li>5</li>
</ul>
    <a>2012</a>
    <div>
      <p>
          “Proven Innocent” racconta la storia emotiva della lotta di una donna per dimostrare l’innocenza di persone condannate ingiustamente. Il dramma legale segue una sfortunata società di difesa criminale guidata da un avvocato feroce e...

CSS

body{

  padding:0;
  margin:0;
  background:#222;
}
* {
  -webkit-touch-callout: none; /* iOS Safari */
    -webkit-user-select: none; /* Safari */
     -khtml-user-select: none; /* Konqueror HTML */
       -moz-user-select: none; /* Old versions of Firefox */
        -ms-user-select: none; /* Internet Explorer/Edge */
            user-select: none; /* Non-prefixed version, currently
                                  supported by Chrome, Opera and Firefox */
}
form.page_init{
  position: relative;
  width: 90%;
  height: 40px;
  padding: 20px 0 0 0;
  margin: 0 auto;
  display: flex;
  flex-direction: row-reverse;
}
form.page_init > label > input{
  display:none;
}
form.page_init > label{
   font-size:24px;
   color:#fff;
   position: relative;
  display: block;
}
form.page_init > label:nth-child(2){
   font-size:24px;
   color:#fff;
}
form.page_init > label > span{
  background:rgba(209, 50, 50,0.8);
   padding:5px 10px;
   border-radius:5px;
   border: solid #111 1px;
   cursor:pointer;
   position:relative;
   display:block;
}
form.page_init > label > input:checked + span{
  color:#eee;
  background:rgba(209, 50, 50,0.5);
  padding:9px 14px;
  top: -4px;
}
.car{margin:20px 10px;position:relative;    padding-bottom:100px;}
.car > a.a{margin-left: 40px;color:#fff;font-size:22px;border-bottom:solid 3px rgb(209, 50, 50);cursor:default;}
.car > a:nth-child(4){left:right;color:#111;font-size:22px}

.carsl{
  width:100%;
  overflow:hidden;
  display: inline-box;
  display: -webkit-inline-box;
}
.carsl > div{
  width: 100%;
  float:left;
  position:relative;
    -webkit-transition: all 0.5s; /* Safari */
  transition: all 0.5s;
}
.carousel > ul {
  display: flex;
  padding:20px;
  grid-gap: 10px;
}
.carousel > ul > li {
  flex: 1;
  background-color: #fff;
  border-radius: 3px;
  padding: 20px;
  font-size: 14px;
  float:left;
  text-align: center;
  //border: 2px solid #FFF;
  background: #DDD;
  border-radius: 3px;
  font-size: 14px;
  height:200px;
 ...

JavaScript

function next(a) {
    var i = "";
    var els = a.parentNode.childNodes;

    els.forEach(function(element) {
        //  console.log(element)
        if (element.tagName == "DIV") {
            i++;
        }
    });
    for (var ti = 0; ti < els.length; ti++) {
        if (els[ti].tagName == "DIV") {
            var e = els[ti].childNodes;
            for (var ie = 0; ie < e.length; ie++) {
                if (e[ie].tagName == "DIV") {
                    var el = e[ie];
                    if (isNaN(parseInt(el.style.marginLeft))) {
                        el.style.marginLeft = "-0%";
                        el.style.left = "-0%";
                    } else {
                        var num = (Math.abs(parseInt(el.style.marginLeft)) + 100);
                        if (i * 100 == num) {
                            el.style.marginLeft = "0%";
                            el.style.left = "0%";
                        } else {
                            el.style.marginLeft = "-" + num + "%";
                            el.style.left = "-" + num + "%";
                        }
                    }
                    break;
                }
            }
            break;
        }

    }

}
function prev(a) {
    var i = "";
    var els = a.parentNode.childNodes;

    els.forEach(function(element) {
        //  console.log(element)
        if (element.tagName == "DIV") {
            i++;
        }
    });
    for (var ti = 0; ti < els.length; ti++) {
        if (els[ti].tagName == "DIV") {
            var e = els[ti].childNodes;
            for (var ie = 0; ie < e.length; ie++) {
                if (e[ie].tagName == "DIV") {
                    var el = e[ie];
                    if (isNaN(parseInt(el.style.marginLeft))) {
                        el.style.marginLeft = "-0%";
                        el.style.left = "-0%";
                    } else {
                        var num = (Math.abs(parseInt(el.style.marginLeft)) - 100);
                        if...