Zum Hauptinhalt wechseln

Katharina Biedermanns Blog

Startet die Suche
Homepage
Fabian Moritz
Malte Pabst
Holger Schweitzberger
Katharina Biedermann
Consulting-Team-Blog
Michael Klingner
Projektmanagement
  

ITaCS Blogs > Katharina Biedermanns Blog
CSS3 – Runde Ecken werden von Verlauf überlagert - Lösung

In einigen Browsern kommt es leider vor, dass die mit CSS3 generierten runden Ecken von generierten Verläufen überlagert werden.

So ist es zum Beispiel im Firefox möglich ein div mit runden Ecken und einem Verlauf zu versehen, ohne mit Einschränkungen rechnen zu müssen. Im IE hingegen gibt es Probleme bei der Darstellung:

                Ansicht Firefox:                            

 

 

 

 

 

 

 

 

 

        

 

                                Ansicht IE:

 
Die abgerundeten Ecken werden im IE vom Verlauf überlagert – unten, aufgrund der Farbe im Verlauf, deutlicher zu sehen als oben.

Hier die Lösung für ein identisches Ergebnis in beiden Browsern:

Es wird ein weiteres div verschachtelt und der Verlauf unabhängig vom Rahmen gesetzt.

Das äußere div stellt jetzt den Rahmen und die abgerundeten Ecken dar. Das innere div den Verlauf. Nicht vergessen die Höhe des inneren div's auf 100% zu setzen. Das Ergebnis sieht nun folgendermaßen aus:

In beiden Browsern wird jetzt zwar der Verlauf abgerundet angezeigt, jedoch überlagert er noch immer den äußeren Rahmen und das führt zu keinem akzeptablen Ergebnis. (Rahmen zur besseren Ansicht etwas abgedunkelt)

Die Lösung ist das Setzten eines overflow: hidden; auf das äußere div, welches den Rahmen und die abgerundeten Ecken darstellt.
Das Ergebnis sieht dann folgendermaßen aus.

Drucken von Inhalten aus SharePoint 2010 (Veröffentlichungsseite) – Druckbereich zu breit

Wer schon einmal einen Druckvorgang aus SharePoint 2010 – Veröffentlichungsseite – gestartet hat, kennt diese Herausforderung ganz sicher.

Der gedruckte Text ist zu breit für die Seite und wird nicht wie erwartet automatisch an das Format angepasst:

Informationen gehen verloren.

Der Fehler entsteht durch eine Standard-Style-Angabe in der core.css von SharePoint 2010:

Die Angabe muss einfach überschrieben werden:

Die Druckausgabe sieht danach wie folgt aus:

Probleme bei der Nutzung von CSS3 in SharePoint 2010

Bei der Benutzung von CSS3 in SharePoint 2010 gibt es eine kleine Besonderheit.
In den Standard Masterpages wird im <head> der Kompatibilitätsmodus auf den IE8 gesetzt:

<meta http-equiv="X-UA-Compatible" content="IE=8"/>

Dies führt natürlich dazu, dass die neuen Möglichkeiten die uns CSS3 bietet nicht interpretiert werden.

Deshalb macht es hier Sinn auf den IE9 zu verweisen:

<meta http-equiv="X-UA-Compatible" content="IE=9"/>

 

Done!

Web Browser-Hacks – CSS hacks

Weil heute so ein toller Tag ist, erquicke ich euch mal mit ein paar Browser-Hacks ;)

Nachfolgend eine Zusammenstellung von verscheidenen Internetseiten.

 

Selector hacks:

   

/* IE6 and below */

* html #ID { color: blue }

   

/* IE7 */

*:first-child+html #ID { color: blue }

   

/* IE7, FF, Safari, Opera */

html>body #ID { color: blue }

   

/* IE8, FF, Safari, Opera (Everything but IE 6,7) */

html>/**/body #ID { color: blue }

   

/* Opera 9.27 and below, Safari 2 */

html:first-child #ID { color: blue }

   

/* Safari 2-3 */

html[xmlns*=""] body:last-child #ID { color: blue }

   

/* Safari 3+, Chrome 1+, Opera9+, FF 3.5+ */

