<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Dave Cavins &#187; CSS</title>
	<atom:link href="http://davecavins.com/tag/css/feed/" rel="self" type="application/rss+xml" />
	<link>http://davecavins.com</link>
	<description>web design, SharePoint customization &#38; random stuff</description>
	<lastBuildDate>Tue, 27 Dec 2011 14:22:18 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>A Better Annoucements Ticker</title>
		<link>http://davecavins.com/2010/08/a-better-annoucements-ticker/</link>
		<comments>http://davecavins.com/2010/08/a-better-annoucements-ticker/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 21:08:14 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Data View Web Part]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>
		<category><![CDATA[ticker]]></category>
		<category><![CDATA[xsl]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=540</guid>
		<description><![CDATA[A while back I did a post about how to make a vertical news ticker, in the comments several people pointed out problems with the code so I decided to write a better version of the code. Here it is. For this ticker I started out with a default Annoucements list. Because I wanted to [...]


Related posts:<ol><li><a href='http://davecavins.com/2010/04/anything-slider-in-sharepoint-update/' rel='bookmark' title='Anything Slider in SharePoint &#8211; Update'>Anything Slider in SharePoint &#8211; Update</a></li>
<li><a href='http://davecavins.com/2010/11/zoomable-photo-grid/' rel='bookmark' title='Zoomable Photo Grid'>Zoomable Photo Grid</a></li>
<li><a href='http://davecavins.com/2009/12/css-tricks-anythingslider-in-sharepoint/' rel='bookmark' title='CSS-Tricks AnythingSlider in SharePoint'>CSS-Tricks AnythingSlider in SharePoint</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>A while back I did a post about <a href="http://davecavins.com/2009/11/sharepoint-vertical-news-ticker/">how to make a vertical news ticker</a>, in the comments several people pointed out problems with the code so I decided to write a better version of the code. Here it is.</p>
<div id="attachment_550" class="wp-caption alignnone" style="width: 466px"><a href="http://davecavins.com/wp-content/uploads/2010/08/ticker.jpg"><img class="size-full wp-image-550   " title="ticker" src="http://davecavins.com/wp-content/uploads/2010/08/ticker.jpg" alt="" width="456" height="447" /></a><p class="wp-caption-text">New Ticker</p></div>
<p>For this ticker I started out with a default Annoucements list. Because I wanted to display a thumbnail for each annoucement I added a signle line of text column called <strong>Subtitle </strong>and a Picture column called <strong>Picture</strong>. Here are the columns I used.<br />
<img class="alignnone size-full wp-image-546" title="columns" src="http://davecavins.com/wp-content/uploads/2010/07/columns.jpg" alt="List Columns" width="399" height="221" /></p>
<p>Here is the basic structure of the ticker.</p>
<pre class="brush: plain; title: ; notranslate">
&lt;div id=&quot;actions&quot;&gt;
&lt;a class=&quot;prev&quot;&gt;« Back&lt;/a&gt;	&lt;a class=&quot;next&quot;&gt;More pictures »&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;scrollable vertical&quot;&gt;
    &lt;div class=&quot;items&quot;&gt;
      &lt;div class=&quot;item&quot;&gt;
           &lt;img src=&quot;#&quot; alt=&quot;Thumbnail Image&quot; /&gt;
           &lt;h3&gt;Title&lt;/h3&gt;
          &lt;strong&gt;
              &lt;span&gt;Subtitle Text&lt;/span&gt;
          &lt;/strong&gt;
        &lt;p&gt;First 200 Characters of the body&lt;/p&gt;
       &lt;p&gt;&lt;a href=&quot;#&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
    &lt;/div&gt;
   &lt;/div&gt;
&lt;/div&gt;
</pre>
<p>Below is the xsl code I used to build the ticker. </p>
<pre class="brush: plain; title: ; notranslate">

&lt;Xsl&gt;
&lt;xsl:stylesheet xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:d=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; version=&quot;1.0&quot; exclude-result-prefixes=&quot;xsl msxsl ddwrt&quot; xmlns:ddwrt=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/runtime&quot; xmlns:asp=&quot;http://schemas.microsoft.com/ASPNET/20&quot; xmlns:__designer=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/designer&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:msxsl=&quot;urn:schemas-microsoft-com:xslt&quot; xmlns:SharePoint=&quot;Microsoft.SharePoint.WebControls&quot; xmlns:ddwrt2=&quot;urn:frontpage:internal&quot;&gt;
	&lt;xsl:output method=&quot;html&quot; indent=&quot;no&quot;/&gt;
	&lt;xsl:decimal-format NaN=&quot;&quot;/&gt;
				&lt;xsl:param name=&quot;dvt_apos&quot;&gt;'&lt;/xsl:param&gt;
				&lt;xsl:param name=&quot;url_PATH_INFO&quot; /&gt;
				&lt;xsl:param name=&quot;url_HTTP_HOST&quot; /&gt;
	&lt;xsl:param name=&quot;Today&quot;&gt;CurrentDate&lt;/xsl:param&gt;
				&lt;xsl:variable name=&quot;dvt_1_automode&quot;&gt;0&lt;/xsl:variable&gt;
				&lt;xsl:template match=&quot;/&quot; xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:d=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:asp=&quot;http://schemas.microsoft.com/ASPNET/20&quot; xmlns:__designer=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/designer&quot; xmlns:SharePoint=&quot;Microsoft.SharePoint.WebControls&quot;&gt;
					&lt;xsl:call-template name=&quot;dvt_1&quot;/&gt;
	&lt;/xsl:template&gt;
				&lt;xsl:template name=&quot;dvt_1&quot;&gt;
					&lt;xsl:variable name=&quot;dvt_StyleName&quot;&gt;Table&lt;/xsl:variable&gt;
					&lt;xsl:variable name=&quot;Rows&quot; select=&quot;/dsQueryResponse/Rows/Row&quot;/&gt;
						&lt;script&gt;
$(function() {
	$(&quot;.scrollable&quot;).scrollable({ vertical: true, mousewheel: true, circular: true, keyboard: true });
// scrollable has to match the class on the div you use to wrap your items.
});
&lt;/script&gt; &lt;div id=&quot;actions&quot;&gt;
	&lt;a class=&quot;prev&quot;&gt;« Back&lt;/a&gt;
	&lt;a class=&quot;next&quot;&gt;More pictures »&lt;/a&gt;
&lt;/div&gt;
		&lt;div class=&quot;scrollable vertical&quot;&gt;
		&lt;div class=&quot;items&quot;&gt;
			&lt;xsl:call-template name=&quot;dvt_1.body&quot;&gt;
				&lt;xsl:with-param name=&quot;Rows&quot; select=&quot;$Rows&quot;/&gt;
			&lt;/xsl:call-template&gt;
			&lt;/div&gt;
			&lt;/div&gt;
	&lt;/xsl:template&gt;
				&lt;xsl:template name=&quot;dvt_1.body&quot;&gt;
					&lt;xsl:param name=&quot;Rows&quot;/&gt;
					&lt;xsl:for-each select=&quot;$Rows&quot;&gt;
						&lt;xsl:call-template name=&quot;dvt_1.rowview&quot;/&gt;
		&lt;/xsl:for-each&gt;
	&lt;/xsl:template&gt;
		&lt;xsl:template name=&quot;dvt_1.rowview&quot;&gt;
		&lt;div class=&quot;item&quot;&gt;
		&lt;xsl:if test=&quot;not(normalize-space(@Picture) = '')&quot;&gt;&lt;img src=&quot;{substring-before(@Picture,',')}&quot; /&gt;&lt;/xsl:if&gt;
		&lt;h3&gt;&lt;xsl:value-of select=&quot;@Title&quot;/&gt;&lt;/h3&gt;

				&lt;strong&gt;
		&lt;xsl:if test=&quot;not(normalize-space(@SubTitle) = '')&quot;&gt;&lt;span&gt;&lt;xsl:value-of select=&quot;@SubTitle &quot; disable-output-escaping=&quot;yes&quot; /&gt;&lt;/span&gt;&lt;/xsl:if&gt;
		&lt;/strong&gt;

				&lt;p&gt;&lt;xsl:value-of select=&quot;substring(@Body,0,200)&quot; disable-output-escaping=&quot;yes&quot; /&gt;&lt;/p&gt;
				&lt;p&gt;&lt;a href=&quot;http://{$url_HTTP_HOST}/{@FileDirRef}/DispForm.aspx?id={@ID}&quot;&gt;Read more&lt;/a&gt;&lt;/p&gt;
		&lt;/div&gt;
	&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;&lt;/Xsl&gt;
</pre>
<p>If you try to run the page with just this XSL it will give an error. You will also need to add these two lines to the parameter bindings section of your dataview web part. I used these 2 parameters to get the URL of the current page in order to built the &#8216;read more&#8217; link. This is what I would call a best practice because other wise you would have to hard code the URL to your site which makes it harder for others to use your code.</p>
<pre class="brush: plain; title: ; notranslate">
&lt;ParameterBinding Name=&quot;url_PATH_INFO&quot; Location=&quot;ServerVariable(PATH_INFO)&quot; DefaultValue=&quot;&quot;/&gt;&lt;ParameterBinding Name=&quot;url_HTTP_HOST&quot; Location=&quot;ServerVariable(HTTP_HOST)&quot; DefaultValue=&quot;&quot;/&gt;
</pre>
<p> In addition to this code you will also need to add links to these two files.</p>
<pre class="brush: plain; title: ; notranslate">
&lt;script src=&quot;http://cdn.jquerytools.org/1.2.3/jquery.tools.min.js&quot;&gt;&lt;/script&gt;
/* css file to style the ticker */
&lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;scroll.css&quot; /&gt;
</pre>
<p>Here is the css I used to style my ticker.</p>
<pre class="brush: css; title: ; notranslate">
/* root element for scrollable */
.vertical {
	/* required settings */
	position:relative;
	overflow:hidden;
	/* vertical scrollers have typically larger height than width */
	height: 665px;
	width: 700px;
	border-top:1px solid #ddd;
}

/* root element for scrollable items */
.items {
	position:absolute;
	/* this time we have very large space for height */
	height:20000em;	margin: 0px;
}

/* single scrollable item */
.item {
	border-bottom:1px solid #85b1ee;
	border-top:1px solid #85b1ee;
	margin:10px 0; padding:15px; font-size:12px;
	height:180px; background:#d6e8ff;
}

/* elements inside single item */
.item img {
	float:left;
	margin-right:20px;
	height:180px;
	width:240px;
	border:5px solid #fff;
}

.item h3 {
	margin:0 0 5px 0;
	font-size:16px;
	color:#4a6499;
	font-weight:normal;
}

.item p a{padding:3px;}

.item p a:hover{ background:#fff; text-decoration:none;}

.item p { padding:3px; margin:5px;}

/* the action buttons above the scrollable */
#actions { width:700px; margin:30px 0 10px 0;}

#actions a {font-size:11px;	cursor:pointer; color:#666;}

#actions a:hover {text-decoration:underline; color:#000;}

.disabled {visibility:hidden;}

.next {float:right;}
</pre>
<h2>Notes</h2>
<ul>
<li>The XSL is setup so that if no thumbnail is provided it will automatically adjust. The same is true if no subtitle is entered.  This is done using conditional formating.</li>
<li>Only the first 200 characters of the body are shown. To change this amount you can just change this line of code <strong>xsl:value-of select=&#8221;substring(@Body,0,200)&#8221;. </strong></li>
<li>You do not need the whole jQuery library in order for this to run.</li>
</ul>
<p> </p>
<p><strong> </strong> </p>
<h2>Resources</h2>
<ul>
<li><a href="http://plugins.jquery.com/project/scrollable" target="_blank">jQuery Scrollable Plugin<br />
</a>http://plugins.jquery.com/project/scrollable</li>
<li><a href="http://www.jwc3.net/2008/05/how-to-get-url-in-xsl.html">How to get the Current URL in XSL</a>
<p>http://www.jwc3.net/2008/05/how-to-get-url-in-xsl.html</li>
</ul>


<p>Related posts:<ol><li><a href='http://davecavins.com/2010/04/anything-slider-in-sharepoint-update/' rel='bookmark' title='Anything Slider in SharePoint &#8211; Update'>Anything Slider in SharePoint &#8211; Update</a></li>
<li><a href='http://davecavins.com/2010/11/zoomable-photo-grid/' rel='bookmark' title='Zoomable Photo Grid'>Zoomable Photo Grid</a></li>
<li><a href='http://davecavins.com/2009/12/css-tricks-anythingslider-in-sharepoint/' rel='bookmark' title='CSS-Tricks AnythingSlider in SharePoint'>CSS-Tricks AnythingSlider in SharePoint</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/08/a-better-annoucements-ticker/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Switch Themes Without a Page Refresh: Part 2</title>
		<link>http://davecavins.com/2010/06/switch-styles-in-sharepoint-with-jquery/</link>
		<comments>http://davecavins.com/2010/06/switch-styles-in-sharepoint-with-jquery/#comments</comments>
		<pubDate>Mon, 14 Jun 2010 14:50:09 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=506</guid>
		<description><![CDATA[ So in part one of this post we got all the CSS and other theme file we needed to stuck them in a document library. With JavaScript you can change the CSS file a page uses without requiring a page refresh.  I have used this technique many times on non-SharePoint sites but there are some [...]


Related posts:<ol><li><a href='http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/' rel='bookmark' title='Switch Themes Without a Page Refresh: Part 1'>Switch Themes Without a Page Refresh: Part 1</a></li>
<li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p> So in <a href="http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/" target="_blank">part one of this post </a>we got all the CSS and other theme file we needed to stuck them in a document library.</p>
<p>With JavaScript you can change the CSS file a page uses without requiring a page refresh.  I have used this technique many times on non-SharePoint sites but there are some special challenges implementing this in SharePoint.  Most of the scripts I have used in the past use the <a href="http://www.alistapart.com/articles/alternate/" target="_blank">alternate style sheet method as describred by A List Apart here</a>. That method works fine but I had to find another way because I was already using that script to allow users to change the font size. After some research I found <a href="http://www.cssnewbie.com/example/stylesheet-switcher/" target="_blank">this script from CSS Newbie</a> that worked pretty well without using alternate style sheets.</p>
<h2>The problem</h2>
<p>While the script works just fine on regular HTML pages it cause problems in SharePoint here is why :</p>
<pre class="brush: jscript; title: ; notranslate"> $(&quot;link&quot;).attr(&quot;href&quot;,$(this).attr('rel')); </pre>
<p>This line of code basically finds all the linked CSS files in the page and changes thier value to point to the new style sheet you select.  This is fine on a site that just uses one CSS file but in SharePoint bad things happen.  In most cases we dont want to completely remove the reference to core.css. For most themes many elements don&#8217;t need to be changed so we only have to write the CSS to change them and let core.css do the rest.  If you remove core.css its like using a global reset (<a href="http://www.visual28.com/articles/css-reset" target="_blank">discussed in more detail here</a>) which means you will have to restyle everything.  So them point is we want to leave core.css in the page and just add our theme. </p>
<p>To do this I had to make some changes to the master page to create to interface users will use to swap themes. </p>
<p><span id="more-506"></span></p>
<h2>Edit the Masterpage</h2>
<p>Here is the code I added to the masterpage. This can be styled to look however you want and can be added anywhere in the page that makes sense.</p>
<pre class="brush: xml; title: ; notranslate">
&lt;ul&gt;
	&lt;li&gt;&lt;a rel=&quot;&quot; href=&quot;#&quot;&gt;Reset CSS&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a rel=&quot;/Site Styles/Verdant/theme.css&quot; href=&quot;#&quot;&gt;Verdant&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a rel=&quot;/Site Styles/Belltown/theme.css&quot; href=&quot;#&quot;&gt;Belltown&lt;/a&gt;&lt;/li&gt;
	&lt;li&gt;&lt;a rel=&quot;/Site Styles/Petal/theme.css&quot; href=&quot;#&quot;&gt;Petal&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</pre>
<p>In addition to this we also need to add a link to our css file to the master page. I put it at the end of the head section.  </p>
<pre class="brush: xml; title: ; notranslate"> &lt;link class=&quot;altStyle&quot; href=&quot;&quot; type=&quot;text/css&quot; rel=&quot;stylesheet&quot;/&gt;</pre>
<p>I added a class to the link so that we can use jQuery to target only that css link and change it to match the theme the user selects. Initially I left the href value blank but if you want to apply some default styles you would just add the link to the css file there.</p>
<h2>Use jQuery to Swap the CSS</h2>
<p>So here is the code I used to swap the stylesheet. The main thing I changed is on lines 7 and 12.  I changed the selector so it will only target &lt;link&gt; tags with a class of &#8216;altStyle&#8217;.  This allows us to swap themes without breaking the link to core.css.</p>
<pre class="brush: jscript; title: ; notranslate"> &lt;script src=&quot;http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt;

&lt;script src=&quot;cookie.js&quot; type=&quot;text/javascript&quot;&gt;&lt;/script&gt; 

&lt;script type=&quot;text/javascript&quot;&gt;// &lt;![CDATA[
 if($.cookie(&quot;css&quot;)) {
 $(&quot;link.altStyle&quot;).attr(&quot;href&quot;,$.cookie(&quot;css&quot;));
 }
$(document).ready(function() {
//alert( $.cookie(&quot;css&quot;) );
 $(&quot;#nav li a&quot;).click(function() {
 $(&quot;link.altStyle&quot;).attr(&quot;href&quot;,$(this).attr('rel'));
 $.cookie(&quot;css&quot;,$(this).attr('rel'), {expires: 365, path: '/'});
 return false;
 });
});
// ]]&gt;&lt;/script&gt;
</pre>
<h2>Resources</h2>
<ul>
<li>You will need jQuery either locally or linked from Google.  Just update the link on line 1 as needed.</li>
<li>In the code above you will notice a link to <strong>cookie.js</strong>, this is the jQjuery cookie plugin that you will need in order to save users&#8217; theme selections.  In the code above on line 13 you will see where I create a cookie named css.  For testing purposes you can uncomment line 10 to see what the cookie value is on page load.   You can download the plugin from here.  <a href="http://plugins.jquery.com/project/cookie" target="_blank">jQuery Cookie Plugin</a></li>
<li>You can see the original code I started from in <a href="http://www.cssnewbie.com/example/stylesheet-switcher/" target="_blank">this script from CSS Newbie</a></li>
</ul>
<h2>Conclusion</h2>
<p>While this is a very simple solution it is a quick way to add in some fuctionality that many users want without alot of custom code or requiring the user to navigate to multiple pages.  Users like to feel that they have some control over the site (even if its just changing the color).  Feel free to post any questions or comments.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/' rel='bookmark' title='Switch Themes Without a Page Refresh: Part 1'>Switch Themes Without a Page Refresh: Part 1</a></li>
<li><a href='http://davecavins.com/2009/07/annoucement-slider-using-web-services/' rel='bookmark' title='Annoucements Slider using SP Web Services'>Annoucements Slider using SP Web Services</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/06/switch-styles-in-sharepoint-with-jquery/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Switch Themes Without a Page Refresh: Part 1</title>
		<link>http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/</link>
		<comments>http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/#comments</comments>
		<pubDate>Mon, 07 Jun 2010 19:03:26 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[stylesheet]]></category>
		<category><![CDATA[theme]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=522</guid>
		<description><![CDATA[Many sites offer the ability for users to change the color and style of the site to fit their preference.  SharePoint has this feature to some extend through themes but changing themes is not a very simple process and requires browsing to several pages.  With JavaScript you can change the CSS file a page uses [...]


Related posts:<ol><li><a href='http://davecavins.com/2010/06/switch-styles-in-sharepoint-with-jquery/' rel='bookmark' title='Switch Themes Without a Page Refresh: Part 2'>Switch Themes Without a Page Refresh: Part 2</a></li>
<li><a href='http://davecavins.com/2009/02/adding-stuff-to-the-page-head-the-easy-way/' rel='bookmark' title='Adding references to the page head: the easy way'>Adding references to the page head: the easy way</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Many sites offer the ability for users to change the color and style of the site to fit their preference.  SharePoint has this feature to some extend through themes but changing themes is not a very simple process and requires browsing to several pages. </p>
<p>With JavaScript you can change the CSS file a page uses without requiring a page refresh.  I have used this technique many times on non-SharePoint sites but there are some special challenges implementing this in SharePoint.  For this solution there were several requirements.</p>
<ul>
<li>Users need to be able to switch themes and have the setting saved</li>
<li>No page refresh</li>
<li>Should be able to use both out of the box themes and custom themes</li>
</ul>
<p>So first I needed to get the CSS files and images for the themes I wanted to use.  When you assign a theme to a site all the files for the theme are copied to a folder named <strong>_themes</strong> in the root of the site. </p>
<div id="attachment_524" class="wp-caption alignnone" style="width: 143px"><img class="size-full wp-image-524" title="themesfolder" src="http://davecavins.com/wp-content/uploads/2010/06/themesfolder.jpg" alt="" width="133" height="92" /><p class="wp-caption-text">_themes folder</p></div>
<p>So what I did was assign each theme I wanted to use to the site one at a time.  With SharePoint designer I copied the files folders for each theme into a document library called <strong>Site Styles</strong>.  Each folder contains all the resources needed or the theme to work. </p>
<p>Here is what I ended up with</p>
<div id="attachment_523" class="wp-caption alignnone" style="width: 164px"><img class="size-full wp-image-523" title="themes" src="http://davecavins.com/wp-content/uploads/2010/06/themes.jpg" alt="" width="154" height="90" /><p class="wp-caption-text">Site Styles Library</p></div>
<p>If I wanted to create a custom theme I could just add another folder with my custom CSS and images.</p>
<p>This same technique can be used when developing your own custom theme, just copy one that is similar to what you want and use the alternate CSS link on the master page settings page to add it to the site.  Inside of the folder for each theme is a file named theme.css. Link to that file and SharePoint will apply the theme to the site. </p>
<div id="attachment_525" class="wp-caption alignnone" style="width: 384px"><img class="size-full wp-image-525" title="cssurl" src="http://davecavins.com/wp-content/uploads/2010/06/cssurl.jpg" alt="" width="374" height="112" /><p class="wp-caption-text">Alternate CSS URL</p></div>
<p>Now everything we have done so far is pretty basic and easy to do but we will pull all this together with some simple edits to the master page to complete the solution. In part 2 I’ll explain how we use JavaScript to switch styles and set a cookie to remember the users theme choice.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2010/06/switch-styles-in-sharepoint-with-jquery/' rel='bookmark' title='Switch Themes Without a Page Refresh: Part 2'>Switch Themes Without a Page Refresh: Part 2</a></li>
<li><a href='http://davecavins.com/2009/02/adding-stuff-to-the-page-head-the-easy-way/' rel='bookmark' title='Adding references to the page head: the easy way'>Adding references to the page head: the easy way</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/06/switch-themes-without-a-page-refresh-part-1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Switch List Displays with JQuery and CSS</title>
		<link>http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/</link>
		<comments>http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/#comments</comments>
		<pubDate>Wed, 21 Apr 2010 20:58:05 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=483</guid>
		<description><![CDATA[Sometimes it is useful to allow users to quickly change how data is displayed. Changing the display can make is easier to see patterns or find a specific item you are looking for. With CSS and jQuery we can easily change the way content is displayed and arranged on the page.  I got the idea [...]


Related posts:<ol><li><a href='http://davecavins.com/2010/11/zoomable-photo-grid/' rel='bookmark' title='Zoomable Photo Grid'>Zoomable Photo Grid</a></li>
<li><a href='http://davecavins.com/2010/04/anything-slider-in-sharepoint-update/' rel='bookmark' title='Anything Slider in SharePoint &#8211; Update'>Anything Slider in SharePoint &#8211; Update</a></li>
<li><a href='http://davecavins.com/2010/08/a-better-annoucements-ticker/' rel='bookmark' title='A Better Annoucements Ticker'>A Better Annoucements Ticker</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Sometimes it is useful to allow users to quickly change how data is displayed. Changing the display can make is easier to see patterns or find a specific item you are looking for. With CSS and jQuery we can easily change the way content is displayed and arranged on the page.  I got the idea for this post from <a title="Link" href="http://designm.ag/tutorials/jquery-display-switch/ " target="_blank">here</a>  </p>
<div id="attachment_484" class="wp-caption aligncenter" style="width: 600px"><img class="size-full wp-image-484" title="viewswitch" src="http://davecavins.com/wp-content/uploads/2010/03/viewswitch.gif" alt="" width="590" height="450" /><p class="wp-caption-text">Switch views using CSS and jQuery</p></div>
<p> </p>
<p><a href="http://designm.ag/tutorials/jquery-display-switch/"><span id="more-483"></span><br />
</a>Basically by changing the class assigned to a div wrapping the content we are able to change the way things are laid out and hide what we don&#8217;t need.  Here how I set it up in SharePoint.  </p>
<ul>
<li>I started with a standard Image library and added some images of one of my bikes.  I filled in the title and description for each item.  <strong>You can use this same technique on other types of lists.</strong></li>
<li>Next I created a page and displayed the list in a dataview web part</li>
<li>I edited the XSL to show the items in an unordered list with a class of  &#8216;display&#8217;. Inside of each &lt;li&gt; I used various tags and classes to style the images and descriptions.
<pre class="brush: xml; title: ; notranslate">
&lt;li class=&quot;ms-vb&quot;&gt;
&lt;div class=&quot;content_block&quot;&gt;
	&lt;a href=&quot;{concat($FileURL,'/Forms/DispForm.aspx?ID=',@ID)}&quot;&gt;
	&lt;img align=&quot;left&quot; border=&quot;0&quot; src=&quot;{concat($FileURL,'/_t/',$FileNameNoEx,'_',@FileType,'.',@FileType)}&quot; alt=&quot;{@Title}&quot;/&gt;
	&lt;/a&gt;
	&lt;h2&gt;
		&lt;a href=&quot;{concat($FileURL,'/Forms/DispForm.aspx?ID=',@ID)}&quot;&gt;&lt;xsl:value-of select=&quot;@Title&quot; disable-output-escaping=&quot;yes&quot;/&gt;&lt;/a&gt;
	&lt;/h2&gt;
	&lt;p&gt;&lt;xsl:value-of select=&quot;@Description&quot; disable-output-escaping=&quot;yes&quot;/&gt;&lt;/p&gt;
&lt;/div&gt;
&lt;/li&gt;
</pre>
</li>
<li>Before the opening &lt;ul&gt; tag I added the link to my CSS and jQuery files as well as some script to trigger the switch and the associated link.
<pre class="brush: jscript; title: ; notranslate">
&lt;link href=&quot;styles.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&gt;&lt;/script&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
	$(&quot;a.switch_thumb&quot;).toggle(function(){
	$(this).addClass(&quot;swap&quot;);
	$(&quot;ul.display&quot;).fadeOut(&quot;fast&quot;, function() {
		$(this).fadeIn(&quot;fast&quot;).addClass(&quot;thumb_view&quot;);
//  thumb_view is the class used for the alternate display style
		});	  },
		function () {
		 $(this).removeClass(&quot;swap&quot;);
		$(&quot;ul.display&quot;).fadeOut(&quot;fast&quot;, function() {
			$(this).fadeIn(&quot;fast&quot;).removeClass(&quot;thumb_view&quot;);
		}); }); });
&lt;/script&gt;
&lt;a href=&quot;#&quot; class=&quot;switch_thumb&quot;&gt;Switch Display&lt;/a&gt; /* link to trigger the switch */
</pre>
</li>
<li>Then I wrote some css to style the list differently based on the class of the &lt;ul&gt;. </li>
</ul>
<p>Below is the xsl and the CSS I used.</p>
<p><strong>XSL</strong> (includes the code above)</p>
<pre class="brush: xml; title: ; notranslate">
&lt;Xsl&gt;
&lt;xsl:stylesheet xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:d=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; version=&quot;1.0&quot; exclude-result-prefixes=&quot;xsl msxsl ddwrt&quot; xmlns:ddwrt=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/runtime&quot; xmlns:asp=&quot;http://schemas.microsoft.com/ASPNET/20&quot; xmlns:__designer=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/designer&quot; xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot; xmlns:msxsl=&quot;urn:schemas-microsoft-com:xslt&quot; xmlns:SharePoint=&quot;Microsoft.SharePoint.WebControls&quot; xmlns:ddwrt2=&quot;urn:frontpage:internal&quot;&gt;
	&lt;xsl:output method=&quot;html&quot; indent=&quot;no&quot;/&gt;
	&lt;xsl:decimal-format NaN=&quot;&quot;/&gt;
		&lt;xsl:param name=&quot;dvt_apos&quot;&gt;'&lt;/xsl:param&gt;
		&lt;xsl:param name=&quot;url_PATH_INFO&quot; /&gt;
		&lt;xsl:param name=&quot;url_HTTP_HOST&quot; /&gt;
		&lt;xsl:variable name=&quot;dvt_1_automode&quot;&gt;0&lt;/xsl:variable&gt;
		&lt;xsl:template match=&quot;/&quot; xmlns:x=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:d=&quot;http://schemas.microsoft.com/sharepoint/dsp&quot; xmlns:asp=&quot;http://schemas.microsoft.com/ASPNET/20&quot; xmlns:__designer=&quot;http://schemas.microsoft.com/WebParts/v2/DataView/designer&quot; xmlns:SharePoint=&quot;Microsoft.SharePoint.WebControls&quot;&gt;
		&lt;xsl:call-template name=&quot;dvt_1&quot;/&gt;
	&lt;/xsl:template&gt;
				&lt;xsl:template name=&quot;dvt_1&quot;&gt;
					&lt;xsl:variable name=&quot;dvt_StyleName&quot;&gt;BulTitl&lt;/xsl:variable&gt;
					&lt;xsl:variable name=&quot;Rows&quot; select=&quot;/dsQueryResponse/Rows/Row&quot; /&gt;
					&lt;link href=&quot;styles.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot;/&gt;
&lt;script type=&quot;text/javascript&quot; src=&quot;http://code.jquery.com/jquery-latest.js&quot;&gt;&lt;/script&gt; &lt;script type=&quot;text/javascript&quot;&gt;
$(document).ready(function(){
	$(&quot;a.switch_thumb&quot;).toggle(function(){
	  $(this).addClass(&quot;swap&quot;);
	  $(&quot;ul.display&quot;).fadeOut(&quot;fast&quot;, function() {
	  	$(this).fadeIn(&quot;fast&quot;).addClass(&quot;thumb_view&quot;);
		 });
	  }, function () {
      $(this).removeClass(&quot;swap&quot;);
	  $(&quot;ul.display&quot;).fadeOut(&quot;fast&quot;, function() {
	  	$(this).fadeIn(&quot;fast&quot;).removeClass(&quot;thumb_view&quot;);
		});	}); });
&lt;/script&gt; &lt;a href=&quot;#&quot; class=&quot;switch_thumb&quot;&gt;Switch Display&lt;/a&gt;
	&lt;ul class=&quot;display&quot;&gt;
		&lt;xsl:call-template name=&quot;dvt_1.body&quot;&gt;
			&lt;xsl:with-param name=&quot;Rows&quot; select=&quot;$Rows&quot; /&gt;
		&lt;/xsl:call-template&gt;
	&lt;/ul&gt;
	&lt;/xsl:template&gt;
	&lt;xsl:template name=&quot;dvt_1.body&quot;&gt;
		&lt;xsl:param name=&quot;Rows&quot; /&gt;
	&lt;xsl:for-each select=&quot;$Rows&quot;&gt;
		&lt;xsl:call-template name=&quot;dvt_1.rowview&quot; /&gt;
	&lt;/xsl:for-each&gt;
	&lt;/xsl:template&gt;
	&lt;xsl:template name=&quot;dvt_1.rowview&quot;&gt;
		&lt;xsl:param name=&quot;FileNameString&quot; select=&quot;@NameOrTitle&quot;&gt;&lt;/xsl:param&gt;
		&lt;xsl:param name=&quot;FileNameLegnth&quot; select=&quot; string-length(@NameOrTitle) - 4&quot;&gt;&lt;/xsl:param&gt;
		&lt;xsl:param name=&quot;FileNameNoEx&quot; select=&quot; substring(@NameOrTitle,1,$FileNameLegnth)&quot;&gt;&lt;/xsl:param&gt;
		&lt;xsl:param name=&quot;FileURL&quot; select=&quot;concat('http://',$url_HTTP_HOST,'/',@FileDirRef)&quot;&gt;&lt;/xsl:param&gt;
	&lt;li class=&quot;ms-vb&quot;&gt;
		&lt;div class=&quot;content_block&quot;&gt;
			&lt;a href=&quot;{concat($FileURL,'/Forms/DispForm.aspx?ID=',@ID)}&quot;&gt;
				&lt;img align=&quot;left&quot; border=&quot;0&quot; src=&quot;{concat($FileURL,'/_t/',$FileNameNoEx,'_',@FileType,'.',@FileType)}&quot; alt=&quot;{@Title}&quot;/&gt;
			&lt;/a&gt;
			&lt;h2&gt;
				&lt;a href=&quot;{concat($FileURL,'/Forms/DispForm.aspx?ID=',@ID)}&quot;&gt;&lt;xsl:value-of select=&quot;@Title&quot; disable-output-escaping=&quot;yes&quot;/&gt;&lt;/a&gt;
			&lt;/h2&gt;
			&lt;p&gt;&lt;xsl:value-of select=&quot;@Description&quot; disable-output-escaping=&quot;yes&quot;/&gt;&lt;/p&gt;
			&lt;/div&gt;
		&lt;/li&gt;
		&lt;/xsl:template&gt;
&lt;/xsl:stylesheet&gt;&lt;/Xsl&gt;
</pre>
<p><strong>CSS</strong></p>
<pre class="brush: css; title: ; notranslate">
/* normal view styles */
ul.display li a {
    text-decoration: none;
}
ul.display li{
	background:#E3EFFF;
	margin:3px;
	border:1px solid #9FC2F1;
	height:130px;
	list-style:none;
}

ul.display li .content_block {
    padding: 5px;
	clear:both;
    margin:4px;
}
ul.display li .content_block h2 {
    margin: 0;
    padding: 2px;
    font-weight: normal;
    font-size: 1.4em;
}
ul.display li .content_block p {
    margin: 0;
    padding: 5px 5px 5px 145px;
    font-size: 1.2em;
}
ul.display li .content_block img{
    padding: 5px;
    border: 4px solid #336699;
    background: #fff;
    margin: 2 9px 2 2;
float: left;
}
/* thumbnail view styles */
ul.thumb_view li{ width: 200px; float:left; background:transparent; }
ul.thumb_view li h2 { display: inline; text-align:center; margin:2px; padding:2px }
ul.thumb_view li p{ display: none; }
ul.thumb_view li .content_block a img { margin: 5 0 10px; }
/* styles for the style switcher buttin */
a.switch_thumb {

	padding:5 5 5 25px;
	margin:10px;
	background:#D6E8FF url('/_layouts/images/itcat.gif') no-repeat 5px 7px;
	outline: none;
	border:1px solid #9FC2F1;
	font-size:.8em;
}
a:hover.switch_thumb {
	filter:alpha(opacity=75);
	opacity:.75;
	-ms-filter: &quot;progid:DXImageTransform.Microsoft.Alpha(Opacity=75)&quot;;
}
a.swap { background:url('/_layouts/images/itcontct.gif') no-repeat 5px 7px; }
</pre>
<p>If you want to use this same solution for a different type of list just create a dataview Web Part to display the items in the format you want and wrap everything in a container (div, ul, table) with a class. Also use tags (h2, p, span, div, etc.) to wrap the pieces of data you are displaying (this will make it easier to control with CSS). Change the CSS and JavaScript to work with you new container and XSL.  </p>
<p>Got questions? Post a comment.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2010/11/zoomable-photo-grid/' rel='bookmark' title='Zoomable Photo Grid'>Zoomable Photo Grid</a></li>
<li><a href='http://davecavins.com/2010/04/anything-slider-in-sharepoint-update/' rel='bookmark' title='Anything Slider in SharePoint &#8211; Update'>Anything Slider in SharePoint &#8211; Update</a></li>
<li><a href='http://davecavins.com/2010/08/a-better-annoucements-ticker/' rel='bookmark' title='A Better Annoucements Ticker'>A Better Annoucements Ticker</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Print Stylesheet for List Views</title>
		<link>http://davecavins.com/2010/03/print-stylesheet-for-list-views/</link>
		<comments>http://davecavins.com/2010/03/print-stylesheet-for-list-views/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 21:11:20 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[Printing]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=448</guid>
		<description><![CDATA[Hides everything except the list and the breadcrumbs. More posts coming later this week. Related posts:Styling SharePoint Blog Comments Switch List Displays with JQuery and CSS Styling the MOSS horizontal navigation menu


Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Hides everything except the list and the breadcrumbs. More posts coming later this week.</p>
<pre class="brush: css; title: ; notranslate">
*{ background-image:none; /* remove all background images */ }
.ms-sbcell, /* search box at top of page */
.ms-topnavContainer, /*horizontal nav container */
img, /*images */
.ms-globalbreadcrumb, /*breadcrumbs */
.ms-titleareaframe, /* page image */
.ms-siteactionsmenu, /*site actions menu */
.ms-pagemargin, /* left margin beside quick launch*/
.ms-quickLaunch, /* quick launch menu */
.ms-sitetitle, /* name name */
.ms-menutoolbar, /* list tool bar */
.ms-pagetitle /* page title */
{ display:none; visibility:hidden; /*width:0px; height:0px;*/
}
.ms-pagetitleareaframe table {
position:absolute; top:1px;
width:600px;
background-image:none;
}
.ms-bodyareaframe { /*remove border around main content*/
border:0px;}
</pre>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/03/print-stylesheet-for-list-views/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Improving #SharePoint Forms</title>
		<link>http://davecavins.com/2010/01/improving-sharepoint-forms/</link>
		<comments>http://davecavins.com/2010/01/improving-sharepoint-forms/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 02:43:15 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[better forms]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=420</guid>
		<description><![CDATA[Over the next few weeks I will be writing a series of posts on how to improve the out of the box SharePoint forms by using simple CSS and jQuery solutions.  These solutions will help improve usability as well as enhance the look and feel.  Look for the first post later this week. As a [...]


Related posts:<ol><li><a href='http://davecavins.com/2010/05/improving-sharepoint-forms-%e2%80%93-watermarks/' rel='bookmark' title='Improving #SharePoint Forms – Watermarks'>Improving #SharePoint Forms – Watermarks</a></li>
<li><a href='http://davecavins.com/2010/02/character-count-on-sharepoint-fields/' rel='bookmark' title='Improving #SharePoint Forms &#8211; Character Count'>Improving #SharePoint Forms &#8211; Character Count</a></li>
<li><a href='http://davecavins.com/2010/02/improving-sharepoint-forms-hints/' rel='bookmark' title='Improving #SharePoint Forms &#8211; Hints'>Improving #SharePoint Forms &#8211; Hints</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Over the next few weeks I will be writing a series of posts on how to improve the out of the box SharePoint forms by using simple CSS and jQuery solutions.  These solutions will help improve usability as well as enhance the look and feel.  Look for the first post later this week.</p>
<p>As a point of reference this is what we will be starting with.</p>
<div id="attachment_422" class="wp-caption aligncenter" style="width: 593px"><a href="http://davecavins.com/wp-content/uploads/2010/01/form.jpg"><img class="size-full wp-image-422" title="form" src="http://davecavins.com/wp-content/uploads/2010/01/form.jpg" alt="" width="583" height="247" /></a><p class="wp-caption-text">Standard SharePoint Form</p></div>
<p>Stay tuned for more soon.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2010/05/improving-sharepoint-forms-%e2%80%93-watermarks/' rel='bookmark' title='Improving #SharePoint Forms – Watermarks'>Improving #SharePoint Forms – Watermarks</a></li>
<li><a href='http://davecavins.com/2010/02/character-count-on-sharepoint-fields/' rel='bookmark' title='Improving #SharePoint Forms &#8211; Character Count'>Improving #SharePoint Forms &#8211; Character Count</a></li>
<li><a href='http://davecavins.com/2010/02/improving-sharepoint-forms-hints/' rel='bookmark' title='Improving #SharePoint Forms &#8211; Hints'>Improving #SharePoint Forms &#8211; Hints</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/01/improving-sharepoint-forms/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Hiding the user presence icon</title>
		<link>http://davecavins.com/2010/01/hiding-the-status-icon/</link>
		<comments>http://davecavins.com/2010/01/hiding-the-status-icon/#comments</comments>
		<pubDate>Wed, 06 Jan 2010 21:40:48 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[icon]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[jQuery]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[user]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=389</guid>
		<description><![CDATA[When you are using a data view web part to display information including a person field SharePoint always shows the status icon beside thier name. In some cases this is exactly what you want and can be very useful. But sometimes you just want to show a name and nothing else. With most fields you [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
<li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>When you are using a data view web part to display information including a person field SharePoint always shows the status icon beside thier name.</p>
<div id="attachment_391" class="wp-caption aligncenter" style="width: 241px"><img class="size-full wp-image-391" title="status icon" src="http://davecavins.com/wp-content/uploads/2010/01/status-icon1.jpg" alt="status icon" width="231" height="28" /><p class="wp-caption-text">status icon</p></div>
<p>In some cases this is exactly what you want and can be very useful. But sometimes you just want to show a name and nothing else. With most fields you can just change the formatting options to change the display. If you choose to format the value as text SharePoint spits out this long html string.</p>
<pre class="brush: xml; title: ; notranslate">&lt;nobr&gt;&lt;span&gt;&lt;A HREF=&quot;/sites/site/_layouts/userdisp.aspx?ID=2&quot;&gt;Cavins, David R&lt;/A&gt;&lt;img border=&quot;0&quot; height=&quot;1&quot; width=&quot;3&quot; src=&quot;/_layouts/images/blank.gif&quot;/&gt;&lt;a href='javascript:' onclick='IMNImageOnClick();return false;' class='ms-imnlink'&gt;&lt;img name='imnmark' title='' border='0' height='12' width='12' src='/_layouts/images/blank.gif' alt='No presence information' sip='email@email.com' id='imn_8,type=sip'/&gt;&lt;/a&gt;&lt;/span&gt;&lt;/nobr&gt;
</pre>
<p><div id="attachment_399" class="wp-caption aligncenter" style="width: 234px"><a href="http://davecavins.com/wp-content/uploads/2010/01/format1.jpg"><img src="http://davecavins.com/wp-content/uploads/2010/01/format1.jpg" alt="" title="format" width="224" height="175" class="size-full wp-image-399" /></a><p class="wp-caption-text">Format as</p></div><br />
Each of the other formatting options also provides un-desirable results.<br />
Using some basic CSS we can get rid of the status icon and format the text so it does not look like a hyperlink.  First wrap the field value in an element with a class. I used a span with a class of “person”</p>
<pre class="brush: xml; title: ; notranslate">
&lt;span class=”person”&gt;
&lt;xsl:value-of select=&quot;@Author&quot; /&gt;
&lt;/span&gt;
</pre>
<p>Then just add this css to the page.</p>
<pre class="brush: css; title: ; notranslate">
.person nobr span a {
text-decoration:none;
color:black;
cursor:default;
}
</pre>
<p>If you want to take it a step further you can use jQuery to remove the ‘href’ attribute.  Using jQuery we can target the container with the link in it and then change the href value. </p>
<pre class="brush: jscript; title: ; notranslate">
$('span.person a').removeAttr('href');
</pre>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
<li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2010/01/hiding-the-status-icon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Styling SharePoint Blog Comments: Part 2</title>
		<link>http://davecavins.com/2009/10/sharepoint-blog-comments-p2/</link>
		<comments>http://davecavins.com/2009/10/sharepoint-blog-comments-p2/#comments</comments>
		<pubDate>Fri, 16 Oct 2009 14:00:45 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=269</guid>
		<description><![CDATA[As promised I went ahead and styled the comment form on a standard SharePoint blog.  I wanted to make it look better than this but there are some limitations because of the way the page is coded with so many nested tables.  I kept the styles pretty simple but this should be a good starting [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p><a href="http://davecavins.com/2009/10/styling-sharepoint-blog-comments/">As promised</a> I went ahead and styled the comment form on a standard SharePoint blog.  I wanted to make it look better than this but there are some limitations because of the way the page is coded with so many nested tables. </p>
<div id="attachment_270" class="wp-caption aligncenter" style="width: 522px"><img class="size-full wp-image-270" title="blog" src="http://davecavins.com/wp-content/uploads/2009/10/blog.jpg" alt="Better looking comment form" width="512" height="470" /><p class="wp-caption-text">Better looking comment form</p></div>
<p>I kept the styles pretty simple but this should be a good starting point for someone wanting to do something more complex.<br />
<span id="more-269"></span><br />
This code includes the <a href="http://davecavins.com/2009/10/styling-sharepoint-blog-comments/">code from part 1</a> with some minor changes. The new styles for the comment form are commented.</p>
<pre class="brush: css; title: ; notranslate">
&lt;style type=&quot;text/css&quot;&gt;
.ms-commenttable td {border:0px;}
h4.ms-CommentTitle{border:0px; font:italic normal small Georgia;}
div.ms-CommentBody {
	background:url('../../images/comm_top.gif') top 0px no-repeat;
	margin-bottom:12px;
	padding:18px 0 0 0;
}
div.ms-CommentBody div {
	border:1px solid #ccc;
	border-top:0px;
	padding:15px;
	line-height:18px;
	}
.ms-CommentFooter {background:url('/_layouts/images/square.gif') 5px 50% no-repeat;
	padding:3px;
	margin:0px;
	border-top:1px dotted #ccc;
	border-bottom:1px dotted #ccc;
}
.ms-CommentFooter span {padding-left:18px;}
.ms-commentsWrapper {background:#fff; margin:5px; border:0px;}
.ms-blogedit a{	background:transparent; border:0px;}
.ms-blogedit a:hover{background:#ccc; border:0px;}
h3.ms-CommentHeader{padding-left:35px;
	background:url('/_layouts/images/menunewdiscussion.gif') top left no-repeat}
.ms-formtable {	border-top:1px dotted #ccc;	border-bottom:1px dotted #ccc;	padding:5px;}
/* cell holding the labels */
.ms-formlabel {	border:0px ;width:100px;}
/* label text */
.ms-formlabel h3.ms-standardheader{	padding-top:5px; font-weight:normal; text-align:right;}
/*wraps the form elements */
.ms-formbody {background:transparent;	border:0px;}
/* the title input field */
.ms-formbody span input{
background:#FEFFE2;
padding:2px 5px 1px 5px;
height:28px;
border:1px solid #ccc;
font:italic normal normal small/18px Arial;
margin:5px 0 5px 0;
}
/* text area for the comment body */
.ms-formbody span textarea{
font:italic normal normal small/18px Arial;
background:#FEFFE2;
padding:5px;
border:1px solid #ccc;
margin:0 0 5px 0;
}
/* submit button */
.ms-toolbar input.ms-ButtonHeightWidth2 {
	height:26px;
	border:2px solid #317A0C;
	background:#51AA25;
	color:#fff;
	font:italic normal x-small Georgia;
}
&lt;/style&gt;
</pre>
<p>Note: To be sure this code does not affect the styling of other forms on the page and other web parts it would be best to open the page in SharePoint Designer and wrap the web part in a div some the styles can be targeted to affect only items inside the div.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
<li><a href='http://davecavins.com/2010/04/switch-list-displays-with-jquery-and-css/' rel='bookmark' title='Switch List Displays with JQuery and CSS'>Switch List Displays with JQuery and CSS</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/10/sharepoint-blog-comments-p2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Styling SharePoint Blog Comments</title>
		<link>http://davecavins.com/2009/10/styling-sharepoint-blog-comments/</link>
		<comments>http://davecavins.com/2009/10/styling-sharepoint-blog-comments/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 20:36:19 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[General SharePoint]]></category>
		<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[SharePoint]]></category>
		<category><![CDATA[SharePoint Designer]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=257</guid>
		<description><![CDATA[Out of the box the comments on SharePoint blogs dont look that good.   Here is a way to fix that problem. Just add this CSS to the page and things should start looking alot better. Without editing the code of the page there are some limitations on what can be done. I did not make [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
<li><a href='http://davecavins.com/2010/03/adding-comments-to-a-list-part-1/' rel='bookmark' title='Adding Comments to a List Part 1'>Adding Comments to a List Part 1</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>Out of the box the comments on SharePoint blogs dont look that good. </p>
<div id="attachment_258" class="wp-caption aligncenter" style="width: 274px"><a href="http://davecavins.com/wp-content/uploads/2009/10/comments_old.jpg"><img class="size-full wp-image-258" title="comments_old" src="http://davecavins.com/wp-content/uploads/2009/10/comments_old.jpg" alt="Standard SharePoint blog comments" width="264" height="228" /></a><p class="wp-caption-text">Standard SharePoint blog comments</p></div>
<p> Here is a way to fix that problem. Just add this CSS to the page and things should start looking alot better.<span id="more-257"></span></p>
<pre class="brush: css; title: ; notranslate">
&amp;amp;lt;style type=&amp;amp;quot;text/css&amp;amp;quot;&amp;amp;gt;
/* wraps the title of each comment */
.ms-commenttable {border:0px;}
/* the title of each comment */
h4.ms-CommentTitle{font-size:x-small;border:0px;}
/* wraps the body of each comment */
div.ms-CommentBody {
	background:url('../../images/comm_top.gif') top 0px no-repeat;
	margin-bottom:12px;
	padding:18px 0 0 0;
}
/* wraps the text of each comment */
div.ms-CommentBody div {
	border:1px solid #ccc;
	border-top:0px;
	padding:15px;
	line-height:18px;
	}
/* wraps the meta info (author, date, etc.)	for each comment */
.ms-CommentFooter {
	background:url('/_layouts/images/square.gif') 5px 50% no-repeat;
	padding:3px;
	margin:0px;
	border-top:1px dotted #ccc;
	border-bottom:1px dotted #ccc;
}
.ms-CommentFooter span {padding-left:18px;}

/* wraps all comments */
.ms-commentsWrapper {
	background:#fff;
	margin:5px;
	border:0px;
}
/* header style for 'Comments' and 'Add a Comment' */
h3.ms-CommentHeader{
	padding-left:35px;
	background:url('/_layouts/images/menunewdiscussion.gif') top left no-repeat
}
&amp;amp;lt;/style&amp;amp;gt;
</pre>
<p>Without editing the code of the page there are some limitations on what can be done. I did not make too many drastic changes but this code should be a good starting point for making your ShaerPoint blogs look better.</p>
<div id="attachment_256" class="wp-caption aligncenter" style="width: 422px"><img class="size-full wp-image-256" title="comments" src="http://davecavins.com/wp-content/uploads/2009/10/comments.jpg" alt="comments" width="412" height="384" /><p class="wp-caption-text">Better looking comments</p></div>
<p><a href="http://davecavins.com/wp-content/uploads/2009/10/comm_top.gif">Here is the image I used in the CSS</a> (right click save as). The other two images are referenced from the 12 hive and should work automatically on any WSS or MOSS installation. </p>
<p>In a future post I will try to do something about the comment form.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
<li><a href='http://davecavins.com/2010/03/adding-comments-to-a-list-part-1/' rel='bookmark' title='Adding Comments to a List Part 1'>Adding Comments to a List Part 1</a></li>
<li><a href='http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/' rel='bookmark' title='Styling the MOSS horizontal navigation menu'>Styling the MOSS horizontal navigation menu</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/10/styling-sharepoint-blog-comments/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Styling the MOSS horizontal navigation menu</title>
		<link>http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/</link>
		<comments>http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 16:36:42 +0000</pubDate>
		<dc:creator>davecavins</dc:creator>
				<category><![CDATA[SharePoint Design]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[SharePoint]]></category>

		<guid isPermaLink="false">http://davecavins.com/?p=73</guid>
		<description><![CDATA[When you want to create a custom theme for a SharePoint site the top navigation menu is an important part of the design. Using the out of the box themes you can change the colors but if you really want it to look like a non-SharePoint menu it will take some work. In the standard [...]


Related posts:<ol><li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
<li><a href='http://davecavins.com/2010/03/print-stylesheet-for-list-views/' rel='bookmark' title='Print Stylesheet for List Views'>Print Stylesheet for List Views</a></li>
<li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
</ol>]]></description>
			<content:encoded><![CDATA[<p>When you want to create a custom theme for a SharePoint site the top navigation menu is an important part of the design. Using the out of the box themes you can change the colors but if you really want it to look like a non-SharePoint menu it will take some work. In the standard sharepoint masterpage you will see the following code that defines the horizontal navigation. If you are not familiar with styling ASP server controls it can be somewhat confusing.<span id="more-73"></span></p>
<pre class="brush: plain; title: ; notranslate">
&lt;asp:ContentPlaceHolder id=&quot;PlaceHolderHorizontalNav&quot; runat=&quot;server&quot;&gt;
&lt;SharePoint:AspMenu
ID=&quot;TopNavigationMenu&quot;
Runat=&quot;server&quot;
DataSourceID=&quot;topSiteMap&quot;
EnableViewState=&quot;false&quot;
AccessKey=&quot;&lt;%$Resources:wss,navigation_accesskey%&gt;&quot;
Orientation=&quot;Horizontal&quot;
StaticDisplayLevels=&quot;2&quot;
MaximumDynamicDisplayLevels=&quot;1&quot;
DynamicHorizontalOffset=&quot;0&quot;
StaticPopoutImageUrl=&quot;/_layouts/images/menudark.gif&quot;
StaticPopoutImageTextFormatString=&quot;&quot;
DynamicHoverStyle-BackColor=&quot;#CBE3F0&quot;
SkipLinkText=&quot;&quot;
StaticSubMenuIndent=&quot;0&quot;
CssClass=&quot;ms-topNavContainer&quot;&gt;
&lt;StaticMenuStyle/&gt;
&lt;StaticMenuItemStyle CssClass=&quot;ms-topnav&quot; ItemSpacing=&quot;0px&quot;/&gt;
&lt;StaticSelectedStyle CssClass=&quot;ms-topnavselected&quot; /&gt;
&lt;StaticHoverStyle CssClass=&quot;ms-topNavHover&quot; /&gt;
&lt;DynamicMenuStyle  BackColor=&quot;#F2F3F4&quot; BorderColor=&quot;#A7B4CE&quot; BorderWidth=&quot;1px&quot;/&gt;
&lt;DynamicMenuItemStyle CssClass=&quot;ms-topNavFlyOuts&quot;/&gt;
&lt;DynamicHoverStyle CssClass=&quot;ms-topNavFlyOutsHover&quot;/&gt;
&lt;DynamicSelectedStyle CssClass=&quot;ms-topNavFlyOutsSelected&quot;/&gt;
&lt;/SharePoint:AspMenu&gt;
&lt;SharePoint:DelegateControl runat=&quot;server&quot; ControlId=&quot;TopNavigationDataSource&quot;&gt;
&lt;Template_Controls&gt;
&lt;asp:SiteMapDataSource
ShowStartingNode=&quot;False&quot;
SiteMapProvider=&quot;SPNavigationProvider&quot;
id=&quot;topSiteMap&quot;
runat=&quot;server&quot;
StartingNodeUrl=&quot;sid:1002&quot;/&gt;
&lt;/Template_Controls&gt;
&lt;/SharePoint:DelegateControl&gt;
&lt;/asp:ContentPlaceHolder&gt;
</pre>
<p>From a designers perspective what matters most if the way this code is rendered on the page. In the code above you will see several CssClass tags. These define what CSS classes are used when the page is rendered through the browser. You can change them in the masterpage to whatever you want, but remember changing them can cause styles defined in core.css not to work.</p>
<h3>Output</h3>
<p>For each menu item SharePoint generates the following code (its not pretty).</p>
<pre class="brush: xml; title: ; notranslate">
&lt;td&gt;
&lt;table border=&quot;0&quot;
cellpadding=&quot;0&quot;
cellspacing=&quot;0&quot;
width=&quot;100%&quot;
class=&quot;zz1_TopNavigationMenu_5&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;width:0px;&quot;&gt;&lt;/td&gt;
&lt;td onmouseover=&quot;Menu_HoverStatic(this)&quot;
onmouseout=&quot;Menu_Unhover(this)&quot;
onkeyup=&quot;Menu_Key(this)&quot;
id=&quot;zz1_TopNavigationMenun1&quot;&gt;
&lt;table class=&quot;ms-topnav zz1_TopNavigationMenu_4&quot;
cellpadding=&quot;0&quot;
cellspacing=&quot;0&quot;
border=&quot;0&quot;
width=&quot;100%&quot;&gt;
&lt;tr&gt;
&lt;td style=&quot;white-space:nowrap;&quot;&gt;
&lt;a class=&quot;zz1_TopNavigationMenu_1 ms-topnav zz1_TopNavigationMenu_3&quot;
href=&quot;/sites/ops/SIO/API/SharePointSupport/test/testing/Pages/AboutUs.aspx&quot;
style=&quot;border-style:none;
font-size:1em;&quot;&gt;
About Us
&lt;/a&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
&lt;td style=&quot;width:0px;&quot;&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/td&gt;
</pre>
<p>This is one of the things I hate about SharePoint. There is a whole lot of code generated just for one menu item that could have been made with just an unordered list. Additionally you will notice that SharePoint includes some inline styles that may need to be overridden. </p>
<p>To style the menu I have found Heather Solomon&#8217;s CSS Chart very helpful.  Here is a breakdown of some of the styles I typically use.</p>
<ul>
<li><strong>.ms-topnav a</strong> &#8211; controls all the links in the top level menu.  I use this to set the font family and color as well as remove any background color / images.</li>
<li><strong>.ms-topnav td</strong> &#8211; remove background color / image behind the menu</li>
<li><strong>.ms-bannerframe</strong> &#8211; set the background color for the table that holds the menu and site actions menu</li>
</ul>
<p>There are other css classes that can be used but I use these the most.  In most cases instead of styling the td that holds each menu item I apply my styles to the &lt;a&gt; tag which makes things simpler.  The rest of my css just removes SharePoint&#8217;s normal styling.</p>
<p>This is a menu I styled using the td classes. The CSS is used is below. I try to avoid using !important in my CSS but sometimes SharePoint just won&#8217;t listen.</p>
<div id="attachment_135" class="wp-caption aligncenter" style="width: 230px"><a href="http://davecavins.com/wp-content/uploads/2009/07/menu.jpg"><img class="size-full wp-image-135" title="menu" src="http://davecavins.com/wp-content/uploads/2009/07/menu.jpg" alt="re-styled menu" width="220" height="59" /></a><p class="wp-caption-text">re-styled menu</p></div>
<pre class="brush: css; title: ; notranslate">
.ms-topnav a {
font-family:Georgia;
background-color:transparent;
background-image:none;
color:#ccc;
padding:5px;
border-bottom:0px;
}
.ms-topnav a:hover {
background-color:#666;
border-bottom:0px;
}

.ms-topnav td {
background-image:none;
background-color:#424242;
border:0px;
padding:5px;
padding-bottom:0px;
}
.ms-topnav table td{
border:0px;
}
.ms-topNavContainer {
border:0px;
}
.ms-topNavHover{
border:0px;
}
.ms-topnavselected a{
border:0px;
background-color:#EF6100;
color:#fff;
background-image:none;
}
.ms-topnav{
border:0px;
background-color:#ccc;
}
.ms-bannerframe {
background:#424242;
border-bottom:3px solid #EF6100;
border-top:1px solid #666 !important;
}
</pre>
<h3>Note</h3>
<p>When you mannually add items and headings to the menu the code that is generated is slightly different so its always good to check this before launching the site.</p>


<p>Related posts:<ol><li><a href='http://davecavins.com/2009/10/sharepoint-blog-comments-p2/' rel='bookmark' title='Styling SharePoint Blog Comments: Part 2'>Styling SharePoint Blog Comments: Part 2</a></li>
<li><a href='http://davecavins.com/2010/03/print-stylesheet-for-list-views/' rel='bookmark' title='Print Stylesheet for List Views'>Print Stylesheet for List Views</a></li>
<li><a href='http://davecavins.com/2009/10/styling-sharepoint-blog-comments/' rel='bookmark' title='Styling SharePoint Blog Comments'>Styling SharePoint Blog Comments</a></li>
</ol></p>]]></content:encoded>
			<wfw:commentRss>http://davecavins.com/2009/07/styling-the-moss-horizontal-navigation-menu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

