Do I use a CNAME for www only then, with no A record at all?
You would need to use a
CNAME for the
www.example.com subdomain, and an
ALIAS record for your root domain
example.com (aka., "apex domain").
As indicated in the help document you provided on Setting up a custom domain with Pages:
Some DNS providers (like DNSimple) allow you to use an ALIAS record to
point your custom apex domain to username.github.io. If your DNS
provider supports this it will allow us to provide the full benefits
of our Content Delivery Network to your Page.
Elaborating on this using their DNSimple reference, an ALIAS record is:
...a virtual record type that we created to provide CNAME-like
behavior on apex domains.
For example, if your domain is example.com and you want it to point to
a host name like myapp.herokuapp.com, then you cannot use a CNAME
record, but you can use an ALIAS record. The ALIAS record will
automatically resolve your domain to one or more A records at
resolution time and thus resolvers see your domain simply as if it had
The example DNSimple provides for setting an
ALIAS record is here (substitute
username.github.io for the Heroku server in that example).
For other DNS providers, see their support docs on how to set an
ALIAS record to a subdomain. If your DNS provider does not support setting
ALIAS records, then you'll have to use an
A instead, which will not provide the benefit of GitHub's CDN.