A D flip flop is a Flip Flop where the output changes to the D input, but when the clock line is on the output saves to the its current state and will not change unless the clock input is turned low again. This is a level-triggered D flip-flop.
Edge Triggered[]
An edge triggered D flip flop, such as the one to the right, will only change the output to the D input only when the clock line is pulsed. This is useful for keeping the memory until a 'refresh' button is pushed. The design above is a 2 block wide edge triggered D flip flop, so a set of them can be pushed right up to each other and can save space.