Sé que esta pregunta tiene ya una respuesta marcada válida , pero tal vez otras personas quieran usar mi solución de solo CSS:
Quería tener una lista de alertas (en este caso, alertas de arranque) en un contenedor y su borde para colapsar. Cada alerta tiene un radio de borde, que parece bastante tonto cuando están todos en un contenedor. Entonces con margin-top: -1px hice colapsar sus fronteras. Como siguiente paso, tuve que modificar los estilos de la primera, cada alerta en el medio y la última alerta. Y esto también debería verse bien para una sola alerta, dos alertas yn alertas.
.alert {
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-left-radius: 0px;
border-bottom-right-radius: 0px;
margin: 0;
}
// set for the first alert that it should have a rounded top border
.alert:last-child {
border-bottom-left-radius: 4px;
border-bottom-right-radius: 4px;
}
// set for the last alert that it should have a rounded bottom border
// if there is only one alert this will also trigger it to have a rounded bottom border aswell
.alert+.alert:last-child {
margin-top: -1px;
border-top-left-radius: 0;
border-top-right-radius: 0;
}
//for the last border of n alerts we set the top border to be collapsing and remove only the the top rounded borders
.alert+.alert:not(:last-child) {
margin-top: -1px;
border-radius: 0;
}
// for each following alert in between we remove the top rounded borders and make their borders collapse
Y aquí hay una plantilla angular para múltiples alertas.
<div id="alertscontainer">
<div data-ng-repeat="alert in data.alerts" class="alert" data-ng-class="'alert-' + alert.class">
{{alert.body}}
</div>
</div>
¡Utilice javascript! – greut
@greut: Si no puedo encontrar un selector de CSS para hacer esto, usaré Javascript. – Jeremy
Jeremy, no entiendo muy bien a qué te refieres con "primer hermano adyacente". ¿No puedes usar ': first-child'? – BoltClock