body:nth-of-type(1) #ID { color: blue }

   

/* Safari 3+, Chrome 1+, Opera9+, FF 3.5+ */

body:first-of-type #ID { color: blue } 

   

/* Safari 2 - 3.1 */

html[xmlns*=""]:root #ID { color: blue }

   

/* Safari 2 - 3.1, Opera 9.25 */

*|html[xmlns*=""] #ID { color: blue }

   

/* Everything but IE6-8 */

:root *> #ID { color: blue }

   

/* IE7 */

*+html #ID { color: blue }

   

/* Firefox only. 1+ */

#ID, x:-moz-any-link { color: blue }

   

/* Firefox 3.0+ */

#ID, x:-moz-any-link, x:default { color: blue }

   

/* FF 3.5+ */

body:not(:-moz-handler-blocked) #ID { color: blue; }

   

 

Attribute hacks: 

   

/* IE6 */

#ID { _color: blue }

   

/* IE6, IE7 */

#ID { *color: blue; /* or #color: blue */ }

   

/* Everything but IE6 */

#ID { color/**/: blue }

   

/* IE6, IE7, IE8 */

#ID { color: blue\9; }

   

/* IE7, IE8 */

#ID { color/*\**/: blue\9; }

   

/* IE6, IE7 -- acts as an !important */

#ID { color: blue !ie; } /* string after ! can be anything */

   

/* IE8, IE9 */

#ID {color: blue\0/;} /* must go at the END of all rules */

 

 

Property Prefix hacks: 

   

/* IE6 only - any combination of these characters */

_ - £ ¬ ¦

  

/* IE6/7 only - any combination of these characters */

