Tag: CSS

HTML: how to vertically center an object with CSS?

xml tag

There are several ways to vertically center an object with CSS:

Flexbox

<div class="container">
  <div class="center-item">
    <!-- content goes here -->
  </div>
</div>
.container {
  display: flex;
  align-items: center;
  height: 100%;
}

This method uses the CSS flexbox layout to center the child element vertically within the parent container. The align-items property set to center aligns the child element along the cross axis.

Grid Layout

<div class="container">
  <div class="center-item">
    <!-- content goes here -->
  </div>
</div>
.container {
  display: grid;
  place-items: center;
  height: 100%;
}

This method uses the CSS grid layout to center the child element vertically and horizontally within the parent container. The place-items property set to center aligns the child element both vertically and horizontally.

Table Cell

<div class="container">
  <div class="center-item">
    <!-- content goes here -->
  </div>
</div>
.container {
  display: table-cell;
  vertical-align: middle;
  height: 100%;
}

This method uses the CSS table layout to center the child element vertically within the parent container. The display: table-cell and vertical-align: middle properties treat the parent container as a table cell and vertically center the child element within it.

Transforms

<div class="container">
  <div class="center-item">
    <!-- content goes here -->
  </div>
</div>
.container {
  position: relative;
  height: 100%;
}
.center-item {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

This method uses CSS transforms to center the child element vertically within the parent container. The top: 50% property positions the child element vertically halfway down the parent container, and the transform: translateY(-50%) property moves the child element upwards by half its own height, effectively centering it vertically within the parent container.

Foto von Jackson Sophat auf Unsplash.

 

Less (CSS) unter macOS installieren

Der einfachste Weg Less auf einem Server zu installieren ist über npm (dem node.js Paketmanager) mit:

$ npm install -g less

Wenn nicht vorhanden: Command Line Tools für Xcode installieren

xcode-select --install

Wenn nicht vorhanden: HomeBrew installieren

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

Wenn nicht vorhanden: Node.js installieren

brew install node

LessCSS installieren

sudo npm install -g less

Nun lassen sich die lessc Befehle ausführen.

 

CSS: inline-block und der Internet Explorer

Auch im Jahre 2012 ärgert man sich noch mit so mancher Eigenart des Internet Explorers herum. Was andere Browser (Chrome, Safari, Firefox) schon lange können, muss man dem Internet Explorer wieder gesondert beibringen. Die Rede ist diesmal von der CSS-Eigenschaft display:inline-block. Eigentlich eine schöne Sache, um bspw. einem Inline-Container feste Abmessungen (Breite, Höhe) zuzuordnen. Doch der IE scheint diese Eigenschaft nicht zu unterstützen. Für ihn gibt es NUR display:inline oder NUR display:block, aber nicht beides “zusammen”. Bevor ich aber nun weiter über den IE herziehe, hier eine mögliche Lösung:

HTML5 Boilerplate – das Grundgerüst für HTML5

HTML5 Boilerplate bietet ein kompaktes Grundgerüst zum Gestalten von Webseiten oder wie auch ich es nicht besser ausdrücken kann:

HTML5 Boilerplate ist ein professionelles HTML/CSS/JS-Template als Basis für eine schnelle, robuste und zukunftssichere Website.
Nach mehr als zwei Jahren Entwicklung, bekommt ihr das beste der besten Techniken zusammengefasst: Cross-Browser-Normalisierung, Performance-Optimierungen und sogar optionale Features wie Cross-Domain AJAX und Flash. Eine starter .htaccess-Konfigurationsdatei kommt mit praktischen Caching-Regeln, bereitet deine Seite für HTML5-Video vor und erlaubt dir einfache @font-face-Nutzung und gzip-Auslieferung deiner Ressourcen.
Boilerplate ist weder ein Framework, noch schreibt es dir eine Entwicklungsphilosophie vor. Es ist eine Sammlung von Tipps und Tricks, die dir helfen sollen, dein Projekt schnellstmöglich und flexibel auf die Beine zu stellen.

… ohne dabei eine Menge Zeit in die Anpassung einer Webseite an die verschiedensten Browser zu vergeuten. Weitere Informationen gibt es auf http://html5boilerplate.com/.

HTML-Sonderzeichen in CSS content

CSS 'content' akzeptiert keine benannten oder numerischen HTML Sonderzeichen wie &copy; oder &#169;, diese können wirklich nur in HTML-Quelltext verwendet werden. Um Sonderzeichen in CSS verwenden zu können, muss man auf die Text-Darstellung in ASCII oder Unicode zurückgreifen. In CSS sieht das Ganze dann wie folgt aus:

.text:before { content:"\00a9"; }

Eine Tabelle mit allen möglichen Unicode-Zeichen (sortiert nach Blöcken) findet sich unter: http://www.fileformat.info/info/unicode/block/index.htm

CSS: Blockelement in HTML5 zentrieren

Zum Zentrieren eines Blockelementes (<div>) konnte man in HTML4 noch das Attribut align verwenden:

<div align="center">
  <div>
    ...

Damit wird der zweite div-Block bei Angabe einer festen Breite innerhalb des ersten Blocks zentriert.

Mit HTML5 ist allerdings das align-Attribut für div-Elemente nicht mehr zulässig, d.h. das Zentrieren muss in HTML5 über CSS realisiert werden.

CSS: Problem beim Rendern von Schriftgrößen in Safari (iPhone)

Die Safari-Version, welche im iOS (iPhone/iPodTouch/iPad) verwendet wird “ignoriert” teilweise beim Render von Webseiten die mit font-size definierten Schriftgrößen bzw. passt diese automatisch an, um die Lesbarkeit zu verbessern. An bestimmten Stellen ist dies nicht schlecht, allerdings kann das auch zu unschönen Veränderungen am Design führen. Diese automatische Anpassung kann jedoch durch folgende CSS-Zeilen verhindert werden: