Ответ 1
Поскольку CSS использует псевдо-классы (: last-child и: first-child), вы не можете динамически изменять эти классы с помощью JavaScript, если вы не удалите/не добавите их из DOM, как вы описали.
Что вы можете сделать, это скопировать .btn-group > : last-child и .btn-group > : first-child CSS и применить его динамически, когда вы показываете/скрываете кнопки. Но обратите внимание, что вам придется менять этот CSS всякий раз, когда вы меняете тему загрузки или внешний вид кнопок. И вам нужно будет отслеживать, какая кнопка сначала в группе и какая кнопка последней.
Простой пример:
<style>
.btn-group > .currently-last {
-webkit-border-top-right-radius: 4px;
-moz-border-radius-topright: 4px;
border-top-right-radius: 4px;
-webkit-border-bottom-right-radius: 4px;
-moz-border-radius-bottomright: 4px;
border-bottom-right-radius: 4px;
}
.btn-group > .currently-first {
margin-left: 0;
-webkit-border-top-left-radius: 4px;
-moz-border-radius-topleft: 4px;
border-top-left-radius: 4px;
-webkit-border-bottom-left-radius: 4px;
-moz-border-radius-bottomleft: 4px;
border-bottom-left-radius: 4px;
}
</style>
<script>
$("#go").click(function() {
$('#three').toggle();
if ($('#three').is(":visible"))
$("#two").removeClass("currently-last");
else
$("#two").addClass("currently-last");
});
</script>