1.На самом деле, есть несколько способов расположить блоки в ряд:
a)Задать блокам стиль display:inline-block
b)Указать всем блокам float:left (тогда они будут обтекаемы по левой стороне,но тут есть нюансы и куча мороки)
с) Недавно появившейся способ. Задаем родительскому блоку dicplay:flex и justify-content: space-between/space-around (одно из 2 значений)
С последним будет меньше танцев с бубном. Если хотите узнать о нем подробнее, просто загуглите flex layout css или flex css
2. Тут надо уже кодить. Так что волидного ответа дать не мгогу, ибо оптимального решения данного вопроса нет