\documentclass{article}
\usepackage{tikz}
\usepackage{ctex}
\usetikzlibrary{shapes.geometric,arrows}
\begin{document}
\tikzstyle{input}=[diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black, fill=red!70]
\tikzstyle{process}=[rectangle, rounded corners, draw=green, fill=purple!30, text centered]
\tikzstyle{output}=[diamond, minimum width=3cm, minimum height=1cm, text centered, draw=black,fill = green!45]
\tikzstyle{arrow}=[thick,->,>=stealth]
\begin{tikzpicture}[node distance=3cm]
\node(sta)[input]{一对一雅思精品课程};
\node(pro1)[process, below of=sta]{雅思口语提高班};
\end{tikzpicture}
\end{document}
I know how to use yshift or xshift, but I am looking for something easier that allow me to specify the position of a node in its relaionship with another node. I remember seeing it somewhere and something along the line of"below of=15cm sta" but I cannot find it.

positioninglibrary, as e.g. described in section 3.8 Placing Nodes Using Relative Placement of pgfmanual v3.1.5. With this library you can position nodes via\node[below=2cm of A](B){...};provided you have a nodeA. Note also that\tikzstyleis deprecated. – May 28 '20 at 03:19