Archiv

Archiv für die Kategorie ‘Webdesign’

iPhone: Weitere Tipps zur Webseiten programmierung

11. März 2010 Keine Kommentare

Neben dem bereits veröffentlichten Post können folgende zwei Seiten eine Hilfe bei der Programmierung von Webseiten für’s iPhone sein:

www.vorsprungdurchwebstandards.de/theory/faq-websites-fuer-das-iphone-gestalten
www.kulturbanause.de/2008/09/websites-fur-das-iphone-erstellen-und-optimieren

Popularity: 1% [?]

Twitter It!
KategorienWebdesign, iPhone Tags: ,

Mega Drop Down Navigation, mit und ohne JavaScript

10. März 2010 Keine Kommentare

Heute beim LautundKlar Blog gesehen.

Die Mega Drop Down Navigation ermöglicht eine erweiterte Subnavigation in einer Dropdown Navigation. Die Navigation ist standardmässig mit jQuery aufgebaut. Es gibt auch eine Version ohne jQuery welche jedoch nicht mit dem IE 6 funktioniert.


Hier gibt es die Beschreibung und das Script

Hier gibt es eine Demo der MegaDropdown-Navigation ohne JavaScript

Popularity: 1% [?]

Twitter It!
KategorienWebdesign Tags: ,

Webseiten für iPhone programmieren, Tipps und Tricks

9. März 2010 1 Kommentar

In der letzten Zeit habe ich mich ein wenig mit dem Thema Webseitenoptimierung für’s iPhone auseinander gesetzt. Hier eine kleine Zusammenstellung von Möglichkeiten wie man ein iPhone erkennt und den richtigen Content ausgeben kann.

Mit Javascript

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
    if (document.cookie.indexOf("iphone_redirect=false") == -1) {
        window.location = "http://m.domain.ch/iphone";
    }
}

mit PHP

if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')) {
    header('Location: http://m.domain.ch/iphone');
    exit();
}

Beide Beispiele kommen von davidwalsh.name/detect-iphone

iPhone-Bildschirmgrösse als Viewport setzen

Um die Webseitengrösse auf das iPhone zu optimieren kann man die Viewportgrösse definiert werden. Dies erlaubt es den Inhalt auf die Bildschirmbreite zu optimieren.

Mit Viewport werden die Webseiten für die optimale Ansicht herunterskaliert, so dass sie den Brwoser möglichst optimal ausfüllen

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">

Für das iPhone ein spezielles Icon definieren

Im iPhone kann ein Bookmark einer Internetseite als “App” auf dem Homescreen eingefügt werden. Normalerweise nutzt das iPhone dazu ein Printscreen der Webseite als Icon. Über folgenden Tag kann man dafür jedoch ein eigenes Icon definieren welche für das iPhone optimiert ist.
Die Grafik muss 57×57px gross und im *.png Format gespeichert sein. Der Schein sowie die runden Ecken müssen nicht erstellt werden. Dies macht das iPhone automatisch.

<rel="apple-touch-icon" href="/template/images/iPhoneAppIcon.png"/>

Ändern der Textgrösse beim drehen des iPhones unterbinden

Wenn man das iPhone auf’s Querformat dreht, passt Safari die Schriftgrösse automatisch an. Mit folgendem CSS Befehl kann dies verhindert werden:

html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {
    -webkit-text-size-adjust:none;
}

CSS Style nur für’s iPhone

Mit folgender Einstellung kann ein Stylesheet speziell für das iPhone definiert werden:

@media screen and (max-device-width: 480px) {
     /* Hier kommt das CSS für's iPhone rein */
}

Autmatisches resize von Bildern für das iPhone

Auf einer Webseite sind die meisten Bilder grösser als 480 Pixel gross. Damit ist die Wahrscheinlichkeit, dass ein Bild grösser als der Bildschirm ist, sehr gross. Mit folgendem CSS Code kann man die Bilder automatisch auf 100% der Bildschirmgrösse verkleinern. Wenn die Bildschirmgrösse des Geräts maximal 480px beträgt, werden die Bilder nie breiter angezeigt.

@media screen and (max-device-width: 480px){
    img{
        max-width:100%;
        height:auto;
    }
}

Die Toolbar des iPhone per default verstecken

Auf dem kleinen iPhonebildschirm kann es praktisch sein, die Toolbar automatisch auszublenden damit für die Webseite mehr Platz zur Verfügung steht. Dazu kann man folgenden JavaScript Code einsetzen:

window.addEventListener('load', function() {
    setTimeout(scrollTo, 0, 0, 1);
}, false);

Das Telefon oder die SMS Funktion direkt ansprechen

Auf einer normalen Webseite nutzt man den “mailto:” Link um eine E-Mailadresse zu verlinken welche mit dem Standard-Mailprogramm geöffnet wird. Im iPhone gibt es die Möglichkeit mit den beiden Prefixen “tel” und “sms” direkt die ensprechenden Applikationen auf dem iPhone ansprechen.

<a href="tel:12345678900">Hier klicken zum anrufen</a>
<a href="sms:12345678900">Sende mir ein Text</a>

