Для расположения блоков друг за другом без промежутков можно использовать свойство CSS "display: flex" для контейнера, в котором находятся блоки. Пример:
```html
<div class="container">
<div class="block"></div>
<div class="block"></div>
<div class="block"></div>
</div>
```
```css
.container {
display: flex;
}
.block {
margin-right: 10px; /* промежуток между блоками */
}
```
Для того чтобы выравнять блоки таким образом, чтобы они занимали все доступное пространство, можно использовать свойство "flex-grow: 1" для блоков внутри контейнера со свойством "display: flex". Таким образом, блоки будут заполнять все доступное пространство в зависимости от их содержимого. Пример:
```css
.container {
display: flex;
}
.block {
flex-grow: 1;
}
```
Это позволит блокам автоматически растягиваться или сжиматься в зависимости от содержимого, заполняя все доступное пространство без нежелательных пустот.