There are two devices that may help on some boats, depending on how the boats are set up for fueling and where the vents are:
Davis Marine makes a device called the "David No-Spill" It attaches to the hull side, covering the vent, and is basically a bottle with a soft rubber gasket/opening on the side. It will catch MOST of most small spills. We're talking a few ounces here, but that's about it. I used one for years, until the next thing came along.
The next thing is a device called a "Clean Way Fuel Fill". It is a plastic cylinder that is fitted into the fill port on the boat, and you put the diesel nozzle into the device. I have used it a couple of times. Works quite well. Basically contains spills before they happen, within reason.
Neither of these will substitute for paying very careful attention to fueling your boat. Having engine diapers at hand to quickly mop up any spilt fuel is prudent as well. The vent whistles do work if you install them correctly, but on some boats the install isn't easy.
Using dishwashing detergent just carries the spilt fuel to the bottom. The CG is wise to that. It may take the sheen off the water, but it doesn't get you out of trouble by any means. Using absorbent diapers to soak up the fuel you've spilt does help.