Pseudo :hover classes für das iPhone

Ohne Maus auf dem iPhone kann auch schlecht eine :hover class ausgeführt werden. Mit ein wenig JavaScript kann die :hover class dennoch angesprochen werden wenn der Finger auf dem Link ruht:

var myLinks = document.getElementsByTagName('a');
for(var i = 0; i < myLinks.length; i++){
   myLinks[i].addEventListener('touchstart', function(){this.className = "hover";}, false);
   myLinks[i].addEventListener('touchend', function(){this.className = "";}, false);
}

Zusätzlich muss dazu das Stylesheet um folgendes ergänzt werden:

a:hover, a.hover {
    /* der gewünschte Hover Effekt */
}

Gefunden auf catswhocode.com

Popularity: 1% [?]

Twitter It!
KategorienWebdesign, iPhone Tags: ,

25 interessante jQuery Plugins

9. März 2010 Keine Kommentare
KategorienWebdesign Tags: ,

Wordpress robots.txt einrichten

3. März 2010 Keine Kommentare

Die robots.txt Datei dient dazu einer Suchmaschine zu sagen welche teile des Blogs indexiert werden sollen und welche nicht. Dadurch kann man z.B. auch vermeiden dass über Google nach exploits in Plugins gesucht werden kann, da der Plugin-Ordner über die robots.txt Datei ausgeklammert wurde.

Des weiteren kann man über die robots.txt eine Sitemap der Seite verlinken welche es den Suchmaschinen einfacher macht, die Seite zu indexieren.

Hier der Auszug aus der robots.txt. Diese muss im Hauptverzeichnis der Domain sein.

User-agent: *
Sitemap: http://www.camma.ch/sitemap.xml

# Nicht indexieren aller Dateien in folgenden Verzeichnissen
Disallow: /cgi-bin/
Disallow: /wp-admin/
Disallow: /wp-includes/
Disallow: /wpcontent/themes/
Disallow: /wp-content/plugins/
Disallow: /trackback/
Disallow: /*?*
Disallow: */trackback/

User-agent: Googlebot
# Unterbinden der Indexierung aller Dateien mit diesen Endungen
Disallow: /*.php$
Disallow: /*.js$
Disallow: /*.inc$
Disallow: /*.css$
Disallow: /*.gz$
Disallow: /*.cgi$
Disallow: /*.wmv$
Disallow: /*.png$
Disallow: /*.gif$
Disallow: /*.jpg$
Disallow: /*.cgi$
Disallow: /*.xhtml$
Disallow: /*.php*
Disallow: */trackback*
Disallow: /*?*
Disallow: /category/
Disallow: /tag/
Disallow: /archives/
Disallow: /feed/
Disallow: /wp-*
Allow: /wp-content/uploads/

# Google Image erlauben alle Bilder zu indexieren
User-agent: Googlebot-Image
Allow: /*

# Dem AdSense Bot erlauben die Seite zu indexieren
User-agent: Mediapartners-Google*
Disallow: /*?*
Allow: /wp-content/
Allow: /tag/
Allow: /category/
Allow: /*.php$
Allow: /*.js$
Allow: /*.inc$
Allow: /*.css$
Allow: /*.gz$
Allow: /*.cgi$
Allow: /*.wmv$
Allow: /*.cgi$
Allow: /*.xhtml$
Allow: /*.php*
Allow: /*.gif$
Allow: /*.jpg$
Allow: /*.png$

# Archivierung der Seite unterbinden
User-agent: ia_archiver
Disallow: /

# duggmirror unterbinden
User-agent: duggmirror
Disallow: /

Die sitemap.xml kann durch das Plugin Google XML Sitemaps erstellt werden.

Popularity: 1% [?]

Twitter It!

CSS: Layouts mit 100% Höhe

12. Januar 2010 Keine Kommentare

Wenn das Layout einer Seite 100% hoch sein muss, gibt es einiges was beachtet werden muss. Als Vorlage kann dieses Example genommen werden.

Vorbereitung des Stylesheets:

html,body {
    margin:0;
    padding:0;
    height:100%; /* braucht es für die min-height des Containers */
}

Danach muss für die gesamte Höhe ein Container erstellt werden:

div#container {
    position:relative; /* braucht es für die Footer Position*/
    margin:0 auto; /* Zentriert die Seite (nicht in IE5) */
    width:750px;
    height:auto !important; /* normale Browser */
    height:100%; /* IE6: setzt dies wie min-height um*/
    min-height:100%; /* normale Browser */
}

Der Head und der Content können nun normal platziert werden. Damit nun der Footer der Seite immer am unteren Rand klebt, muss folgendes im Stylesheet definiert werden:

div#footer {
    position:absolute;
    width:100%;
    bottom:0; /* Positioniert dies ganz unten */
}

Popularity: 3% [?]

Twitter It!
KategorienWebdesign Tags: ,

.htaccess ReWrite Rules

8. September 2009 Kommentare ausgeschaltet

