Monthly Archives: September 2009

You are browsing the site archives by month.

SharePoint CSS: Moving webparts

This issue has been bugging me for months. On several sites that I’ve branded, I’ve add a DOCTYPE to the masterpage that indicates to the browser to render the pages in standards mode. An unfortunate side effect of this occurs when you try to move webparts on a page: the little bar that pops up that you drag to a new webpart zone is way off. Like 200px off. Fortunately, I found a solution from this website. (which actually deals with a different issue, but it works for this too)

Just put this code in your masterpage or external .js file. Make sure the code or link reference is the last thing in the tag.


function MSOLayout_GetRealOffset(StartingObject, OffsetType, EndParent)
{
	var realValue=0;
	if (!EndParent) EndParent=document.body;
	for (var currentObject=StartingObject; currentObject && currentObject !=EndParent
         && currentObject != document.body; currentObject=currentObject.offsetParent)
	{
		var offset = eval('currentObject.offset'+OffsetType);
		if (offset) realValue+=offset;
	}
	return realValue;
}

Virtual PC: Tab/Escape not working

Today, all of the sudden the tab and escape keys stopped working in Virtual PC.  Had never happened before.  I reinstalled VM Additions, restarted the VM, nothing worked.  I then found the solution in a form post:

If you are running into this issue on Vista and Windows 7 you can get the TAB key back by creating a software allow policy. Go to administrative tools, local security policy, Software Restriction Policies, Additional Rules. Create a new rule for %appdata%microsoftvritual pcvpckeyboard.dll and set it to Unrestricted. Restart Virtual PC.   If the variable doesn’t work, try using an explicit path i.e. c:usersusernameappdataroamingmicrosoftvirtualpcvpckeyboard.dll”

Did that and it started working.  Note in the post that this applies to Vista and Windows 7 only.  I’m running Windows 7 x64.

SharePoint Top Nav Dividers

In a client project I’m working on, the design calls for dividers in between each navigation link. No problem. Here’s the CSS:


.ms-topnav a
{
	border-left-style:solid !important;
	border-left-color:#fff !important;
	border-left-width:1px !important;
	padding: 0 10px 0 10px;

}

However, this leaves the border on the first element of the navigation, which we don’t want. There’s no way to select that element using just CSS, so JQuery to the rescue:


$(document).ready(function(){

	$(".ms-topNavContainer").each(function() {

        var links = $(this).find("a");

        if (links.length > 0) {
            var link = links[0];
            $(link).addClass("navLast");
        }

    });

});

The CSS for “navLast”:


a.navLast
{
	border-left-style:none !important;
}


The interesting thing here is that it has to be “a.navLast”. For some reason, “.navLast” doesn’t work. Also, you can’t use “border-left” to add the dividers. You have to use the individual styles (most likely because of the inline styles on the element).

Switch to our mobile site