海水是透明体,当太阳光透射进海水时,好像三棱镜一样,白光被分解成红、橙、黄、绿、青、蓝、紫七色光线,海水能吸收大部分红、橙、黄光线,而较少吸收蓝、紫色光,所以蓝、紫光能透射进很深的海里。我们打个比方,伸开你的手掌,可以挡住太阳光射到你的眼睛里,但挡不住声音进入你的耳朵里。原因是光波的波长比手掌短得多,光线被手掌反射出去了;而声波的波长长得多,似乎它可以绕过手掌进到你的耳朵里似的。在海水里也是这样,红、橙、黄光的波长比较长,能较多地绕过海水分子而很少被散射;蓝、紫光的波长比海水分子短,所以蓝紫光就容易被海水分子散射出来而进入人的眼里,由于人眼对紫光的感受能力较低,因此看到的海水是深蓝色的。我国南海很深,海水含盐分多,促使泥沙沉淀而透明度高,所以南海呈现蔚蓝色;东海比较浅,浅海底繁生着许多绿色的海藻,所以东海看上去就变成了绿色的;黄海也比较浅,加之长江、黄河、海河、辽河等大河流每年挟带大量的泥沙流入黄海,使黄海变成浑浊的黄色。地处印度洋西北部的红海,海水温度高,非常适宜海藻繁殖,大批蓝绿藻死后变为红褐色漂浮在海面上,所以人眼看到的是红色的大海。
这主要是因为海水(包括水里的浮游生物等)对光线的吸收和散射的不同,造成了海的颜色不一样。而在浅海部分,还涉及到海底的颜色(例如泥滩、礁石等)。当然,照射光线本身的颜色也会影响到海水的颜色(例如阳光直射、阴天等)。