Cum de a asigura Bootstrap alerte în două coloane?

0

Problema

Am un foarte simplu de a-face ca pagina unde pot intra membrii și să le eliminați sau să le marcați ca terminat. Membrii sunt Bootstrap alerte, astfel încât în prezent atât de bine.

Problema mea este, că alerta/membrii sunt prea largă și ar trebui să fie în două sau trei coloane, pentru a fi în măsură pentru a vizualiza mai multe dintre ele pe ecran.

Acest lucru este în cazul în care m-am împotmolit, pentru că rețeaua nu vreau. Nu știu ce-mi lipsește...

Poate cineva te rog ajută-mă cum de a rearanja lista de membru în două sau trei coloane?

Am încercat cu coloane cu team1 buton.

Aceasta este JSFiddle URL-ul pentru asta: 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

Cel mai bun răspuns

1
  1. clarifica HTML:

    • utilizarea CSS margin proprietate în loc de <br>
    • utilizați text-center de clasă în loc de center tag
    • locul de subsol la sfârșitul HTML în <footer> tag
    • utilizarea .container în loc de .container-fluid și coloane goale
    • utilizarea ierarhie .form-inline > .input-group > .input-group-btn pentru a organiza intrări și butoane ca forma inline
  2. CSS:

    • Am eliminat unele CSS instrucțiuni și restaurate original comportamentul Bootstrap container. Vă recomandăm să utilizați Bootstrap 4 sau 5 cu flex-cutii pentru a obține mai multe posibilități flexibile.
    • Am adăugat stiluri pentru form-inline bloc pentru a îmbunătăți aspectul său pe el înguste ecran.
  3. Redo JS:

    • folie de alertă cod HTML într-o funcție separată addMember
    • mai adaugă o funcție pentru adăugarea de echipe de textarea id-ul
    • simplifica click codul pentru butoane cu o ajutorul acestor două funcții
    • utilizarea .toggleClass() în loc de .css() pentru a schimba aspectul alerte pe click
    • utilizarea .append() pentru a adăuga o nouă alertă la sfârșitul listei
  4. Face coloane:

    • Folie de alerte în coloana bloc pentru a plasa mai multe alerte într-o linie.
    • Se adaugă două clase col-xs-6 col-sm-4 pentru a organiza alerte în 2 coloane de pe mobil și în 3 coloane pe ecran lat.
    • Acum Bootstrap e de neglijat alerte nu sunt de ajuns, pentru că trebuie să eliminați coloana blocului prea. Astfel încât să putem elimina alert-dismissible clasa și data-dismissatribut. Am adăugat alternative membru de închidere cod de jQuery prea.

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, wow. Acest răspuns este foarte detaliat, foarte îmbunătățirea. Vă mulțumim pentru a lua timp și efort pentru a scrie împreună!!
VORiAND
0

Cu toate acestea de mult aspectul poate fi îmbunătățit, alte răspunsuri de aici au făcut-o deja pentru tine. Dar dacă sunteți în căutarea de a rupe alertă în 3 coloane, fără a fi nevoie să schimbi întregul cod, trebuie doar să adăugați clasa col-sm-4 (care va produce 3 coloane pe fereastra la dimensiunea ecranului mic) pe JS linie atribuiți valoarea la y. Această declarație devine acum:

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

În alte limbi

Această pagină este în alte limbi

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