As stated by David, your question is very broad.
However, after having tried to read your mind, it seems to me that what you want is to use the HTTP caching features. I believe you want the users's browsers accessing your web site to cache its images as well as its .css files, so that they avoid fetching all this content every single time they access your site and thus making it load faster.
Well, HTTP has features that allow you to do just that.
Beginning with the basics, HTTP is a request-response protocol. The browser sends a request for a resource and the server responds. Both requests and responses contain headers, which describe how the browser and the server must behave when they receive responses and requests, respectively.
You can tell your users's browsers to cache images and .css by setting response headers in your .htaccess file.
The headers you'll need in your responses to achieve this goal are the ones described below:
HTTP/1.1 provides the following caching response headers :
Expires and Cache-Control: max-age. These specify the “freshness lifetime” of a resource, that is, the time period during which the browser can use the cached resource without checking to see if a new version is available from the web server. They are "strong caching headers" that apply unconditionally; that is, once they're set and the resource is downloaded, the browser will not issue any GET requests for the resource until the expiry date or maximum age is reached.
Last-Modified and ETag. These specify some characteristic about the resource that the browser checks to determine if the files are the same. In the Last-Modified header, this is always a date. In the ETag header, this can be any value that uniquely identifies a resource (file versions or content hashes are typical). Last-Modified is a "weak" caching header in that the browser applies a heuristic to determine whether to fetch the item from cache or not. (The heuristics are different among different browsers.) However, these headers allow the browser to efficiently update its cached resources by issuing conditional GET requests when the user explicitly reloads the page. Conditional GETs don't return the full response unless the resource has changed at the server, and thus have lower latency than full GETs.
It is important to specify one of Expires or Cache-Control max-age, and one of Last-Modified or ETag, for all cacheable resources. It is redundant to specify both Expires and Cache-Control: max-age, or to specify both Last-Modified and ETag.
Taken from: http://code.google.com/speed/page-speed/docs/caching.html.
After you understand this and pick the headers that you believe will best fit your needs, you can do this by using apache mod_headers and the FilesMatch directive.
Here's an example of what you can put in your .htaccess (it might be exactly what you want):
Header unset Pragma
Header unset Expires
Header set Cache-Control "max-age=604800"
Before you do that though, I suggest you to download google's Page Speed plugin for chrome (http://code.google.com/speed/page-speed/download.html) and install it. Then, run the page speed test and take a look at its results, specially the section "Leverage browser caching" in order to see whether you really need to take an action.