The Italian Army gets a lot of flak in WW2 discussion for being a spectacular failure in almost anything it set out to do. However what about the Navy? Its my understanding that Italy was a rather big naval power and their ships were at the very least up to par when put against British naval assets in the Med. My question is, is that assessment accurate? If so, how was the Brits able to still beat them?
Your understanding is correct, as far as it goes. Italian naval technology was fine, at least in the ships they had afloat. But the Italian navy had several large, irreducible problems with naval operations in the Mediterranean. First was a general lack of naval airpower. The Italians, in WWII, had a number of extremely successful warplanes but these were mostly built for supporting Army operations, and the Italians had considerable difficulty deploying them to enough airfields to achieve coverage in the Mediterranean, mainly due to the difficult logistics between Italy and Libya. They also had no aircraft carriers.
Second, the Italians had no feasible way to shift the British from any of their main Med bases, being Cyprus, Malta, Gibraltar, and Egypt, and the availability of these bases gave the British enormous flexibility in operating in any corner of the Med, while the Italians had to rely on the peninsula, primarily. To take those bases would have required amphibious invasions of (in the case of Gibraltar and Malta) two extremely tiny and monstrously fortified locations (the latter of which was never even seriously threatened with invasion despite a two-year air and naval siege that occasionally saw Axis superiority, and despite it being only 60 miles from the coast of Sicily). In the case of Cyprus, it was not as heavily fortified but much larger and further away. And Egypt could, theoretically, have been taken by the Army on land, but due to incompetence and poor equipment, this was not achieved. And, at the beginning of the war at least, there were also the French to consider, who also had a large navy and strategic Med bases in Corsica, Tunisia, Morocco, and Syria.
There were Italian naval bases in Libya and Eritrea, but these were smaller than those in Italy itself, and getting to them from Italy was extremely treacherous in the case of Libya, despite its closeness to Italy, and impossible in the case of Eritrea, which was on the wrong side of the Suez canal and Gibraltar. Pre-positioning forces in these bases for operational purposes was also extremely risky, as they might be trapped there.
Third, despite building a navy for fleet actions with naval artillery, the Italian Navy, despite its ships being of fine quality, were simply outnumbered in every way by the British and French.
Fourth, the Italians had virtually no fuel for their ships, which greatly limited the scope of their activities.
As a result, the Italian navy adopted a fleet-in-being doctrine, which simply involved them remaining in harbor and existing as a threat, to prevent the Allies from drawing their naval forces off elsewhere. Interestingly, the British did the same with a number of older ships in the Med as well. Both sides reacted to these policies in predictable ways: air warfare. The Italians had some success striking against Alexandria, but not enough. The British, meanwhile, had a massive success at Taranto in 1940, when a large force of British torpedo bombers, launched from aircraft carrier HMS Illustrious, struck at the main fleet-in-being, heavily damaging two battleships and sinking a third, fully half of Italy's capital ships. There were only a handful of other fleet actions, and all of them were either Allied victories or indecisive, in large part because the Allies usually had an aircraft carrier.
Nevertheless, the Italian navy was not actually defeated. The British just kept it from really doing anything.