Ako zariadiť, aby Bootstrap upozornenia do dvoch stĺpcov?

0

Otázka

Mám veľmi jednoduchý-sa mi páči stránka, kde by som mohol vstúpiť členov a odstrániť ich alebo ich označiť ako splnenú. Členovia sú Bootstrap upozornenia, zatiaľ je všetko dobré.

Môj problém je, že záznam/členovia sú príliš široký a mal by byť v dvoch alebo troch stĺpcov, aby ste si mohli pozrieť viac z nich na obrazovke.

To je, kde som si zasekol, pretože sústavy nechce to. Neviem, čo mám chýba...

Môže niekto prosím, pomôžte mi, ako na usporiadanie zoznamu členov do dvoch alebo troch stĺpcov?

Snažil som sa s stĺpce s team1 tlačidlo.

Toto je JSFiddle URL na to: https://jsfiddle.net/voriand/zsfo65wb/

$(document).ready(function() {
  $('.btn-addmember').click(function() {
    if ($('#text').val().length != 0) {
      var x = $('#memberlist').html();
      var y =
        `<div class="alert alert-success alert-dismissible fade in">
        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                            ` + $('#text').val() + `</div>`;
      $('#memberlist').html(y + x);
      $('#text').val("");
    } else alert("Please, enter the name of the member");
  });
  
  //Adding members of team1
  $('.btn-team1').click(function() {
    if ($('#team1').val().length != 0) {
      var members = $('#team1').val().split('\n');

      for (var i = 0; i < members.length; i++) {
        var x = $('#memberlist').html();
        var y =
          `<div class="col-sm"><div class="alert alert-success alert-dismissible fade in">
                                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                                        <b>` + members[i] + `</b></div></div>`;
        if (members[i].trim().length > 0) {
          $('#memberlist').html(y + x);
        }
      }
    }
  });

  //Adding members of team2
  $('.btn-team2').click(function() {
    if ($('#team2').val().length != 0) {
      var members = $('#team2').val().split('\n');

      for (var i = 0; i < members.length; i++) {
        var x = $('.container').html();
        var y =
          `<div class="alert alert-success alert-dismissible fade in">
                                        <a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
                                        <b>` + members[i] + `</b></div>`;
        if (members[i].trim().length > 0) {
          $('.container').html(y + x);
        }
      }
    }
  });
  // When Member is clicked
  $(document).on('click', '.alert', function() {
    if ($(this).css('text-decoration-line') == "none") {
      $(this).css('text-decoration-line', 'line-through');
      $(this).css('background-color', '#dddddd');
      $(this).css('border-color', '#dddddd');
    } else {
      $(this).css('text-decoration-line', 'none');
      $(this).css('background-color', '#dff0d8');
      $(this).css('border-color', '#d6e9c6');
    }
  });
});
.container {
  width: 80%;
  height: auto;
}

.foot {
  position: fixed;
  left: 10%;
  bottom: 0;
  width: 80%;
  text-align: center;
}

.form-group {
  height: 0px;
  visibility: hidden;
}

