Sachverhalt: A. Die 1964 geborene S._ bezog vom 1. Februar 1996 bis 30. Juni 1997 eine ganze und ab 1. Juli 1997 eine halbe Rente der Invalidenversicherung. Im Rahmen einer Rentenrevision ermittelte die IV-Stelle des Kantons Zürich einen Invaliditätsgrad von 100 % und sprach der Versicherten mit Verfügung vom 22. Februar 2000 wiederum eine ganze Rente (nebst Kinderrenten) ab 1. Dezember 1999 zu; mit Mitteilungen vom 18. April 2001 und 19. Juli 2006 bestätigte sie einen unveränderten Anspruch. Nachdem S._ ab April 2008 zunächst stundenweise und ab Februar 2009 in einem festen Pensum von 12 Stunden pro Woche eine Erwerbstätigkeit aufgenommen hatte, leitete die IV-Stelle erneut ein Revisionsverfahren ein. Nach Abklärungen und Durchführung des Vorbescheidverfahrens hob die IV-Stelle die Rente mit Verfügung vom 16. November 2010 auf das Ende des der Zustellung folgenden Monats auf (Invaliditätsgrad von 14 %). B. Die Beschwerde der S._ wies das Sozialversicherungsgericht des Kantons Zürich mit Entscheid vom 9. Februar 2012 ab. C. S._ lässt Beschwerde in öffentlich-rechtlichen Angelegenheiten führen und beantragen, unter Aufhebung des Entscheids vom 9. Februar 2012 sei ihr Invaliditätsgrad auf der Basis eines zumutbaren Arbeitspensums von maximal 12 Stunden pro Woche zu berechnen; eventualiter sei die Sache an das kantonale Gericht zurückzuweisen, damit es weitere medizinische Abklärungen vornehme. 