Can you explain to me what causes the buoyant force? Is this a result of a density gradient, or is it like a normal force with solid objects?
It is the result of a dependence of the pressure with growing depth, due to the gravitational field (i.e. the weight of the water).
You may do an easy calculation with some simple geometrical form, e.g. a cylinder totally submerged in water, to quickly understand how it works. The force due to pressure in each surface element of the curved wall of the cylinder is proportional to the depth of that element, and has the normal direction to the wall, i.e. towards the axis of the cylinder. After an easy integration in polar coordinates, you can see that the resultant force points upwards. That is because the forces in the upper parts are smaller that the ones near the more deeply submerged part of the cylinder.
A surprising conclusion is that a golf ball submerged in a tank of water in the space station, would not go upwards... or that the bubbles in a coke in the hands of an astronaut remain where they origin... I would love to see that.
It's like a teeter-totter.
Some of the fluid is pushed up as the solid thing moves down. There energy cost of doing that is exactly the same as the energy cost of pushing down on one end of a teeter-totter.
Good answers, but let me try to make it intuitive.
Water weighs 1 gram per cubic centimeter (or 1 kilogram per Liter, a cube 10 centimeters on a side, if you prefer).
So if you have a tube 1 centimeter square, stopped up at the bottom, and you fill it with water to a height of N centimeters, then you know how much pressure there is at the bottom. It is simply the weight of the water in the tube, N grams, right?
Now take the tube, not stopped up at the bottom, and just put it in water to a depth of N centimeters. So the water in it weighs N grams, right? So, since the water stays in the tube (it doesn't run out the bottom) the outside water at the bottom of the tube has to be pushing up with a pressure equal to the weight of the water in the tube - N grams per square centimeter.
Now, with the tube still in the water, N centimeters deep, seal off the bottom of the tube with some kind of membrane, and suck the water out of the tube so it is empty. How much pressure is the outside water pushing up with against the membrane on the bottom of the tube? The same, right? N grams per square centimeter. However, since the tube doesn't have N grams of water inside it, pressing down, the tube itself is being pushed up by the N grams per square centimeter pressure at the bottom, that is not being matched by an equal weight of water in the tube pressing down.