Скажем, что одностраничный сайт имеет более широкий спектр применений. На одностаничников создаются сайты для товаров, услуг. В свою очередь сайт-визитка имеет более "урезанный" функционал и соответствует больше как сайт для определенный персоны предоставляющая услуги, такие как юристы, стоматологи, тренеры и т.д.
Сайт-визитки и сайты одностаничники (еще их называют landing page), можно сделать самому зная код или проще создать на сайтах конструкторах, например https://web-sites.biz/ это решает много проблем связанных с созданием сайта.
У сайта-визитки сейчас очень размытое понятие. Сайт-визитка может являться одностраничником, но как правило это небольшой сайт из 3-5 страниц с основной информацией о компании.
Одностраничный сайт — это более широкое понятие чем сайт визитка, но менее масштабное чем блог или интернет магазин
Одностраничник может выступать как сайт-визитка. Но обычно сайты-визитки содержат несколько страниц - О компании, Услуги, Контакты и т.п. В общем, как сделать.