You can use the <apex:stylesheet> tag to add additional styles and style classes to page components. This way you can extend the Salesforce styles with your own.
The following markup shows a very basic page. The <apex:stylesheet> tag references a CSS style sheet that is saved as a static resource named TestStyles in . It is referenced by the $Resource global variable in the <apex:stylesheet> tag's value attribute. The styleClass attribute of the <apex:outputText> tag uses the sample style class defined in the style sheet.
<apex:page> <apex:stylesheet value="{!$Resource.TestStyles}"/> <apex:outputText value="Styled Text in a sample style class" styleClass="sample"/> </apex:page>
This is the style sheet used for this example:
.sample {
font-weight:bold;
}
When you're creating a Visualforce page, it's often useful to know the Salesforce look and feel your user expects, in order to render a page that matches their style. For example, some users have the choice to customize their look and feel. You'll need to design your Visualforce pages to take these differences into consideration.
There are two global variables that can help you identify which style a user sees: $User.UITheme and $User.UIThemeDisplayed. The difference between the two variables is that $User.UITheme returns the look and feel set by the user, while $User.UIThemeDisplayed returns the actual look and feel. For example, a user may have the permissions to see the new user interface theme look and feel, but if they are using a browser that doesn't support that look and feel, $User.UIThemeDisplayed returns a different value.
<apex:page standardController="Account"> <apex:variable var="newUI" value="newSkinOn" rendered="{!$User.UIThemeDisplayed = 'Theme3'}"> <apex:stylesheet value="{!URLFOR($Resource.myStyles, 'newStyles.css')}" /> </apex:variable> <apex:variable var="oldUI" value="oldSkinOn" rendered="{!$User.UIThemeDisplayed != 'Theme3'}"> <apex:stylesheet value="{!URLFOR($Resource.myStyles, 'oldStyles.css')}" /> </apex:variable> <!-- Continue page design --> </apex:page>
<apex:page showHeader="true" tabstyle="Case"> <apex:pageMessage severity="error" rendered="{!$User.UITheme = 'Theme3' && $User.UIThemeDisplayed != 'Theme3'}"> We've noticed that the new look and feel is enabled for your organization. However, you can't take advantage of its brilliance. Please check with your administrator for possible reasons for this impediment. </apex:pageMessage> <apex:ListViews type="Case" rendered="{!$User.UITheme = 'Theme3' && $User.UIThemeDisplayed = 'Theme3'}"/> </apex:page>
Salesforce uses different stylesheets (.css files) throughout the application to ensure that every tab conforms to the Salesforce look and feel. When you specify true for the header attribute of the <apex:page> tag (or leave it blank, as the default is true) these stylesheets are automatically included. You can reference these stylesheets to further customize the components on your page. This is relevant when you use a custom controller and you do not set the tabStyle attribute on the page.
More information on the Salesforce style sheets is available on the Developer Force website at http://wiki.developerforce.com/page/Using_the_Salesforce_CSS_in_Your_Apps.