.copyright {
  width: 100%;
  text-align: right;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>

<center>

  <div class="foot">
    <div class="row">
      <div class="col-sm-1"> </div>
      <div class="col-sm-10">
        <!-- Input for members -->
        <div class="input-group">
          <input type="text" class="form-control" placeholder="Add member" id="text">
          <div class="input-group-btn">
            <button class="btn btn-success btn-addmember">
                <i class="glyphicon glyphicon-plus">
                </i></button>
          </div>
          <div class="input-group-btn">
            <button class="btn btn-success btn-team1">
                <i class="glyphicon glyphicon-plus">
                </i> TEAM1</button>
          </div>
          <div class="input-group-btn">
            <button class="btn btn-success btn-team2">
                <i class="glyphicon glyphicon-plus">
                </i> TEAM2</button>
          </div>
        </div>
        <br>
        <br>
      </div>
    </div>
    <div class="form-group">
      <label for="exampleFormControlTextarea1">Team1</label>
      <textarea class="form-control" id="team1" rows="3">
        vivamus eget 
        lacus vitae 
        mi vulputate 
        varius integer 
        suscipit orci 
        condimentum
        vestibulum
        </textarea>
      <label for="exampleFormControlTextarea1">Team2</label>
      <textarea class="form-control" id="team2" rows="3">
        vivamus eget 
        lacus vitae 
        mi vulputate 
        varius integer 
        suscipit orci 
        condimentum
        vestibulum
        </textarea>
    </div>
    <p class="copyright">Created by: Me - <a href="mailto:[email protected]">[email protected]</a></p>
  </div>

  <br>
  <h2 class="text text-success">Team Members</h2>
  <br>

  <div class="container-fluid">
    <div id="memberlist" class="row">

    </div>
  </div>
</center>

alert html javascript jquery
2021-11-19 14:26:30
2

Najlepšiu odpoveď

1
  1. objasniť HTML:

    • pomocou CSS margin majetok namiesto <br>
    • použitie text-center trieda namiesto center značka
    • miesto päta na konci HTML v <footer> značka
    • použitie .container namiesto .container-fluid a prázdne stĺpce
    • pomocou hierarchie .form-inline > .input-group > .input-group-btn organizovať vstupy a tlačidlá, ako inline formulár
  2. CSS:

    • Som odstránil niektoré CSS pokyny a obnoviť pôvodné správanie Bootstrap je kontajner. Odporúčam používať Bootstrap 4 alebo 5 s flex-krabice dosiahnuť viac flexibilné možnosti.
    • Pridal som štýly pre form-inline blok na zlepšenie jeho rozloženie na on úzke obrazovke.
  3. Redo JS:

    • zábal upozornenie HTML kód v samostatnej funkcie addMember
    • pridať jednu funkciu pre pridanie tímov podľa textarea id
    • zjednodušenie click kód pre tlačidlá s pomocou týchto dvoch funkcií
    • použitie .toggleClass() namiesto .css() ak chcete zmeniť upozornenia vzhľad kliknite na
    • použitie .append() ak chcete pridať nové upozornenia na konci zoznamu
  4. Aby stĺpce:

    • Zábal upozornenia v stĺpci bloku na miesto niekoľko upozornenia v súlade.
    • Pridať dve triedy col-xs-6 col-sm-4 organizovať upozornenia v 2 stĺpce na mobile a v 3 stĺpcoch na celej obrazovke.
    • Teraz Bootstrap je dismissible výstrahy nie sú dostatočne, pretože sa musíme odstrániť stĺpec blok príliš. Takže môžeme odstrániť alert-dismissible trieda a data-dismissatribút. Pridal som náhradného člena uzávierky kód jQuery príliš.

https://codepen.io/glebkema/pen/jOLJYJE

$(document).ready(function() {
  var memberList = $("#memberlist");

  memberList.on("click", ".alert", function() {
    $(this).toggleClass("member-clicked");
  });

  memberList.on("click", ".close", function() {
    var memberColumn = $(this).parent().parent();
    memberColumn.fadeOut();
  });

  $(".btn-addmember").click(function() {
    var newMember = $("#text").val().trim();
    if (newMember) {
      addMember(newMember);
    } else {
      alert("Please, enter the name of the member");
    }
    $("#text").val("");
  });

  $(".btn[data-team]").click(function() {
    addTeam($(this).data("team"));
  });

  function addMember(member) {
    member = member.trim();
    if (member) {
      memberList.append(
        `<div class="col-xs-6 col-sm-4"><div class="alert alert-success">` +
        `<span class="close" aria-label="close">&times;</span>` +
        member +
        `</div></div>`
      );
    }
  }

  function addTeam(id) {
    var team = $("#" + id).val().trim();
    if (team) {
      var members = team.split("\n");
      console.log(members);
      for (var i = 0; i < members.length; i++) {
        addMember(members[i]);
      }
    }
  }
});
.footer {
  position: fixed;
  left: 0;
  bottom: 0;
  right: 0;
}

/* create a class for .toggleClass() */
.alert.member-clicked {
  text-decoration-line: line-through;
  background-color: #ddd;
  border-color: #ddd;
}

/* use margin instead of <br> */
.copyright {
  margin-top: 10px;
}

/* use these values not only when the screen is wider than 768 pixels */
.form-inline.form-members .input-group {
  display: inline-table;
  vertical-align: middle;
}
.form-inline.form-members .input-group .input-group-btn {
  width: auto;
}
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div class="container">
  <h2 class="text text-success text-center">Team Members</h2>
  <div id="memberlist" class="row"></div>
</div>

<footer class="footer">
  <div class="container">
    <!-- Input for members -->
    <div class="form-inline form-members">
      <div class="input-group">
        <input type="text" class="form-control" placeholder="Add member" id="text">
        <div class="input-group-btn">
          <button class="btn btn-success btn-addmember"><i class="glyphicon glyphicon-plus"></i></button>
        </div>
      </div>
      <button class="btn btn-success" data-team="team1"><i class="glyphicon glyphicon-plus"></i> TEAM1</button>
      <button class="btn btn-success" data-team="team2"><i class="glyphicon glyphicon-plus"></i> TEAM2</button>
    </div>

    <div class="form-group hidden">
      <label for="exampleFormControlTextarea1">Team1</label>
      <textarea class="form-control" id="team1" rows="7">
        1 vivamus eget 
        1 lacus vitae 
        1 mi vulputate 
        1 varius integer 
        1 suscipit orci 
        1 condimentum
        1 vestibulum
      </textarea>

      <label for="exampleFormControlTextarea1">Team2</label>
      <textarea class="form-control" id="team2" rows="7">
        2 vivamus eget 
        2 lacus vitae 
        2 mi vulputate 
        2 varius integer 
        2 suscipit orci 
        2 condimentum
        2 vestibulum
      </textarea>
    </div>

    <p class="copyright text-right">Created by: Me - <a href="mailto:[email protected]">[email protected]</a></p>
  </div>
</footer>

2021-11-20 00:25:56

Wow, len wow. Táto odpoveď je veľmi podrobná, veľmi zlepšenie. Ďakujem za čas a úsilie, aby sa napísať to spoločne!!
VORiAND
0

Avšak oveľa rozloženia môže byť lepšie, iné odpovede tu už urobil za vás. Ale ak hľadáte len zlomiť hlásenia do 3 stĺpce bez toho, aby museli zmeniť celý váš kód, stačí pridať triedy col-sm-4 (čo sa bude produkovať 3 stĺpce na pohlad od malú veľkosť obrazovky) na váš JS linka, kde si priradiť hodnotu y. Tak, že vyhlásenie, teraz sa stáva:

var y = "<div class='alert alert-success alert-dismissible fade in'><a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a>" + $('#text').val() + "</div>";

2021-11-20 00:06:45

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................