1

I'm stranded with a visual aspect in a project I'm developing

The problem it's related to the text alignment in labels. I can not align the text to the bottom of the label. If you run the snippet, you can check out my problem.

Snippet:

jQuery(function() {
Date.prototype.addDays = function(days) {
  var dat = new Date(this.valueOf());
  dat.setDate(dat.getDate() + days);
  return dat;
}
Date.prototype.yyyymmdd = function() {
  var mm = this.getMonth() + 1; // getMonth() is zero-based
  var dd = this.getDate();

  return [this.getFullYear() + "-",
          (mm>9 ? '' : '0')  + mm + "-",
          (dd>9 ? '' : '0')  + dd 
         ].join('');
};

var date0 = new Date();
date0 = date0.yyyymmdd();
var date1 = new Date();
date1 = date1.addDays(1);
date1 = date1.yyyymmdd();
jQuery("#datepiker_0").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date0)
jQuery("#datepiker_1").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date1)

jQuery("#datepiker_1").focusout(function(){
  
});

jQuery("#num_quartos").focusout(function(){
 var numero_quartos_selec = jQuery( "#num_quartos" ).val();
 var num_quartos_actuais = jQuery(".class_quartos").length;
 if( num_quartos_actuais > numero_quartos_selec){
    var id_div_del = "";
    var id_label_del = "";
    var id_br_del = "";
  for (var i = num_quartos_actuais; i > numero_quartos_selec; i--){
      id_label_del = "#label_quarto_"+i;
      id_div_del = "#quarto_"+i;
      id_br_del = "#id_br"+i;
      jQuery( id_label_del ).remove();
   jQuery( id_div_del ).remove();
      jQuery( id_br_del ).remove();  
  }
 }
 if(num_quartos_actuais < numero_quartos_selec){
  var id_div = "";
  var id_label = "";
    var div_id_label = "";
    var id_br = "";
    var name_br = "";
    var name_div = "";
    var name_label_div = "";
  var class_div = "class_quartos";
  var j = num_quartos_actuais;
    var label = "";
    var div = "";
    var br = "";
    var input_1 = "";
    var input_2 = "";
    var input_3 = "";
    var label_1 = "";
    var label_2 = "";
    var label_3 = "";
    var id_input_1 = "";
    var name_input_1 = "";
    var id_input_2 = "";
    var name_input_2 = "";
    var id_input_3 = "";
    var name_input_3 = "";
    var div_center = "";
    var div_left = "";
    var div_right = "";
    var div_id_center = "";
    var div_id_left = "";
    var div_id_right = "";
    var div_center_label = "";
    var div_center_label_id = "";
  for(var i = num_quartos_actuais; i < numero_quartos_selec; i++){
   j++;
   id_div = "quarto_"+j;
      name_label_div = "Quarto "+j;
      name_div = "quarto_"+j;
      name_br = "name_br_"+j;
      id_br = "id_br"+j;
      div_id_label = "label_quarto_"+j;
      div_center_label_id = "id_label_center_"+j;
      
       div_center_label_id = jQuery('<div>').attr({id:  div_center_label_id,  class: "div_center"});
      
      label = jQuery("<label>").attr( 'for', name_div).text(name_label_div);
      label = label.attr({id: div_id_label});
      
      label.appendTo(div_center_label_id);
      
      div = jQuery('<div>').attr({id: id_div, name: name_div, class: class_div});
      br = jQuery('<br>').attr({id: id_br, name: name_br});
      div.appendTo(label);
      
      div_id_center = "div_center"+j;
      div_id_left = "div_left"+j;
      div_id_right = "div_right"+j;
      
      div_center = jQuery('<div>').attr({id: div_id_center,  class: "div_center"});
      
      div_left = jQuery('<div>').attr({id: div_id_left, class: "div_left"});
      
      div_right = jQuery('<div>').attr({id: div_id_right, class: "div_left"});
      
      label_1 = jQuery("<label>").attr( 'for',  name_input_1).text("Adultos");
      id_input_1 = "num_adultos_"+j;
      name_input_1 = "num_adultos_"+j;
      input_1 = jQuery('<input>').attr({id: id_input_1, name: name_input_1, value: "2"});
      input_1.appendTo(label_1); 
      label_1.appendTo(div_left);
      input_1.appendTo(div_left);
      div_left.appendTo(div);
      
      label_2 = jQuery("<label>").attr( 'for', name_input_2).text("Crianças (3-12 anos)");
      id_input_2 = "num_criancas_"+j;
      name_input_2 = "num_criancas_"+j;
      input_2 = jQuery('<input>').attr({id: id_input_2, name: name_input_2, value: "0"});
      input_2.appendTo(label_2); 
      label_2.appendTo(div_right);
      input_2.appendTo(div_right);
      div_right.appendTo(div);
      
      label_3 = jQuery("<label>").attr( 'for', name_input_3).text("Bebés (0-2 anos)");
      id_input_3 = "num_bebes_"+j;
      name_input_3 = "num_bebes_"+j;
      input_3 = jQuery('<input>').attr({id: id_input_3, name: name_input_3, value: "0"});
      input_3.appendTo(label_3); 
      label_3.appendTo(div_center);
      input_3.appendTo(div_center);
      div_center.appendTo(div);
     jQuery('#num_ocupantes').append(br);
     jQuery('#num_ocupantes').append(div_center_label_id);
     jQuery('#num_ocupantes').append(div);
  }
 }
}); 

});
label{
  display: block;
  width: 75px;
  height: 40px;
  text-align: center;
}
input{
display: block;
width: 75px;
height: 20px;
text-align: right;
}
.div_center{
display: inline-block;
float:center;
width:100px;
}
.div_left{
float:left;
width:100px;
}
.div_right{
float:right;
width:100px;
}
.conteiner{
text-align:center;
width:100%px;
}
.class_quartos{
text-align:center;
width:100%px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>jQuery UI Datepicker - Default functionality</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class = "conteiner">
<div class = "div_left">
<label for ="datepiker_0">Chegada</label>
  <input type ="text" id = "datepiker_0" name = "datepiker_0" value = "" class = "datepicker">
</div>
<div class = "div_center">
  <label for ="datepiker_1">Saída</label>
  <input type ="text" id = "datepiker_1" name = "datepiker_1" value = "" class = "datepicker">
</div>
<div class = "div_right">
  <label for = "num_quartos">Quartos</label>
<input type = "text" id = "num_quartos" name = "num_quartos" value = "1">
</div>
</div>
<br> </br>
<div id = "num_ocupantes" class= "conteiner">
 <div class = "div_center">
  <label id = "label_quarto_1" for = "quarto_1">Quarto 1</label>
 </div>
  <div id = "quarto_1" class = "class_quartos">
  <div class = "div_left">
          <label for = "num_Adultos_1">Adultos</label>
  
     <input type ="text" id = "num_adultos_1" name = "num_adultos_1" value = "2" class = "num">
  </div>
  <div class = "div_center">
     <label for = "num_criancas_1">Crianças (3-12 anos)</label>
     <input type ="text" id = "num_criancas_1" name = "num_criancas_1" value = "0" class = "num">
  </div>
  <div class = "div_right">
     <label for = "num_bebes_1">Bebés (0-2 anos)</label>
         
     <input type ="text" id = "num_bebes_1" name = "num_bebes_1" value = "0" class = "num">
  </div>
  </div>
</div>

If you run the snippet, check that the text of the labels (Chegada, Saída, Quartos, Adultos), it's up in relation to the others.

Is there any way to solve this problem via css?

Lal
  • 14,505
  • 4
  • 39
  • 63
Jose Marques
  • 728
  • 1
  • 6
  • 20
  • 1
    Possible duplicate of [Vertically align text in a div](https://stackoverflow.com/questions/2939914/vertically-align-text-in-a-div) – showdev Jul 19 '17 at 17:22
  • @ showdevI I read that answer, and it related to a div. My problem is related to a label. The solution is also different from that given by @Lal. – Jose Marques Jul 19 '17 at 17:34

3 Answers3

3

You can align the text to bottom of a label using the below given CSS

display: table-cell;
vertical-align: bottom;

Just replace your CSS for label as below

label{
  /*display: block;*/
  display: table-cell;
  vertical-align: bottom;
  width: 75px;
  height: 40px;
  text-align: center;
}

See the snippet below

jQuery(function() {
Date.prototype.addDays = function(days) {
  var dat = new Date(this.valueOf());
  dat.setDate(dat.getDate() + days);
  return dat;
}
Date.prototype.yyyymmdd = function() {
  var mm = this.getMonth() + 1; // getMonth() is zero-based
  var dd = this.getDate();

  return [this.getFullYear() + "-",
          (mm>9 ? '' : '0')  + mm + "-",
          (dd>9 ? '' : '0')  + dd 
         ].join('');
};

var date0 = new Date();
date0 = date0.yyyymmdd();
var date1 = new Date();
date1 = date1.addDays(1);
date1 = date1.yyyymmdd();
jQuery("#datepiker_0").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date0)
jQuery("#datepiker_1").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date1)

jQuery("#datepiker_1").focusout(function(){
  
});

jQuery("#num_quartos").focusout(function(){
 var numero_quartos_selec = jQuery( "#num_quartos" ).val();
 var num_quartos_actuais = jQuery(".class_quartos").length;
 if( num_quartos_actuais > numero_quartos_selec){
    var id_div_del = "";
    var id_label_del = "";
    var id_br_del = "";
  for (var i = num_quartos_actuais; i > numero_quartos_selec; i--){
      id_label_del = "#label_quarto_"+i;
      id_div_del = "#quarto_"+i;
      id_br_del = "#id_br"+i;
      jQuery( id_label_del ).remove();
   jQuery( id_div_del ).remove();
      jQuery( id_br_del ).remove();  
  }
 }
 if(num_quartos_actuais < numero_quartos_selec){
  var id_div = "";
  var id_label = "";
    var div_id_label = "";
    var id_br = "";
    var name_br = "";
    var name_div = "";
    var name_label_div = "";
  var class_div = "class_quartos";
  var j = num_quartos_actuais;
    var label = "";
    var div = "";
    var br = "";
    var input_1 = "";
    var input_2 = "";
    var input_3 = "";
    var label_1 = "";
    var label_2 = "";
    var label_3 = "";
    var id_input_1 = "";
    var name_input_1 = "";
    var id_input_2 = "";
    var name_input_2 = "";
    var id_input_3 = "";
    var name_input_3 = "";
    var div_center = "";
    var div_left = "";
    var div_right = "";
    var div_id_center = "";
    var div_id_left = "";
    var div_id_right = "";
    var div_center_label = "";
    var div_center_label_id = "";
  for(var i = num_quartos_actuais; i < numero_quartos_selec; i++){
   j++;
   id_div = "quarto_"+j;
      name_label_div = "Quarto "+j;
      name_div = "quarto_"+j;
      name_br = "name_br_"+j;
      id_br = "id_br"+j;
      div_id_label = "label_quarto_"+j;
      div_center_label_id = "id_label_center_"+j;
      
       div_center_label_id = jQuery('<div>').attr({id:  div_center_label_id,  class: "div_center"});
      
      label = jQuery("<label>").attr( 'for', name_div).text(name_label_div);
      label = label.attr({id: div_id_label});
      
      label.appendTo(div_center_label_id);
      
      div = jQuery('<div>').attr({id: id_div, name: name_div, class: class_div});
      br = jQuery('<br>').attr({id: id_br, name: name_br});
      div.appendTo(label);
      
      div_id_center = "div_center"+j;
      div_id_left = "div_left"+j;
      div_id_right = "div_right"+j;
      
      div_center = jQuery('<div>').attr({id: div_id_center,  class: "div_center"});
      
      div_left = jQuery('<div>').attr({id: div_id_left, class: "div_left"});
      
      div_right = jQuery('<div>').attr({id: div_id_right, class: "div_left"});
      
      label_1 = jQuery("<label>").attr( 'for',  name_input_1).text("Adultos");
      id_input_1 = "num_adultos_"+j;
      name_input_1 = "num_adultos_"+j;
      input_1 = jQuery('<input>').attr({id: id_input_1, name: name_input_1, value: "2"});
      input_1.appendTo(label_1); 
      label_1.appendTo(div_left);
      input_1.appendTo(div_left);
      div_left.appendTo(div);
      
      label_2 = jQuery("<label>").attr( 'for', name_input_2).text("Crianças (3-12 anos)");
      id_input_2 = "num_criancas_"+j;
      name_input_2 = "num_criancas_"+j;
      input_2 = jQuery('<input>').attr({id: id_input_2, name: name_input_2, value: "0"});
      input_2.appendTo(label_2); 
      label_2.appendTo(div_right);
      input_2.appendTo(div_right);
      div_right.appendTo(div);
      
      label_3 = jQuery("<label>").attr( 'for', name_input_3).text("Bebés (0-2 anos)");
      id_input_3 = "num_bebes_"+j;
      name_input_3 = "num_bebes_"+j;
      input_3 = jQuery('<input>').attr({id: id_input_3, name: name_input_3, value: "0"});
      input_3.appendTo(label_3); 
      label_3.appendTo(div_center);
      input_3.appendTo(div_center);
      div_center.appendTo(div);
     jQuery('#num_ocupantes').append(br);
     jQuery('#num_ocupantes').append(div_center_label_id);
     jQuery('#num_ocupantes').append(div);
  }
 }
}); 

});
label{
  /*display: block;*/
  display: table-cell;
  vertical-align: bottom;
  width: 75px;
  height: 40px;
  text-align: center;
}
input{
display: block;
width: 75px;
height: 20px;
text-align: right;
}
.div_center{
display: inline-block;
float:center;
width:100px;
}
.div_left{
float:left;
width:100px;
}
.div_right{
float:right;
width:100px;
}
.conteiner{
text-align:center;
width:100%px;
}
.class_quartos{
text-align:center;
width:100%px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>jQuery UI Datepicker - Default functionality</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class = "conteiner">
<div class = "div_left">
<label for ="datepiker_0">Chegada</label>
  <input type ="text" id = "datepiker_0" name = "datepiker_0" value = "" class = "datepicker">
</div>
<div class = "div_center">
  <label for ="datepiker_1">Saída</label>
  <input type ="text" id = "datepiker_1" name = "datepiker_1" value = "" class = "datepicker">
</div>
<div class = "div_right">
  <label for = "num_quartos">Quartos</label>
<input type = "text" id = "num_quartos" name = "num_quartos" value = "1">
</div>
</div>
<br> </br>
<div id = "num_ocupantes" class= "conteiner">
 <div class = "div_center">
  <label id = "label_quarto_1" for = "quarto_1">Quarto 1</label>
 </div>
  <div id = "quarto_1" class = "class_quartos">
  <div class = "div_left">
          <label for = "num_Adultos_1">Adultos</label>
  
     <input type ="text" id = "num_adultos_1" name = "num_adultos_1" value = "2" class = "num">
  </div>
  <div class = "div_center">
     <label for = "num_criancas_1">Crianças (3-12 anos)</label>
     <input type ="text" id = "num_criancas_1" name = "num_criancas_1" value = "0" class = "num">
  </div>
  <div class = "div_right">
     <label for = "num_bebes_1">Bebés (0-2 anos)</label>
         
     <input type ="text" id = "num_bebes_1" name = "num_bebes_1" value = "0" class = "num">
  </div>
  </div>
</div>
Lal
  • 14,505
  • 4
  • 39
  • 63
2
label {
 display: flex;
 justify-content: center;
 align-items: flex-end;
}

or

label {
 display: table-cell;
 vertical-align: bottom;
}
Bogdan Efimenko
  • 131
  • 1
  • 6
2

display: flex; align-items: flex-end; will put the text at the bottom of the label

jQuery(function() {
Date.prototype.addDays = function(days) {
  var dat = new Date(this.valueOf());
  dat.setDate(dat.getDate() + days);
  return dat;
}
Date.prototype.yyyymmdd = function() {
  var mm = this.getMonth() + 1; // getMonth() is zero-based
  var dd = this.getDate();

  return [this.getFullYear() + "-",
          (mm>9 ? '' : '0')  + mm + "-",
          (dd>9 ? '' : '0')  + dd 
         ].join('');
};

var date0 = new Date();
date0 = date0.yyyymmdd();
var date1 = new Date();
date1 = date1.addDays(1);
date1 = date1.yyyymmdd();
jQuery("#datepiker_0").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date0)
jQuery("#datepiker_1").datepicker({
      dateFormat: 'yy-mm-dd'
   }).datepicker('setDate', date1)

jQuery("#datepiker_1").focusout(function(){
  
});

jQuery("#num_quartos").focusout(function(){
 var numero_quartos_selec = jQuery( "#num_quartos" ).val();
 var num_quartos_actuais = jQuery(".class_quartos").length;
 if( num_quartos_actuais > numero_quartos_selec){
    var id_div_del = "";
    var id_label_del = "";
    var id_br_del = "";
  for (var i = num_quartos_actuais; i > numero_quartos_selec; i--){
      id_label_del = "#label_quarto_"+i;
      id_div_del = "#quarto_"+i;
      id_br_del = "#id_br"+i;
      jQuery( id_label_del ).remove();
   jQuery( id_div_del ).remove();
      jQuery( id_br_del ).remove();  
  }
 }
 if(num_quartos_actuais < numero_quartos_selec){
  var id_div = "";
  var id_label = "";
    var div_id_label = "";
    var id_br = "";
    var name_br = "";
    var name_div = "";
    var name_label_div = "";
  var class_div = "class_quartos";
  var j = num_quartos_actuais;
    var label = "";
    var div = "";
    var br = "";
    var input_1 = "";
    var input_2 = "";
    var input_3 = "";
    var label_1 = "";
    var label_2 = "";
    var label_3 = "";
    var id_input_1 = "";
    var name_input_1 = "";
    var id_input_2 = "";
    var name_input_2 = "";
    var id_input_3 = "";
    var name_input_3 = "";
    var div_center = "";
    var div_left = "";
    var div_right = "";
    var div_id_center = "";
    var div_id_left = "";
    var div_id_right = "";
    var div_center_label = "";
    var div_center_label_id = "";
  for(var i = num_quartos_actuais; i < numero_quartos_selec; i++){
   j++;
   id_div = "quarto_"+j;
      name_label_div = "Quarto "+j;
      name_div = "quarto_"+j;
      name_br = "name_br_"+j;
      id_br = "id_br"+j;
      div_id_label = "label_quarto_"+j;
      div_center_label_id = "id_label_center_"+j;
      
       div_center_label_id = jQuery('<div>').attr({id:  div_center_label_id,  class: "div_center"});
      
      label = jQuery("<label>").attr( 'for', name_div).text(name_label_div);
      label = label.attr({id: div_id_label});
      
      label.appendTo(div_center_label_id);
      
      div = jQuery('<div>').attr({id: id_div, name: name_div, class: class_div});
      br = jQuery('<br>').attr({id: id_br, name: name_br});
      div.appendTo(label);
      
      div_id_center = "div_center"+j;
      div_id_left = "div_left"+j;
      div_id_right = "div_right"+j;
      
      div_center = jQuery('<div>').attr({id: div_id_center,  class: "div_center"});
      
      div_left = jQuery('<div>').attr({id: div_id_left, class: "div_left"});
      
      div_right = jQuery('<div>').attr({id: div_id_right, class: "div_left"});
      
      label_1 = jQuery("<label>").attr( 'for',  name_input_1).text("Adultos");
      id_input_1 = "num_adultos_"+j;
      name_input_1 = "num_adultos_"+j;
      input_1 = jQuery('<input>').attr({id: id_input_1, name: name_input_1, value: "2"});
      input_1.appendTo(label_1); 
      label_1.appendTo(div_left);
      input_1.appendTo(div_left);
      div_left.appendTo(div);
      
      label_2 = jQuery("<label>").attr( 'for', name_input_2).text("Crianças (3-12 anos)");
      id_input_2 = "num_criancas_"+j;
      name_input_2 = "num_criancas_"+j;
      input_2 = jQuery('<input>').attr({id: id_input_2, name: name_input_2, value: "0"});
      input_2.appendTo(label_2); 
      label_2.appendTo(div_right);
      input_2.appendTo(div_right);
      div_right.appendTo(div);
      
      label_3 = jQuery("<label>").attr( 'for', name_input_3).text("Bebés (0-2 anos)");
      id_input_3 = "num_bebes_"+j;
      name_input_3 = "num_bebes_"+j;
      input_3 = jQuery('<input>').attr({id: id_input_3, name: name_input_3, value: "0"});
      input_3.appendTo(label_3); 
      label_3.appendTo(div_center);
      input_3.appendTo(div_center);
      div_center.appendTo(div);
     jQuery('#num_ocupantes').append(br);
     jQuery('#num_ocupantes').append(div_center_label_id);
     jQuery('#num_ocupantes').append(div);
  }
 }
}); 

});
label{
  display: flex;
  width: 75px;
  height: 40px;
  text-align: center;
  align-items: flex-end;
}
input{
display: block;
width: 75px;
height: 20px;
text-align: right;
}
.div_center{
display: inline-block;
float:center;
width:100px;
}
.div_left{
float:left;
width:100px;
}
.div_right{
float:right;
width:100px;
}
.conteiner{
text-align:center;
width:100%px;
}
.class_quartos{
text-align:center;
width:100%px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<meta charset="utf-8">
     <meta name="viewport" content="width=device-width, initial-scale=1">
      <title>jQuery UI Datepicker - Default functionality</title>
      <link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
      <link rel="stylesheet" href="/resources/demos/style.css">
      <script src="https://code.jquery.com/jquery-1.12.4.js"></script>
      <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<div class = "conteiner">
<div class = "div_left">
<label for ="datepiker_0">Chegada</label>
  <input type ="text" id = "datepiker_0" name = "datepiker_0" value = "" class = "datepicker">
</div>
<div class = "div_center">
  <label for ="datepiker_1">Saída</label>
  <input type ="text" id = "datepiker_1" name = "datepiker_1" value = "" class = "datepicker">
</div>
<div class = "div_right">
  <label for = "num_quartos">Quartos</label>
<input type = "text" id = "num_quartos" name = "num_quartos" value = "1">
</div>
</div>
<br> </br>
<div id = "num_ocupantes" class= "conteiner">
 <div class = "div_center">
  <label id = "label_quarto_1" for = "quarto_1">Quarto 1</label>
 </div>
  <div id = "quarto_1" class = "class_quartos">
  <div class = "div_left">
          <label for = "num_Adultos_1">Adultos</label>
  
     <input type ="text" id = "num_adultos_1" name = "num_adultos_1" value = "2" class = "num">
  </div>
  <div class = "div_center">
     <label for = "num_criancas_1">Crianças (3-12 anos)</label>
     <input type ="text" id = "num_criancas_1" name = "num_criancas_1" value = "0" class = "num">
  </div>
  <div class = "div_right">
     <label for = "num_bebes_1">Bebés (0-2 anos)</label>
         
     <input type ="text" id = "num_bebes_1" name = "num_bebes_1" value = "0" class = "num">
  </div>
  </div>
</div>
Michael Coker
  • 48,577
  • 5
  • 44
  • 50