is there any way to use bitcoin core without downloading the blockchain to a PC?
Not easily.
Bitcoin Core is intended to be a fully participating node on the bitcoin network.
It validates every transaction and block it receives from peers, enforces the protocol rules, and relays valid transactions and blocks to all connected peers.
It also provides to new peers the historical blocks from the blockchain that they need to synchronize when they connect to the network.
There is a feature called pruning that you can turn on with a configuration file so that it won't store all those blocks, but it still needs to download and verify them all. The feature just reduces the amount of storage space you need to have available.
One thing I do not quite understand yet is fees. Who sets the btc transaction fee, that the sender pays?
The sender sets it.
The fee is voluntary. The sender chooses how much of a fee they want to pay based on how many transactions are waiting to be confirmed, the size of those transactions (in bytes), the fee that those transactions voluntarily paid, and how quickly the sender would like the transaction to confirm.
Some well written wallet software (such as Bitcoin Core and Electrum) will monitor the bitcoin network while they are running and collect statistics about the current transactions and blocks (quantity, size, fees, speed of confirmation, etc). The wallet software will then attempt to recommend a fee to the sender that will get their transaction confirmed in a reasonable amount of time.
Some wallet software leaves the fee decision entirely up to the sender. Other software implements a mandatory fee and doesn't allow the sender to change it. Still other software will recommend a fee, but allow the sender to alter it if they want to. The decision on how software will handle the fee decision is left entirely up to the developer of the software.
is it p2p client-based,
It is sender based, and wallet software based.
is it a fix fee or a floating one?
That depends on the software, but in Bitcoin Core and Electrum it is constantly adjusted depending on the size of your transaction (in bytes) and the statistics of recent transactions on the network.