Families are being left in debt or forced to cut back on basics to meet the cost of school uniforms, according to new research.
Thousands of pupils are sent to school wearing ill-fitting clothes because their parents are unable to replace them, while others are sent home for wearing "incorrect" uniforms.
A report by the Children's Society warned that school uniform policies risk dividing pupils into the "haves and have-nots".
The findings, based on a poll of around 1,000 parents, found that 95% thought school uniform costs were "unreasonable".
Families spend an average of £316 a year for a child at a state secondary school, and £251 for a pupil at a state primary.
Shoes were the most expensive item - with an average of £56 for secondary school children and £53 for primary - followed by coats and bags.
The charity said nearly 800,000 pupils go to school with poorly-fitting uniforms, putting them at risk of bullying.
The report found that one of the main reasons for the high cost of uniforms was that policies force parents to buy specific items from specialist shops.
According to the figures, parents pay around £2.1bn a year on school clothing.
Lily Caprani, of the Children's Society, said: "We know that children whose parents cannot afford the cost of specialist uniforms face punishment and bullying for not having exactly the right clothes or kit.
"It's time for the Government to introduce legally binding rules to stop schools from making parents pay over the odds for items available only at specialist shops."
A Department for Education spokeswoman said: "We have made clear to schools that they should keep uniform costs to a minimum and prioritise value for money for parents.
"This includes making it clear that schools should avoid frequent changes to uniform.
"We are aware that the cost of school uniform is a worry for some parents and we continue to discuss the issue with the sector so that no child is disadvantaged because of this."