Vor kurzem bin ich über folgenden Blog-Eintrag gestolpert:

http://sw-guide.de/webdesign-und-entwicklung/htaccess-mod_rewrite-fuer-cms-und-blog/

Im Eintrag wird die Verwendung von ReWrite Rules mit .htaccess detailliert und mit vielen Details beschrieben. Absolut empfehlenswert für nicht so geübte .htaccess Programmierer.

Popularity: 4% [?]

Twitter It!

jQTouch, jQuery für’s iPhone

7. September 2009 Kommentare ausgeschaltet

auf Heise gefunden:

jQTouch, ein jQuery-Plugin dient dazu einfacher Web-Apps für iPhone, Palm Pre, Android und andere Smartphone zu entwickeln. Eine Betaversion steht ab sofort zur Verfügung und ermöglicht die Entwicklung von Applikationen mit HTML, CSS und JavaScript für WebKit-Browser.

Der Vorteil von jQTouch ist der Zugriff auf bestimmte Hardware-Funktionen des Geratäes. So kann z.B. der Bewegungssenor oder auch Multi-Touch angesprochen werden. So wird es möglich Applikationen für ein meherere verschiedene Geräte zum laufen zu bringen ohne diese beim jeweiligen App-Store anmelden zu müssen. Es lassen sich damit auch neue Themes einrichten. Somit lässt sich die Web-App einer normalen App sehr ähnlich gestalten.

Für beides stellt jQTouch passende Events zur Verfügung, an die der Entwickler wie üblich Callbacks zur Verarbeitung bindet. Ein Handler, der auf das Drehen des Geräts reagiert, könnte etwa so aussehen.

$(function(){
    $('body').bind('turn', function(event, info){
          console.log(info.orientation); // landscape or portrait
    });

Weitere Informationen:
jQtouch.com
Code auf CoogleCode

Popularity: 6% [?]

Twitter It!

Transparente PNG Grafiken im Internet Explorer

19. August 2009 Kommentare ausgeschaltet

Der Internet Explorer hat mit transparenten PNG Dateien mühe. Auf folgender Seite findet man eine Lösung für den Internet Explorer:
http://homepage.ntlworld.com/bobosola/index.htm

Popularity: 2% [?]

Twitter It!
KategorienWebdesign Tags:

Pretty URL in CMS Made Simple

14. August 2009 Kommentare ausgeschaltet

In der Standardinstallation des Open Source Content Managment Systems CMS made Simple werden URLs mit einem Query String erzeugt. Die sehen dann z.B. so aus: http://www.domainname.ch/index.php?page=Kontakt

Um suchmaschinenfreundliche URLs (Pretty URLs) zu erzeugen, nutzt CMS made simple das Apachemodul mod_rewrite. Um dies zu aktivieren muss man in der Konfigurationsdatei config.php folgende Änderungen vornehmen:

#------------
#URL Settings
#------------
$config['url_rewriting'] = 'mod_rewrite';
#Endung der virtuellen Dateien
$config['page_extension'] = '.htm';
#Wenn die Seiten in einer Baumstruktur aufgebaut werden sullen  (z.B. http://www.domainname.ch/parent/parent/childpage)
$config['use_hierarchy'] = true;
$config['query_var'] = 'page';

Im 2. Schritt passt man noch die .htaccess an:

Options +FollowSymLinks
  RewriteEngine on
  RewriteBase /
 
  # ReWrite Rule für News-Feed
  RewriteRule ^News/rss(.+)$ index.php?page=News/rss$1 [S=1]
 
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule ^(.+).htm$ index.php?page=$1 [QSA]

# Beginn CMSMS Security Einstellungen.

# Directory Browsing abschalten
Options -Indexes

# Zugriff auf config.php verbieten.

<Files "config.php">
order allow,deny
deny from all
</Files>

# No sense advertising what we are running
ServerSignature Off

# Spambots nach User_agent aussperren
RewriteCond %{HTTP_USER_AGENT} ^.*Whacker.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailCollector [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*FileHound.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*TurnitinBot.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*JoBo.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*adressendeutschland.*$
RewriteRule ^.* - [F]

# 1. unterbindet, das fremde Seiten geladen werden
RewriteCond %{QUERY_STRING} ^(.*)=http://(.*) [OR]

# 2. blockiert libwww (Ausgangspunkt für diverse Hackversuche)
RewriteCond %{HTTP_USER_AGENT} ^libwww [OR]

# Blockiert Skripte, die versuchen, base64 encodierten Unsinn via URL zu versenden
RewriteCond %{QUERY_STRING} base64_encode.*\(.*\) [OR]

# Blockiert Skripte, die einen a ********** Tag in der URL enthalten
RewriteCond %{QUERY_STRING} (\<|%3C).*script.*(\>|%3E) [NC,OR]

# Blockiert Skripte, die versuchen, PHP GLOBALS Variablen via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR]

# Blockiert Skripte, die versuchen, eine _REQUEST Variable via URL zu ver‰ndern
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) [OR]

# END Optional Settings

Popularity: 5% [?]

Twitter It!