9

My column header needs to be quite long, but the content of the column is only a few pixels wide, so loads of white space and horizontal scrolling required to see the rest of the content.

Any ideas?

8

You can use SharePoint Designer to edit the AllItems.aspx view on this list. Insert this style inside the content place holder:

<style type= "text/css"> 
  .ms-vh2 {white-space: normal} 
</style>

This will override the style for the column headers which is set to white-space: nowrap

  • 5
    If you can't or dont want to use SPD you can also put this in a Content Editor Web Part (CEWP) using the HTML Source option. – Ryan Jun 6 '11 at 11:26
  • I've added a few lines of CSS to make it work in 2007/2010 and with non-filterable columns blog.pentalogic.net/2011/06/… – Ryan Jun 23 '11 at 17:15
1

There is also a way to wrap the columns individually using JavaScript by removing the nowrap attribute from the column header.

See Wrap ListViewWebPart Column Headers for more info (shameless link to my blog).

0

The bast/easy way -> Add JSLink to each view where you want add/remove "white-space".

(function() {
var addClassToField = {};
addClassToField.Templates = {};
// overrideNameField.OnPreRender = RenameColumn;
addClassToField.OnPostRender = AddClass;
addClassToField.Templates.Fields = {
    "Category": {
        "View": FieldToAddClass
    }
}
SPClientTemplates.TemplateManager.RegisterTemplateOverrides(addClassToField)})() 



function FieldToAddClass(ctx) {
      return "<div class='to-whiteSpace'>" + ctx.CurrentItem["Category"] + "
   </div>";
   }

function AddClass() {
    //white-space: nowrap;
    var headerAddClass = document.querySelector("[name=Category]").parentNode;
    if (headerAddClass.style.whiteSpace != "nowrap") {
        headerAddClass.style.whiteSpace = "nowrap";
    }
    var elementsAddClass = document.getElementsByClassName("to-whiteSpace");
    var elementsAddClassQuant = elementsAddClass.length;
    for (var el = 0; el < elementsAddClassQuant; el++) {
        elementsAddClass[el].parentNode.style.whiteSpace = "nowrap";
    }
}

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.