Update: Some in game items are unavailable for gifting.
It is currently possible to gift: World of Warcraft, WoW mounts/pets, StarCraft 1/2, Warcraft 3+expansion, Diablo 2+expansion and Diablo 3+expansion.
Pre-purchase of Overwatch and WoW:Legion seems to not be giftable.
From the blizzard support page:
Gifting Items
Heroes of the Storm in-game items, and Hearthstone in-game items are currently unavailable to gift.
To gift an item, click Gift instead of Buy Now on the item’s page.
During checkout, enter your friend’s email address. Once we process
your purchase, we’ll send a key code to their email address, and
you’ll receive a purchase receipt at your registered Battle.net email
address.
Note: Gift processing may take a few hours. If you entered the wrong email address, you can find the key code for your purchase on
the Order History page once processing completes. You can copy this
code and send it to your friend.
Your friend must have a Battle.net account to claim a game key. If you
gift them a World of Warcraft pet, mount, item, or game time, they
must have a World of Warcraft licence in good standing (not banned or
suspended) attached to their Battle.net account.
Note: You cannot gift Battle.net Balance, World of Warcraft character services, guild services, or subscriptions.