What you're looking for is called Button addons from Bootstrap. p>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<div class="panel-body">
<ul id="list_messages"></ul>
<div class="row">
<div class="col-xs-12">
<div class="input-group">
<input type="text" class="form-control" placeholder="Write a message">
<span class="input-group-btn">
<button type="button" class="btn btn-block btn-primary">Send message</button>
</span>
</div>
</div>
</div>
</div>
On the other hand if you want to save yourself marked you can use flexbox and create your own component.
<div class="flex-input-group">
<input type="text" class="form-control" placeholder="Write a message">
<button type="button" class="btn btn-block btn-primary">Send message</button>
</div>
.flex-input-group {
display: flex;
}
.flex-input-group input,
.flex-input-group button {
flex: 1;
/* Distribuye el espacio entre los dos elementos. */
}
.flex-input-group input {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
flex-grow: 5;
/* Reduce este número para hacer el input más pequeño. Actualmente crece 5 veces si hay espacio en el contenedor */
}
.flex-input-group button {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<div class="panel-body">
<ul id="list_messages"></ul>
<div class="row">
<div class="col-xs-12">
<div class="flex-input-group">
<input type="text" class="form-control" placeholder="Write a message">
<button type="button" class="btn btn-block btn-primary">Send message</button>
</div>
</div>
</div>
</div>
You can even change the order of the elements with the order
property.
.flex-input-group {
display: flex;
}
.flex-input-group--inverted {
display: flex;
}
.flex-input-group input,
.flex-input-group button {
flex: 1;
/* Distribuye el espacio entre los dos elementos. */
}
.flex-input-group input {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
flex-grow: 5;
/* Reduce este número para hacer el input más pequeño. Actualmente crece 5 veces si hay espacio en el contenedor */
}
.flex-input-group button {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.flex-input-group--inverted input,
.flex-input-group button {
border-radius: 4px;
}
.flex-input-group--inverted input {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
.flex-input-group--inverted button {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
order: -1;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<div class="panel-body">
<ul id="list_messages"></ul>
<div class="row">
<div class="col-xs-12">
<div class="flex-input-group flex-input-group--inverted">
<input type="text" class="form-control" placeholder="Write a message">
<button type="button" class="btn btn-block btn-primary">Send message</button>
</div>
</div>
</div>
</div>