The short answer to your questions: it depends.
What and when to eat before a run depends on two major factors: how long you are planning to run for and what types of food you can tolerate.
If you are planning on running an hour or less, most runners will be fine if they don’t eat anything. You should have enough glycogen stored up for your run. If you are planning on running over an hour, you probably should eat something, be it a small snack 1-2 hours before the run, or an actual meal 3-4 hours before the run.
It is important to allow your body to digest the food. Running right after a meal can cause some potential stomach issues. Most people need to wait the 3-4 hours after a meal before going for a run.
As far as what you should eat depends on you and what food you tolerate. Most runners stick to the standard runners' options which is usually simple carbohydrates, because they are digested easier and faster. Ideas of simple, easy to digest pre-run food include bananas, oatmeal, bagels, and cereal. Most runners should stay away from food that is spicy, made from whole grains or contain a lot of fat. These foods have a tendency to upset runners' stomachs.
The problem with setting up strict guidelines on what to eat and when to eat is that each person is unique. What works for you, might not work for another runner. Some people can eat a meal an hour before a run, while others need to wait at least 3 hours before even attempting a run. Some people only eat oatmeal before a run, while another person can have a spicy black bean burrito. It all depends.
Experimenting with different food as well as the timing of when you eat is the only true way to know what works for you. However, in general, I would recommend not eating right before a run, and allowing your body to digest food. Also stick with simple carbohydrate food options and avoid food that have a lot of fiber or fat or is spicy.