! $ & *()= % +@ , . / ` [ ] # ~ ? : < > |

  

 

Media hacks: 

   

 /* Safari 3+, Chrome1+ */

@media screen and (-webkit-min-device-pixel-ratio:0) {

#ID { color: blue }

}

   

/* iPhone / mobile webkit */

@media screen and (max-device-width: 480px) {

#ID { color: blue }

}

 

/* IE6/7 only */

@media screen\9 { }

   

/* IE6/7/8 */

@media \0screen\,screen\9 {} 

   

/* IE8 */

@media \0screen { }

   

/* IE8/9 */

@media screen\0 { }

 

Quellen:
http://snipplr.com/view/48670/browserhacks/
http://blog.pixelmash.de/code/css/browser-css-hacks
http://paulirish.com/2009/browser-specific-css-hacks/
https://snipt.net/ivanator/css-browser-
hacks/?key=847bdbe96173b0f81a39a62a1814b65a

Darstellungsfehler im Seitenlayout-Bearbeitungsmodus SharePoint 2010

Es gibt Situationen in denen scheinbar plötzlich keine Bilder und Rahmen mehr um den Titel der Felder angezeigt werden.
Den "Karteikarten"- Reitern fehlt der Style, so wie hier:

In diesem Fall wird eine SharePoint-Standard CSS-Datei einfach nicht geladen.

Ein kleiner Trick um diese Herausforderung schnell zu lösen ist ein PublishingPageImage (Bild für die Veröffentlichung) im Seitenlayout einzubinden und gegebenenfalls über CSS auszublenden.

Danach sieht es wieder wie gewohnt aus:

Eigene Formatvorlagen mit SharePoint 2010

Wie man eigene Formatvorlagen in SharePoint 2010 zur Verfügung stellt lest ihr hier:

Bild

 

1.       Eigenen Prefix in allen RichHtml – Feldern der gewünschten Pagelayouts hinterlegen.

Beispiel:

<PublishingWebControls:RichHtmlField PrefixStyleSheet="my-rte" FieldName="Text" runat="server"></PublishingWebControls:RichHtmlField>

 

2.       Styles in der CSS-Datei hinterlegen.

Beispiel:

.my-rteStyle-Ueberschrift2 { -ms-name:"Ueberschrift 2 einfach"; }

.my-rteStyle-Ueberschrift2 { color: #4370B2; font: 16px/22px Helvetica,Arial,Verdana,sans-serif; }

 

.my-rteStyle-Ueberschrift2A { -ms-name:"Ueberschrift 2 Akkordeon"; }

.my-rteStyle-Ueberschrift2A { background: #F0F4F9; color: #4370B2; font: 16px/19px Helvetica,Arial,Verdana,sans-serif; padding: 10px; }

 

.my-rteStyle-Ueberschrift3 { -ms-name:"Ueberschrift 3"; }

.my-rteStyle-Ueberschrift3 { color: #000; font: 13px/18px Helvetica,Arial,Verdana,sans-serif; font-weight: bold; }

 


Bild

 

Bitte beachten: Der Prefix muss klein geschrieben werden.

SharePoint Designer 2010 Bug umgehen

Im SharePoint Designer 2010 gibt es einen Bug bei der Erstellung von Seitenlayouts.

Sobald man ein Webcontrol in ein <h> Tag bettet, wird beim Speichern automatisch das sich schließende Tag wieder entfernt oder ein NonBrakingSpace hinzugefügt. Das führt natürlich nicht zu den gewünschten Effekten.

 

Beispiel:
<asp:Content ContentPlaceHolderId="PlaceHolder" runat="server">

<h1>

<SharePointWebControls:TextField runat="server" FieldName="Title" />

</h1> ß wird automatisch beim Speichern entfernt
</
asp:Content>

 

 

Um dies zu vermeiden muss das WebControl einfach mit einem Endtag versehen werden.

 

Beispiel:

<asp:Content ContentPlaceHolderId="PlaceHolder" runat="server">

<h1>

<SharePointWebControls:TextField runat="server" FieldName="Title"></SharePointWebControls:Textfield> ß Endtag hinzufügen

</h1>
</
asp:Content>

 

Hier entsteht dann der nächste Fehler. Der Designer rendert automatisch nach dem Schließen der Datei ein &nbsp; nach dem Öffnen des <h> Tags. Wenn man also die geänderte Datei speichert, schließt und wieder öffnet, sieht sie folgendermaßen aus:

 

Beispiel:
<asp:Content ContentPlaceHolderId="PlaceHolder" runat="server">

<h1>&nbsp; ß automatisch hinzugefügt

<SharePointWebControls:TextField runat="server" FieldName="Title"></SharePointWebControls:Textfield>

</h1>
</
asp:Content>

 

Dieses Problem lässt sich lösen wenn man das WebControl zusätzlich in ein <span> Tag betten. Die Zeile sollte am Ende also wie folgt aussehen:

 

Beispiel:

<asp:Content ContentPlaceHolderId="PlaceHolder" runat="server">

<h1>

     <span> ß eingebettet

<SharePointWebControls:TextField runat="server" FieldName="Title"></SharePointWebControls:Textfield>

     </span> ß eingebettet

</h1>
</
asp:Content>

 

How To – Wie erstellt man ein Theme in SharePoint 2010

In SharePoint 2007 konnten Themes selbst erstellt und angepasst werden indem man sie einfach mit dem SharePoint-Designer editierte. Allerdings hat sich die Engine von 2010 im Vergleich grundlegend geändert.
Themes können nicht mehr ganz so einfach mit vielen Bildern und Logos an eine CI angepasst - dafür aber umso einfacher gestaltet werden wenn es sich einzig und allein um Farb- und Schriftanpassungen handelt.

Hier gibt es einen kurzen Überblick und den ein oder anderen Tipp zur Erstellung eines Themes bzw. Anpassung an ein CI.

Erstellen und hochladen eines Themes mit angepassten Farben und Schriften

  1. Im ersten Schritt sollte das gewünschte Theme erstellt werden. Dies kann über Microsoft PowerPoint erfolgen – meiner Meinung nach aber viel einfacher über den Microsoft Theme Builder. Der Theme Builder kann hier heruntergeladen werden http://connect.microsoft.com/themebuilder. Das Programm wird geöffnet, oben links ein "Theme Name" vergeben und die gewünschten Farben und Schriften eingestellt. Anschließend wird das Theme als thmx. Datei abgespeichert.
  2. Über die Sharepoint Site kann das Theme nun hochgeladen werden --> Site Actions --> Site Settings --> Theme Gallery --> "Add New"
  3. Das Theme kann jetzt aktiviert werden --> Site Actions --> Site Settings --> Site Theme

Erstellen eines Themes nach CI Vorgaben

In SharePoint 2010 wird bei jeder Aktivierung eines Themes eine Kopie eines Unterordners im SharePoint-Designer erstellt. Diese Ordner enthalten Unmengen an CSS- und Bilddateien und werden im Verzeichnis _catalogs/Themes/Themed hinterlegt. Grundsätzlich können sie auch angepasst werden, nur leider gibt es keinen Weg diese gebündelten Ordner über die Oberfläche als auswählbares Theme darzustellen.

Um also ein Theme nach CI Vorgaben zu erstellen kann wie folgt vorgegangen werden (das Standard-Theme sollte dabei als Grundlage genommen werden).

  1. Erstellen einer eigenen CSS-Datei und eines Image-Verzeichnis im Ordner "Style Library".
  2. Registrierung der CSS-Datei in der Maserpage.
  3. Anpassen/Überschreiben des Designs ausschließlich in der selbst erstellten CSS-Datei.
  4. Deployen der CSS-Datei, des Image-Ordners und der Registrierung in der Masterpage über ein Feature.

Die Masterpage sollte bis auf die Angabe der CSS-Datei möglichst nicht angepasst werden, da sie in den unterschiedlichen Ausführungen (Teamsite, Meeting Workspace etc.) immer anders aufgebaut ist und so sehr viel Arbeitsaufwand entstehen würde.

Einen benutzerdefinierten Webpart für Inhaltsabfragen (CQWP) erstellen

Im nachfolgenden Blog-Artikel beschreibe ich wie ein Webpart für Inhaltsabfragen (Content Query Webpart) benutzerdefiniert angepasst werden kann.

Das Beispiel zeigt die neusten Nachrichten auf der Startseite einer SiteCollection an. Es sollen das Erscheinungsdatum und der Titel der fünf neusten Nachrichten angezeigt werden, zusätzlich soll der Titel auf die angekündigte "Nachrichtenseite" verlinken.

Wir gehen von folgender Struktur aus:

 

Im ersten Schritt bewegen wir uns auf die Starseite der SubWebsite Nachrichten um später anzuzeigenden Inhalt für den WebPart zu erzeugen.

Über Websiteaktionen à Seite erstellen wird nun eine neue Seite (Nachricht) mit dem gewünschten Seitenlayout erstellt.

Sinnvollerweise sollte eine "Nachrichtenseite" immer ein Datum, einen Titel und einen Text enthalten.

In diesem Fall habe ich den Websiteinhaltstyp Homepage um die Spalten Nachrichtendatum und Seitentitel erweitert und in meinem Pagelayout hinterlegt.

Wenn die neue Seite erstellt und mit Beispieltext gefüllt wurde können wir diese wie gewohnt veröffentlichen.

 

Im nächsten Schritt bewegen wir uns nun auf die Startseite der SiteCollection. Über Websiteaktionen à Seite bearbeiten wird nun der ein Webpart für Inhaltsabfragen einer WebPartZone hinzugefügt.
Über bearbeiten à Freigegebenes WebPart bearbeiten nehmen wir nun schon ein paar Voreinstellungen vor:

Abfrage
- wähle den Punkt: "Elemente aus folgender Liste anzeigen" und wähle "Durchsuchen"
- navigiere zu folgender Bibliothek

- Listentyp wähle "Bibliothek für Seiten"

Präsentation
- wähle bei "Elemente sortieren nach" die Spalte Nachrichtendatum und "Elemente in absteigender Reihenfolge anzeigen"
- wähle bei "Eintragsgrenze" 5

Darstellung
- ersetzte den "Titel" WebPart für Inhaltsabfragen gegen Neue Nachrichten
- wähle bei "Chrmotyp" nur Titel

Alles mit OK bestätigen.

Über bearbeiten à Exportieren wird der WebPart nun mit den Voreinstellungen exportiert und zum Bearbeiten geöffnet.
Die Zeile <property name="CommonViewFields" type="string" /> erweitere ich meine später anzuzeigenden Websitespalten.

Für das Beispiel sind nun folgende Spalten von Bedeutung:

Nachrichtendatum (NewsDate) vom Typ "Datum und Uhrzeit"
Seitentitel (PageTitle) vom Typ "Eine Textzeile"

Die Zeile sollte nun so aussehen:
<property name="CommonViewFields" type="string">PageTitle,Text;NewsDate,Date;</property>

Anschließend kann die Änderung gespeichert und der Webpart in den Webpartkatalog der SiteCollection hochgeladen werden.

Jetzt bewegen wir uns zum ersten Mal in den SharePoint Designer (SPD).
Hier öffnen wir die Datei ItemStyle.xsl – diese befindet sich im Ordner Style Library/XSL Style Sheets

Über diese Datei legen wir eine bestimmte Darstellungsform fest, diese wird später im WebPart ausgewählt.
In der Datei befinden sich verschiedene sogenannte "Templates" und hier werden wir auch unseres hinzufügen:

<xsl:template name="Nachrichten" match="Row[@Style='Nachrichten']" mode="itemstyle"> (Der Name beschreibt die Bezeichnung der Darstellungsform)
  <div id="linkitem" class="ItemActually">
    <table class="PageTitle" cellpadding="0" cellspacing="0">
      <tr>
        <td>
          <div class="Date">
            <xsl:value-of select="ddwrt:FormatDate(string(@NewsDate) ,1031 ,1)"/> (Mit "select" wird die jeweils gewünschte Websitespalte ausgelesen, in diesem Fall "NewsDate". Weiterhin wird die Darstellung des Datums festgelegt.)
         </div>
         <span class="PageTitle" style="display:inline">
           <xsl:call-template name="OuterTemplate.CallPresenceStatusIconTemplate"/>
             <a href="/{@FileRef}">
           <xsl:value-of select="@PageTitle" /> (Wie vorangegangen wird auch hier eine Websitespalte ausgelesen: "PageTitle", zusätzlich wird noch der Link zum jeweiligen Listeneintrag gesetzt.)
             </a>
          </span>
        </td>
      </tr>
    </table>
    <div style="clear:both;"></div>
  </div>
</xsl:template>

Ganz oben im <xsl:stylesheet> fügen wir noch folgenden Präfix hinzu:
xmlns:ddwrt="http://schemas.microsoft.com/WebParts/v2/DataView/runtime"

Nach diesen Einstellungen kann das Dokument gespeichert und wieder eingecheckt werden.

Anschließend gehen wir zurück auf die Startseite der SiteCollection, dort wo wir auch die Nachrichten anzeigen wollen und entfernen den zuvor eingefügten WebPart wieder.
Dann fügen wir den von uns hochgeladenen WebPart aus dem Webpartkatalog hinzu und wählen bearbeiten à Freigegebenes WebPart bearbeiten.

Unter "Format für Elemente" muss noch "Nachrichten" ausgewählt werden und schon werden alle Nachrichten angezeigt.

Alle weiteren Design-Anpassungen können nun nach Wunsch erfolgen.

Erstellung einer eigenen Masterpage und eines eigenen CSS

Diese Grundlage sollte in einem guten SharePoint Blog nicht fehlen und verhilft doch immer wieder vielen Neulingen zu schnellen Erfolgen beim Umgang mit dem SharePoint
Designer und dem Wunsch nach einer individuell gestalteten Oberfläche.

Als erstes wird die SiteCollection im SharePoint Designer geöffnet.

In dem Ordner _catalogs / masterpage (Masterseitenkatalog) befinden sich die aktuell verwendeten bzw. zur Auswahl stehenden Masterseiten und die dazugehörigen Seitenlayouts.
Die Masterseiten sind jeweils durch die Endung .master und die Seitenlayouts durch die Endung .aspx gekennzeichnet.

Die Masterseiten bestimmen das Grundgerüst einer Seite, die Seitenlayouts wiederum den Aufbau des Inhalts.

Grundsätzlich ist zu sagen dass gerade in den Anfangsphasen eines Designers darauf geachtet werden sollte dass die vorhandenen Masterpages und Seitenlayouts erst einmal nicht
überschrieben werden. Wenn überhaupt würde man zum Experimentieren eine Kopie einer Datei machen und diese dann anpassen, besser noch eine neue Datei anlegen.

Auf jeden Fall aber ist zu empfehlen sich die Masterpage der Website genau anzuschauen, um ein Gefühl für die Funktion der einzelnen Placeholder und den Aufbau zu bekommen.
Vor allem aber um sich mit der Wichtigkeit einzelner Controls vertraut zu machen.

Nun aber weiter:

Es wird eine neue Masterpage angelegt. Über Datei / Neu den Typ Master Page wählen und mit OK bestätigen. In die Codeansicht wechseln.
Dann den vorgegebenen Inhalt durch den Code für eine Minimal Masterpage, zu finden unter http://msdn.microsoft.com/en-us/library/aa660698.aspx, ersetzen.
Die neue Masterpage über Speicher unter im Ordner _catalogs / masterpage (Masterseitenkatalog) unter dem gewünschten Namen speichern.

Die neue Masterpage besteht nun erst einmal nur aus dem benötigten Grundgerüst. Die enthaltenen Placeholder müssen in der Masterpage dringend vorhanden sein und dürfen
nach Bedarf über visible="true" oder "false" angezeigt oder versteckt, jedoch nicht entfernt werden, da die verschiedenen Placeholder in unterschiedlichen Ansichten von SharePoint
verwendet werden.

Um die neue Masterpage nun anzeigen zu können muss diese über die SharePoint Oberfläche unter Websiteaktionen / Websiteeinstellungen / Alle Websiteeinstellungen ändern im
Abschnitt Aussehen und Verhalten / Masterseite ausgewählt und bestätigt werden. Die Masterseite der Website wird also die gerade neu erstellte Masterpage. Die Systemmasterseite
kann weiterhin als default.master stehen bleiben. Diese richtet sich am Website-Theme aus oder aber die Systemmasterseite bekommt je nach Design-Konzept ebenfalls das gleiche
Design wie die Website. Im letzteren Fall würde man für die Systemmasterseite eine andere Masterpage wählen.

Es erfolgt wieder ein Wechsel zurück in den SharePoint Designer. Nun geht es darum die Struktur der Webseite zu schaffen und alle Placeholder und Controls so zu positionieren dass
sie in das gewünschte Design passen. Den kompletten HTML-Möglichkeiten sind nun also erst einmal keine Grenzen gesetzt.

Die Anpassung des Designs durch CSS erfolgt über folgende Schritte:

Zuerst erzeugt man die neue/n CSS-Datei/en. Über Datei / Neu wird der Dateityp CSS gewählt und mit OK bestätigt.
Die neue Datei über Speicher unter im Ordner Style Library unter dem gewünschten Namen speichern.

Nun wird diese nur noch in der Masterpage registriert und schon kann das Anpassen der Seite per CSS erfolgen.

1 - 10 Weiter
Neues aus unseren Blogs
Kontakte nicht auswählbar mit Lync
[19.03.2012]
Michael Sahr
SAN Verbindungen in virtuellen Maschinen unter Hyper-V
[15.03.2012]
Malte Pabst
Windows Server 8
Fabian´s Blog [SharePoint MVP]
MVP Award 2012
[02.01.2012]
Fabian Moritz
SharePoint 2010; SharePoint Magazin; MVP; CeBIT 2012; SharePoint Conference 2012; Basta! 2012; SharePoint konferenz 2012
Windows Server 8 Core Konfiguration
[14.12.2011]
Malte Pabst
Windows Server 8
Hyper-V Windows Server 8 und Power Shell
[13.12.2011]
Malte Pabst
Windows Server 8
VMs auf SMB Shares speichern unter Windows Server 8
[13.12.2011]
Malte Pabst
Windows Server 8
Erste Schritte mit Windows Server 8–Teil 1
[13.12.2011]
Malte Pabst
Windows Server 8

 ‭(Ausgeblendet)‬ Administratorhyperlinks