- new initial commit
157
source/albert/404.html
Executable file
@ -0,0 +1,157 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<title>Page Not Found :(</title>
|
||||||
|
<style>
|
||||||
|
::-moz-selection {
|
||||||
|
background: #b3d4fc;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::selection {
|
||||||
|
background: #b3d4fc;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
html {
|
||||||
|
padding: 30px 10px;
|
||||||
|
font-size: 20px;
|
||||||
|
line-height: 1.4;
|
||||||
|
color: #737373;
|
||||||
|
background: #f0f0f0;
|
||||||
|
-webkit-text-size-adjust: 100%;
|
||||||
|
-ms-text-size-adjust: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
html,
|
||||||
|
input {
|
||||||
|
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
max-width: 500px;
|
||||||
|
_width: 500px;
|
||||||
|
padding: 30px 20px 50px;
|
||||||
|
border: 1px solid #b3b3b3;
|
||||||
|
border-radius: 4px;
|
||||||
|
margin: 0 auto;
|
||||||
|
box-shadow: 0 1px 10px #a7a7a7, inset 0 1px 0 #fff;
|
||||||
|
background: #fcfcfc;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
margin: 0 10px;
|
||||||
|
font-size: 50px;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 span {
|
||||||
|
color: #bbb;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
margin: 1.5em 0 0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
p {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul {
|
||||||
|
padding: 0 0 0 40px;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.container {
|
||||||
|
max-width: 380px;
|
||||||
|
_width: 380px;
|
||||||
|
margin: 0 auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* google search */
|
||||||
|
|
||||||
|
#goog-fixurl ul {
|
||||||
|
list-style: none;
|
||||||
|
padding: 0;
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-fixurl form {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-wm-qt,
|
||||||
|
#goog-wm-sb {
|
||||||
|
border: 1px solid #bbb;
|
||||||
|
font-size: 16px;
|
||||||
|
line-height: normal;
|
||||||
|
vertical-align: top;
|
||||||
|
color: #444;
|
||||||
|
border-radius: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-wm-qt {
|
||||||
|
width: 220px;
|
||||||
|
height: 20px;
|
||||||
|
padding: 5px;
|
||||||
|
margin: 5px 10px 0 0;
|
||||||
|
box-shadow: inset 0 1px 1px #ccc;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-wm-sb {
|
||||||
|
display: inline-block;
|
||||||
|
height: 32px;
|
||||||
|
padding: 0 10px;
|
||||||
|
margin: 5px 0 0;
|
||||||
|
white-space: nowrap;
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f5f5f5;
|
||||||
|
background-image: -webkit-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
||||||
|
background-image: -moz-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
||||||
|
background-image: -ms-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
||||||
|
background-image: -o-linear-gradient(rgba(255,255,255,0), #f1f1f1);
|
||||||
|
-webkit-appearance: none;
|
||||||
|
-moz-appearance: none;
|
||||||
|
appearance: none;
|
||||||
|
*overflow: visible;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-wm-sb:hover,
|
||||||
|
#goog-wm-sb:focus {
|
||||||
|
border-color: #aaa;
|
||||||
|
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1);
|
||||||
|
background-color: #f8f8f8;
|
||||||
|
}
|
||||||
|
|
||||||
|
#goog-wm-qt:hover,
|
||||||
|
#goog-wm-qt:focus {
|
||||||
|
border-color: #105cb6;
|
||||||
|
outline: 0;
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
padding: 0;
|
||||||
|
border: 0;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<div class="container">
|
||||||
|
<h1>Not found <span>:(</span></h1>
|
||||||
|
<p>Sorry, but the page you were trying to view does not exist.</p>
|
||||||
|
<p>It looks like this was the result of either:</p>
|
||||||
|
<ul>
|
||||||
|
<li>a mistyped address</li>
|
||||||
|
<li>an out-of-date link</li>
|
||||||
|
</ul>
|
||||||
|
<script>
|
||||||
|
var GOOG_FIXURL_LANG = (navigator.language || '').slice(0,2),GOOG_FIXURL_SITE = location.host;
|
||||||
|
</script>
|
||||||
|
<script src="http://linkhelp.clients.google.com/tbproxy/lh/wm/fixurl.js"></script>
|
||||||
|
</div>
|
||||||
|
</body>
|
||||||
|
</html>
|
112
source/albert/CHANGELOG.md
Executable file
@ -0,0 +1,112 @@
|
|||||||
|
### HEAD
|
||||||
|
|
||||||
|
### 4.1.0 (January 21, 2013)
|
||||||
|
|
||||||
|
* Update to Normalize.css 1.1.0.
|
||||||
|
* Update to jQuery 1.9.0.
|
||||||
|
|
||||||
|
### 4.0.3 (January 12, 2013)
|
||||||
|
|
||||||
|
* Use 32x32 favicon.ico ([#1286](https://github.com/h5bp/html5-boilerplate/pull/1286)).
|
||||||
|
* Remove named function expression in plugins.js ([#1280](https://github.com/h5bp/html5-boilerplate/pull/1280)).
|
||||||
|
* Adjust CSS image-replacement code ([#1239](https://github.com/h5bp/html5-boilerplate/issues/1239)).
|
||||||
|
* Update HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)).
|
||||||
|
|
||||||
|
### 4.0.2 (December 9, 2012)
|
||||||
|
|
||||||
|
* Update placeholder icons.
|
||||||
|
* Update to Normalize.css 1.0.2.
|
||||||
|
* Update to jQuery 1.8.3.
|
||||||
|
|
||||||
|
### 4.0.1 (October 20, 2012)
|
||||||
|
|
||||||
|
* Further improvements to `console` method stubbing ([#1206](https://github.com/h5bp/html5-boilerplate/issues/1206), [#1229](https://github.com/h5bp/html5-boilerplate/pull/1229)).
|
||||||
|
* Update to jQuery 1.8.2.
|
||||||
|
* Update to Modernizr 2.6.2.
|
||||||
|
* Minor additions to the documentation.
|
||||||
|
|
||||||
|
### 4.0.0 (August 28, 2012)
|
||||||
|
|
||||||
|
* Improve the Apache compression configuration ([#1012](https://github.com/h5bp/html5-boilerplate/issues/1012), [#1173](https://github.com/h5bp/html5-boilerplate/issues/1173)).
|
||||||
|
* Add a HiDPI example media query ([#1127](https://github.com/h5bp/html5-boilerplate/issues/1127)).
|
||||||
|
* Add bundled docs ([#1154](https://github.com/h5bp/html5-boilerplate/issues/1154)).
|
||||||
|
* Add MIT license ([#1139](https://github.com/h5bp/html5-boilerplate/issues/1139)).
|
||||||
|
* Update to Normalize.css 1.0.1.
|
||||||
|
* Separate Normalize.css from the rest of the CSS ([#1160](https://github.com/h5bp/html5-boilerplate/issues/1160)).
|
||||||
|
* Improve `console.log` protection ([#1107](https://github.com/h5bp/html5-boilerplate/issues/1107)).
|
||||||
|
* Replace hot pink text selection color with a neutral color.
|
||||||
|
* Change image replacement technique ([#1149](https://github.com/h5bp/html5-boilerplate/issues/1149)).
|
||||||
|
* Code format and consistency changes ([#1112](https://github.com/h5bp/html5-boilerplate/issues/1112)).
|
||||||
|
* Rename CSS file and rename JS files and subdirectories.
|
||||||
|
* Update to jQuery 1.8 ([#1161](https://github.com/h5bp/html5-boilerplate/issues/1161)).
|
||||||
|
* Update to Modernizr 2.6.1 ([#1086](https://github.com/h5bp/html5-boilerplate/issues/1086)).
|
||||||
|
* Remove uncompressed jQuery ([#1153](https://github.com/h5bp/html5-boilerplate/issues/1153)).
|
||||||
|
* Remove superfluous inline comments ([#1150](https://github.com/h5bp/html5-boilerplate/issues/1150)).
|
||||||
|
|
||||||
|
### 3.0.2 (February 19, 2012)
|
||||||
|
|
||||||
|
* Update to Modernizr 2.5.3.
|
||||||
|
|
||||||
|
### 3.0.1 (February 08, 2012).
|
||||||
|
|
||||||
|
* Update to Modernizr 2.5.2 (includes html5shiv 3.3).
|
||||||
|
|
||||||
|
### 3.0.0 (February 06, 2012)
|
||||||
|
|
||||||
|
* Improvements to `.htaccess`.
|
||||||
|
* Improve 404 design.
|
||||||
|
* Simplify JS folder structure.
|
||||||
|
* Change `html` IE class names changed to target ranges rather than specific versions of IE.
|
||||||
|
* Update CSS to include latest normalize.css changes and better typographic defaults ([#825](https://github.com/h5bp/html5-boilerplate/issues/825)).
|
||||||
|
* Update to Modernizr 2.5 (includes yepnope 1.5 and html5shiv 3.2).
|
||||||
|
* Update to jQuery 1.7.1.
|
||||||
|
* Revert to async snippet for the Google Analytics script.
|
||||||
|
* Remove the ant build script ([#826](https://github.com/h5bp/html5-boilerplate/issues/826)).
|
||||||
|
* Remove Respond.js ([#816](https://github.com/h5bp/html5-boilerplate/issues/816)).
|
||||||
|
* Remove the `demo/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
|
||||||
|
* Remove the `test/` directory ([#808](https://github.com/h5bp/html5-boilerplate/issues/808)).
|
||||||
|
* Remove Google Chrome Frame script for IE6 users; replace with links to Chrome Frame and options for alternative browsers.
|
||||||
|
* Remove `initial-scale=1` from the viewport `meta` ([#824](https://github.com/h5bp/html5-boilerplate/issues/824)).
|
||||||
|
* Remove `defer` from all scripts to avoid legacy IE bugs.
|
||||||
|
* Remove explicit Site Speed tracking for Google Analytics. It's now enabled by default.
|
||||||
|
|
||||||
|
### 2.0.0 (August 10, 2011)
|
||||||
|
|
||||||
|
* Change starting CSS to be based on normalize.css instead of reset.css ([#500](https://github.com/h5bp/html5-boilerplate/issues/500)).
|
||||||
|
* Add Respond.js media query polyfill.
|
||||||
|
* Add Google Chrome Frame script prompt for IE6 users.
|
||||||
|
* Simplify the `html` conditional comments for modern browsers and add an `oldie` class.
|
||||||
|
* Update clearfix to use "micro clearfix".
|
||||||
|
* Add placeholder CSS MQs for mobile-first approach.
|
||||||
|
* Add `textarea { resize: vertical; }` to only allow vertical resizing.
|
||||||
|
* Add `img { max-width: 100%; }` to the print styles; prevents images being truncated.
|
||||||
|
* Add Site Speed tracking for Google Analytics.
|
||||||
|
* Update to jQuery 1.6.2 (and use minified by default).
|
||||||
|
* Update to Modernizr 2.0 Complete, Production minified (includes yepnope, html5shiv, and Respond.js).
|
||||||
|
* Use `Modernizr.load()` to load the Google Analytics script.
|
||||||
|
* Much faster build process.
|
||||||
|
* Add build script options for CSSLint, JSLint, JSHint tools.
|
||||||
|
* Build script now compresses all images in subfolders.
|
||||||
|
* Build script now versions files by SHA hash.
|
||||||
|
* Many `.htaccess` improvements including: disable directory browsing, improved support for all versions of Apache, more robust and extensive HTTP compression rules.
|
||||||
|
* Remove `handheld.css` as it has very poor device support.
|
||||||
|
* Remove touch-icon `link` elements from the HTML and include improved touch-icon support.
|
||||||
|
* Remove the cache-busting query paramaters from files references in the HTML.
|
||||||
|
* Remove IE6 PNGFix.
|
||||||
|
|
||||||
|
### 1.0.0 (March 21, 2011)
|
||||||
|
|
||||||
|
* Rewrite build script to make it more customizable and flexible.
|
||||||
|
* Add a humans.txt.
|
||||||
|
* Numerous `.htaccess` improvements (including inline documentation).
|
||||||
|
* Move the alternative server configurations to the H5BP server configs repo.
|
||||||
|
* Use a protocol-relative url to reference jQuery and prevent mixed content warnings.
|
||||||
|
* Optimize the Google Analytics snippet.
|
||||||
|
* Use Eric Meyer's recent CSS reset update and the HTML5 Doctor reset.
|
||||||
|
* More robust `sub`/`sup` CSS styles.
|
||||||
|
* Add keyboard `.focusable` helper class that extends `.visuallyhidden`.
|
||||||
|
* Print styles no longer print hash or JavaScript links.
|
||||||
|
* Add a print reset for IE's proprietary filters.
|
||||||
|
* Remove IE9-specific conditional class on the `html` element.
|
||||||
|
* Remove margins from lists within `nav` elements.
|
||||||
|
* Remove YUI profiling.
|
118
source/albert/CONTRIBUTING.md
Executable file
@ -0,0 +1,118 @@
|
|||||||
|
# Contributing to HTML5 Boilerplate
|
||||||
|
|
||||||
|
♥ [HTML5 Boilerplate](http://html5boilerplate.com) and want to get involved?
|
||||||
|
Thanks! There are plenty of ways you can help!
|
||||||
|
|
||||||
|
|
||||||
|
## Bugs
|
||||||
|
|
||||||
|
A bug is a _demonstrable problem_ that is caused by the code in the
|
||||||
|
repository. Good bug reports are extremely helpful - thank you!
|
||||||
|
|
||||||
|
Guidelines for bug reports:
|
||||||
|
|
||||||
|
1. **Use the GitHub issue search** — check if the issue has already been
|
||||||
|
reported.
|
||||||
|
|
||||||
|
2. **Check if the issue has been fixed** — try to reproduce it using the
|
||||||
|
latest `master` branch in the repository.
|
||||||
|
|
||||||
|
3. **Isolate the problem** — ideally create a [reduced test
|
||||||
|
case](http://css-tricks.com/6263-reduced-test-cases/) and a live example.
|
||||||
|
|
||||||
|
A good bug report shouldn't leave others needing to chase you up for more
|
||||||
|
information. Please try to be as detailed as possible in your report. What is
|
||||||
|
your environment? What steps will reproduce the issue? What browser(s) and OS
|
||||||
|
experience the problem? What would you expect to be the outcome? All these
|
||||||
|
details will help people to fix any potential bugs.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
> Short and descriptive example bug report title
|
||||||
|
>
|
||||||
|
> A summary of the issue and the browser/OS environment in which it occurs. If
|
||||||
|
> suitable, include the steps required to reproduce the bug.
|
||||||
|
>
|
||||||
|
> 1. This is the first step
|
||||||
|
> 2. This is the second step
|
||||||
|
> 3. Further steps, etc.
|
||||||
|
>
|
||||||
|
> `<url>` (a link to the reduced test case)
|
||||||
|
>
|
||||||
|
> Any other information you want to share that is relevant to the issue being
|
||||||
|
> reported. This might include the lines of code that you have identified as
|
||||||
|
> causing the bug, and potential solutions (and your opinions on their
|
||||||
|
> merits).
|
||||||
|
|
||||||
|
**[File a bug report](https://github.com/h5bp/html5-boilerplate/issues/)**
|
||||||
|
|
||||||
|
|
||||||
|
## Pull requests
|
||||||
|
|
||||||
|
Good pull requests - patches, improvements, new features - are a fantastic
|
||||||
|
help. They should remain focused in scope and avoid containing unrelated
|
||||||
|
commits. If your contribution involves a significant amount of work or substantial
|
||||||
|
changes to any part of the project, please open an issue to discuss it first.
|
||||||
|
|
||||||
|
Make sure to adhere to the coding conventions used throughout a project
|
||||||
|
(indentation, accurate comments, etc.). Please update any documentation that is
|
||||||
|
relevant to the change you're making.
|
||||||
|
|
||||||
|
Please follow this process; it's the best way to get your work included in the
|
||||||
|
project:
|
||||||
|
|
||||||
|
1. [Fork](http://help.github.com/fork-a-repo/) the project, clone your fork,
|
||||||
|
and configure the remotes:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Clones your fork of the repo into the current directory in terminal
|
||||||
|
git clone https://github.com/<your-username>/html5-boilerplate.git
|
||||||
|
# Navigate to the newly cloned directory
|
||||||
|
cd html5-boilerplate
|
||||||
|
# Assigns the original repo to a remote called "upstream"
|
||||||
|
git remote add upstream https://github.com/h5bp/html5-boilerplate.git
|
||||||
|
```
|
||||||
|
|
||||||
|
2. If you cloned a while ago, get the latest changes from upstream:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout master
|
||||||
|
git pull upstream master
|
||||||
|
```
|
||||||
|
|
||||||
|
3. Create a new topic branch to contain your feature, change, or fix:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git checkout -b <topic-branch-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
4. Commit your changes in logical chunks. Please adhere to these [git commit
|
||||||
|
message
|
||||||
|
guidelines](http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html)
|
||||||
|
or your pull request is unlikely be merged into the main project. Use git's
|
||||||
|
[interactive rebase](https://help.github.com/articles/interactive-rebase)
|
||||||
|
feature to tidy up your commits before making them public.
|
||||||
|
|
||||||
|
5. Locally merge (or rebase) the upstream development branch into your topic branch:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git pull [--rebase] upstream master
|
||||||
|
```
|
||||||
|
|
||||||
|
6. Push your topic branch up to your fork:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
git push origin <topic-branch-name>
|
||||||
|
```
|
||||||
|
|
||||||
|
10. [Open a Pull Request](http://help.github.com/send-pull-requests/) with a
|
||||||
|
clear title and description.
|
||||||
|
|
||||||
|
|
||||||
|
## Do not…
|
||||||
|
|
||||||
|
Please **do not** use the issue tracker for personal support requests (use
|
||||||
|
[StackOverflow](http://stackoverflow.com/questions/tagged/html5boilerplate) or IRC).
|
||||||
|
|
||||||
|
Please **do not** derail or troll issues. Keep the
|
||||||
|
discussion on topic and respect the opinions of others.
|
19
source/albert/LICENSE.md
Executable file
@ -0,0 +1,19 @@
|
|||||||
|
Copyright (c) HTML5 Boilerplate
|
||||||
|
|
||||||
|
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||||
|
this software and associated documentation files (the "Software"), to deal in
|
||||||
|
the Software without restriction, including without limitation the rights to
|
||||||
|
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||||
|
of the Software, and to permit persons to whom the Software is furnished to do
|
||||||
|
so, subject to the following conditions:
|
||||||
|
|
||||||
|
The above copyright notice and this permission notice shall be included in all
|
||||||
|
copies or substantial portions of the Software.
|
||||||
|
|
||||||
|
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||||
|
SOFTWARE.
|
63
source/albert/README.md
Executable file
@ -0,0 +1,63 @@
|
|||||||
|
# [HTML5 Boilerplate](http://html5boilerplate.com)
|
||||||
|
|
||||||
|
HTML5 Boilerplate is a professional front-end template for building fast,
|
||||||
|
robust, and adaptable web apps or sites.
|
||||||
|
|
||||||
|
This project is the product of many years of iterative development and combined
|
||||||
|
community knowledge. It does not impose a specific development philosophy or
|
||||||
|
framework, so you're free to architect your code in the way that you want.
|
||||||
|
|
||||||
|
* Source: [https://github.com/h5bp/html5-boilerplate](https://github.com/h5bp/html5-boilerplate)
|
||||||
|
* Homepage: [http://html5boilerplate.com](http://html5boilerplate.com)
|
||||||
|
* Twitter: [@h5bp](http://twitter.com/h5bp)
|
||||||
|
|
||||||
|
|
||||||
|
## Quick start
|
||||||
|
|
||||||
|
Choose one of the following options:
|
||||||
|
|
||||||
|
1. Download the latest stable release from
|
||||||
|
[html5boilerplate.com](http://html5boilerplate.com/) or a custom build from
|
||||||
|
[Initializr](http://www.initializr.com).
|
||||||
|
2. Clone the git repo — `git clone
|
||||||
|
https://github.com/h5bp/html5-boilerplate.git` - and checkout the tagged
|
||||||
|
release you'd like to use.
|
||||||
|
|
||||||
|
|
||||||
|
## Features
|
||||||
|
|
||||||
|
* HTML5 ready. Use the new elements with confidence.
|
||||||
|
* Cross-browser compatible (Chrome, Opera, Safari, Firefox 3.6+, IE6+).
|
||||||
|
* Designed with progressive enhancement in mind.
|
||||||
|
* Includes [Normalize.css](http://necolas.github.com/normalize.css/) for CSS
|
||||||
|
normalizations and common bug fixes.
|
||||||
|
* The latest [jQuery](http://jquery.com/) via CDN, with a local fallback.
|
||||||
|
* The latest [Modernizr](http://modernizr.com/) build for feature detection.
|
||||||
|
* IE-specific classes for easier cross-browser control.
|
||||||
|
* Placeholder CSS Media Queries.
|
||||||
|
* Useful CSS helpers.
|
||||||
|
* Default print CSS, performance optimized.
|
||||||
|
* Protection against any stray `console.log` causing JavaScript errors in
|
||||||
|
IE6/7.
|
||||||
|
* An optimized Google Analytics snippet.
|
||||||
|
* Apache server caching, compression, and other configuration defaults for
|
||||||
|
Grade-A performance.
|
||||||
|
* Cross-domain Ajax and Flash.
|
||||||
|
* "Delete-key friendly." Easy to strip out parts you don't need.
|
||||||
|
* Extensive inline and accompanying documentation.
|
||||||
|
|
||||||
|
|
||||||
|
## Documentation
|
||||||
|
|
||||||
|
Take a look at the [documentation table of
|
||||||
|
contents](/h5bp/html5-boilerplate/blob/master/doc/TOC.md). This
|
||||||
|
documentation is bundled with the project, which makes it readily available for
|
||||||
|
offline reading and provides a useful starting point for any documentation
|
||||||
|
you want to write about your project.
|
||||||
|
|
||||||
|
|
||||||
|
## Contributing
|
||||||
|
|
||||||
|
Anyone and everyone is welcome to
|
||||||
|
[contribute](/h5bp/html5-boilerplate/blob/master/CONTRIBUTING.md). Hundreds
|
||||||
|
of developers have helped make the HTML5 Boilerplate what it is today.
|
BIN
source/albert/apple-touch-icon-114x114-precomposed.png
Executable file
After Width: | Height: | Size: 1.2 KiB |
BIN
source/albert/apple-touch-icon-144x144-precomposed.png
Executable file
After Width: | Height: | Size: 1.4 KiB |
BIN
source/albert/apple-touch-icon-57x57-precomposed.png
Executable file
After Width: | Height: | Size: 730 B |
BIN
source/albert/apple-touch-icon-72x72-precomposed.png
Executable file
After Width: | Height: | Size: 854 B |
BIN
source/albert/apple-touch-icon-precomposed.png
Executable file
After Width: | Height: | Size: 730 B |
BIN
source/albert/apple-touch-icon.png
Executable file
After Width: | Height: | Size: 730 B |
15
source/albert/crossdomain.xml
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
<?xml version="1.0"?>
|
||||||
|
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
|
||||||
|
<cross-domain-policy>
|
||||||
|
<!-- Read this: www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html -->
|
||||||
|
|
||||||
|
<!-- Most restrictive policy: -->
|
||||||
|
<site-control permitted-cross-domain-policies="none"/>
|
||||||
|
|
||||||
|
<!-- Least restrictive policy: -->
|
||||||
|
<!--
|
||||||
|
<site-control permitted-cross-domain-policies="all"/>
|
||||||
|
<allow-access-from domain="*" to-ports="*" secure="false"/>
|
||||||
|
<allow-http-request-headers-from domain="*" headers="*" secure="false"/>
|
||||||
|
-->
|
||||||
|
</cross-domain-policy>
|
325
source/albert/css/main.css
Executable file
@ -0,0 +1,325 @@
|
|||||||
|
@import url(http://fonts.googleapis.com/css?family=PT+Sans);
|
||||||
|
@import url(http://fonts.googleapis.com/css?family=Elsie+Swash+Caps);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* HTML5 Boilerplate
|
||||||
|
*
|
||||||
|
* What follows is the result of much research on cross-browser styling.
|
||||||
|
* Credit left inline and big thanks to Nicolas Gallagher, Jonathan Neal,
|
||||||
|
* Kroc Camen, and the H5BP dev community and team.
|
||||||
|
*/
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Base styles: opinionated defaults
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
html,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
body {
|
||||||
|
font-size: 1em;
|
||||||
|
line-height: 1.4;
|
||||||
|
/*background-color: #eeeeee;*/
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove text-shadow in selection highlight: h5bp.com/i
|
||||||
|
* These selection declarations have to be separate.
|
||||||
|
* Customize the background color to match your design.
|
||||||
|
*/
|
||||||
|
|
||||||
|
::-moz-selection {
|
||||||
|
background: #b3d4fc;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
::selection {
|
||||||
|
background: #b3d4fc;
|
||||||
|
text-shadow: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* A better looking default horizontal rule
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
display: block;
|
||||||
|
height: 1px;
|
||||||
|
border: 0;
|
||||||
|
border-top: 1px solid #ccc;
|
||||||
|
margin: 1em 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove the gap between images and the bottom of their containers: h5bp.com/i/440
|
||||||
|
*/
|
||||||
|
|
||||||
|
img {
|
||||||
|
vertical-align: middle;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Remove default fieldset styles.
|
||||||
|
*/
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 0;
|
||||||
|
margin: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Allow only vertical resizing of textareas.
|
||||||
|
*/
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
resize: vertical;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Chrome Frame prompt
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
.chromeframe {
|
||||||
|
margin: 0.2em 0;
|
||||||
|
background: #ccc;
|
||||||
|
color: #000;
|
||||||
|
padding: 0.2em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Author's custom styles
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
body {
|
||||||
|
width: 100%;
|
||||||
|
height: 100%;
|
||||||
|
background: url(../img/bg.png);
|
||||||
|
font-size: 100%;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
section#main {
|
||||||
|
background-color: transparent;
|
||||||
|
background-image: url(bg.png);
|
||||||
|
|
||||||
|
text-align: center;
|
||||||
|
|
||||||
|
width: 90%;
|
||||||
|
height: 100%;
|
||||||
|
|
||||||
|
margin: auto auto;
|
||||||
|
|
||||||
|
font-family: 'PT Sans', sans-serif;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 700%;
|
||||||
|
color: #222;
|
||||||
|
text-shadow: 0px 1px 3px #555;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
h1:hover {
|
||||||
|
color: #1a1a1a;
|
||||||
|
transform:translate(200px,100px);
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
background-color: #eee;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 600px;
|
||||||
|
margin: auto auto;
|
||||||
|
padding: 5px 30px;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
-moz-box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
-webkit-box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
|
||||||
|
padding-bottom: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container p {
|
||||||
|
font-size: 120%;
|
||||||
|
color: #002F3F;
|
||||||
|
text-align: left;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container img {
|
||||||
|
float:left;
|
||||||
|
margin-right: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer {
|
||||||
|
margin-top: 50px;
|
||||||
|
text-align: center;
|
||||||
|
color: #222;
|
||||||
|
text-shadow: 0px 1px 1px #555;
|
||||||
|
font-weight: 100;
|
||||||
|
margin-bottom: 50px;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:link, a:visited, a:active {
|
||||||
|
color: #222;
|
||||||
|
}
|
||||||
|
|
||||||
|
footer a:hover {
|
||||||
|
color: #111;
|
||||||
|
}
|
||||||
|
|
||||||
|
ul
|
||||||
|
{
|
||||||
|
list-style-type: none;
|
||||||
|
padding: 0px;
|
||||||
|
margin: 0px;
|
||||||
|
}
|
||||||
|
ul li
|
||||||
|
{
|
||||||
|
background-image: url(../img/bullet.png);
|
||||||
|
background-size: 15px;
|
||||||
|
background-repeat: no-repeat;
|
||||||
|
background-position: -4px -1px;
|
||||||
|
padding-left: 18px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Helper classes
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Image replacement
|
||||||
|
*/
|
||||||
|
|
||||||
|
.ir {
|
||||||
|
background-color: transparent;
|
||||||
|
border: 0;
|
||||||
|
overflow: hidden;
|
||||||
|
/* IE 6/7 fallback */
|
||||||
|
*text-indent: -9999px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.ir:before {
|
||||||
|
content: "";
|
||||||
|
display: block;
|
||||||
|
width: 0;
|
||||||
|
height: 150%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hide from both screenreaders and browsers: h5bp.com/u
|
||||||
|
*/
|
||||||
|
|
||||||
|
.hidden {
|
||||||
|
display: none !important;
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hide only visually, but have it available for screenreaders: h5bp.com/v
|
||||||
|
*/
|
||||||
|
|
||||||
|
.visuallyhidden {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0 0 0 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Extends the .visuallyhidden class to allow the element to be focusable
|
||||||
|
* when navigated to via the keyboard: h5bp.com/p
|
||||||
|
*/
|
||||||
|
|
||||||
|
.visuallyhidden.focusable:active,
|
||||||
|
.visuallyhidden.focusable:focus {
|
||||||
|
clip: auto;
|
||||||
|
height: auto;
|
||||||
|
margin: 0;
|
||||||
|
overflow: visible;
|
||||||
|
position: static;
|
||||||
|
width: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Hide visually and from screenreaders, but maintain layout
|
||||||
|
*/
|
||||||
|
|
||||||
|
.invisible {
|
||||||
|
visibility: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clearfix: contain floats
|
||||||
|
*
|
||||||
|
* For modern browsers
|
||||||
|
* 1. The space content is one way to avoid an Opera bug when the
|
||||||
|
* `contenteditable` attribute is included anywhere else in the document.
|
||||||
|
* Otherwise it causes space to appear at the top and bottom of elements
|
||||||
|
* that receive the `clearfix` class.
|
||||||
|
* 2. The use of `table` rather than `block` is only necessary if using
|
||||||
|
* `:before` to contain the top-margins of child elements.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.clearfix:before,
|
||||||
|
.clearfix:after {
|
||||||
|
content: " "; /* 1 */
|
||||||
|
display: table; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* For IE 6/7 only
|
||||||
|
* Include this rule to trigger hasLayout and contain floats.
|
||||||
|
*/
|
||||||
|
|
||||||
|
.clearfix {
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
EXAMPLE Media Queries for Responsive Design.
|
||||||
|
Theses examples override the primary ('mobile first') styles.
|
||||||
|
Modify as content requires.
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
@media only screen and (max-width: 320px) {
|
||||||
|
/* Style adjustments for viewports that meet the condition */
|
||||||
|
|
||||||
|
|
||||||
|
body {
|
||||||
|
width: 640px;
|
||||||
|
}
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 70px;
|
||||||
|
}
|
||||||
|
|
||||||
|
#container {
|
||||||
|
background-color: #eee;
|
||||||
|
border-radius: 10px;
|
||||||
|
width: 500px;
|
||||||
|
margin: auto auto;
|
||||||
|
padding: 5px 30px;
|
||||||
|
text-align: left;
|
||||||
|
|
||||||
|
-moz-box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
-webkit-box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
box-shadow: -1px 2px 2px 0px #aaa;
|
||||||
|
|
||||||
|
}
|
527
source/albert/css/normalize.css
vendored
Executable file
@ -0,0 +1,527 @@
|
|||||||
|
/*! normalize.css v1.1.0 | MIT License | git.io/normalize */
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
HTML5 display definitions
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct `block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||||
|
*/
|
||||||
|
|
||||||
|
article,
|
||||||
|
aside,
|
||||||
|
details,
|
||||||
|
figcaption,
|
||||||
|
figure,
|
||||||
|
footer,
|
||||||
|
header,
|
||||||
|
hgroup,
|
||||||
|
main,
|
||||||
|
nav,
|
||||||
|
section,
|
||||||
|
summary {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct `inline-block` display not defined in IE 6/7/8/9 and Firefox 3.
|
||||||
|
*/
|
||||||
|
|
||||||
|
audio,
|
||||||
|
canvas,
|
||||||
|
video {
|
||||||
|
display: inline-block;
|
||||||
|
*display: inline;
|
||||||
|
*zoom: 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prevent modern browsers from displaying `audio` without controls.
|
||||||
|
* Remove excess height in iOS 5 devices.
|
||||||
|
*/
|
||||||
|
|
||||||
|
audio:not([controls]) {
|
||||||
|
display: none;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in IE 7/8/9, Firefox 3, and Safari 4.
|
||||||
|
* Known issue: no IE 6 support.
|
||||||
|
*/
|
||||||
|
|
||||||
|
[hidden] {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Base
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct text resizing oddly in IE 6/7 when body `font-size` is set using
|
||||||
|
* `em` units.
|
||||||
|
* 2. Prevent iOS text size adjust after orientation change, without disabling
|
||||||
|
* user zoom.
|
||||||
|
*/
|
||||||
|
|
||||||
|
html {
|
||||||
|
font-size: 100%; /* 1 */
|
||||||
|
-webkit-text-size-adjust: 100%; /* 2 */
|
||||||
|
-ms-text-size-adjust: 100%; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address `font-family` inconsistency between `textarea` and other form
|
||||||
|
* elements.
|
||||||
|
*/
|
||||||
|
|
||||||
|
html,
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-family: sans-serif;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address margins handled incorrectly in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
body {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Links
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address `outline` inconsistency between Chrome and other browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a:focus {
|
||||||
|
outline: thin dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Improve readability when focused and also mouse hovered in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
a:active,
|
||||||
|
a:hover {
|
||||||
|
outline: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Typography
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address font sizes and margins set differently in IE 6/7.
|
||||||
|
* Address font sizes within `section` and `article` in Firefox 4+, Safari 5,
|
||||||
|
* and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
h1 {
|
||||||
|
font-size: 2em;
|
||||||
|
margin: 0.67em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2 {
|
||||||
|
font-size: 1.5em;
|
||||||
|
margin: 0.83em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h3 {
|
||||||
|
font-size: 1.17em;
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h4 {
|
||||||
|
font-size: 1em;
|
||||||
|
margin: 1.33em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h5 {
|
||||||
|
font-size: 0.83em;
|
||||||
|
margin: 1.67em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
font-size: 0.67em;
|
||||||
|
margin: 2.33em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in IE 7/8/9, Safari 5, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
abbr[title] {
|
||||||
|
border-bottom: 1px dotted;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address style set to `bolder` in Firefox 3+, Safari 4/5, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
b,
|
||||||
|
strong {
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
blockquote {
|
||||||
|
margin: 1em 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in Safari 5 and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dfn {
|
||||||
|
font-style: italic;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address differences between Firefox and other browsers.
|
||||||
|
* Known issue: no IE 6/7 normalization.
|
||||||
|
*/
|
||||||
|
|
||||||
|
hr {
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
box-sizing: content-box;
|
||||||
|
height: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address styling not present in IE 6/7/8/9.
|
||||||
|
*/
|
||||||
|
|
||||||
|
mark {
|
||||||
|
background: #ff0;
|
||||||
|
color: #000;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address margins set differently in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
p,
|
||||||
|
pre {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct font family set oddly in IE 6, Safari 4/5, and Chrome.
|
||||||
|
*/
|
||||||
|
|
||||||
|
code,
|
||||||
|
kbd,
|
||||||
|
pre,
|
||||||
|
samp {
|
||||||
|
font-family: monospace, serif;
|
||||||
|
_font-family: 'courier new', monospace;
|
||||||
|
font-size: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Improve readability of pre-formatted text in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
pre {
|
||||||
|
white-space: pre;
|
||||||
|
white-space: pre-wrap;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address CSS quotes not supported in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
q {
|
||||||
|
quotes: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address `quotes` property not supported in Safari 4.
|
||||||
|
*/
|
||||||
|
|
||||||
|
q:before,
|
||||||
|
q:after {
|
||||||
|
content: '';
|
||||||
|
content: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address inconsistent and variable font size in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
small {
|
||||||
|
font-size: 80%;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Prevent `sub` and `sup` affecting `line-height` in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
sub,
|
||||||
|
sup {
|
||||||
|
font-size: 75%;
|
||||||
|
line-height: 0;
|
||||||
|
position: relative;
|
||||||
|
vertical-align: baseline;
|
||||||
|
}
|
||||||
|
|
||||||
|
sup {
|
||||||
|
top: -0.5em;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub {
|
||||||
|
bottom: -0.25em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Lists
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address margins set differently in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
dl,
|
||||||
|
menu,
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
margin: 1em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
dd {
|
||||||
|
margin: 0 0 0 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address paddings set differently in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
menu,
|
||||||
|
ol,
|
||||||
|
ul {
|
||||||
|
padding: 0 0 0 40px;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct list images handled incorrectly in IE 7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
nav ul,
|
||||||
|
nav ol {
|
||||||
|
list-style: none;
|
||||||
|
list-style-image: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Embedded content
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Remove border when inside `a` element in IE 6/7/8/9 and Firefox 3.
|
||||||
|
* 2. Improve image quality when scaled in IE 7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
img {
|
||||||
|
border: 0; /* 1 */
|
||||||
|
-ms-interpolation-mode: bicubic; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct overflow displayed oddly in IE 9.
|
||||||
|
*/
|
||||||
|
|
||||||
|
svg:not(:root) {
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Figures
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address margin not present in IE 6/7/8/9, Safari 5, and Opera 11.
|
||||||
|
*/
|
||||||
|
|
||||||
|
figure {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Forms
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Correct margin displayed oddly in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
form {
|
||||||
|
margin: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Define consistent border, margin, and padding.
|
||||||
|
*/
|
||||||
|
|
||||||
|
fieldset {
|
||||||
|
border: 1px solid #c0c0c0;
|
||||||
|
margin: 0 2px;
|
||||||
|
padding: 0.35em 0.625em 0.75em;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct color not being inherited in IE 6/7/8/9.
|
||||||
|
* 2. Correct text not wrapping in Firefox 3.
|
||||||
|
* 3. Correct alignment displayed oddly in IE 6/7.
|
||||||
|
*/
|
||||||
|
|
||||||
|
legend {
|
||||||
|
border: 0; /* 1 */
|
||||||
|
padding: 0;
|
||||||
|
white-space: normal; /* 2 */
|
||||||
|
*margin-left: -7px; /* 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Correct font size not being inherited in all browsers.
|
||||||
|
* 2. Address margins set differently in IE 6/7, Firefox 3+, Safari 5,
|
||||||
|
* and Chrome.
|
||||||
|
* 3. Improve appearance and consistency in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
input,
|
||||||
|
select,
|
||||||
|
textarea {
|
||||||
|
font-size: 100%; /* 1 */
|
||||||
|
margin: 0; /* 2 */
|
||||||
|
vertical-align: baseline; /* 3 */
|
||||||
|
*vertical-align: middle; /* 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address Firefox 3+ setting `line-height` on `input` using `!important` in
|
||||||
|
* the UA stylesheet.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
input {
|
||||||
|
line-height: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Address inconsistent `text-transform` inheritance for `button` and `select`.
|
||||||
|
* All other form control elements do not inherit `text-transform` values.
|
||||||
|
* Correct `button` style inheritance in Chrome, Safari 5+, and IE 6+.
|
||||||
|
* Correct `select` style inheritance in Firefox 4+ and Opera.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
select {
|
||||||
|
text-transform: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
|
||||||
|
* and `video` controls.
|
||||||
|
* 2. Correct inability to style clickable `input` types in iOS.
|
||||||
|
* 3. Improve usability and consistency of cursor style between image-type
|
||||||
|
* `input` and others.
|
||||||
|
* 4. Remove inner spacing in IE 7 without affecting normal text inputs.
|
||||||
|
* Known issue: inner spacing remains in IE 6.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button,
|
||||||
|
html input[type="button"], /* 1 */
|
||||||
|
input[type="reset"],
|
||||||
|
input[type="submit"] {
|
||||||
|
-webkit-appearance: button; /* 2 */
|
||||||
|
cursor: pointer; /* 3 */
|
||||||
|
*overflow: visible; /* 4 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Re-set default cursor for disabled elements.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button[disabled],
|
||||||
|
html input[disabled] {
|
||||||
|
cursor: default;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Address box sizing set to content-box in IE 8/9.
|
||||||
|
* 2. Remove excess padding in IE 8/9.
|
||||||
|
* 3. Remove excess padding in IE 7.
|
||||||
|
* Known issue: excess padding remains in IE 6.
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="checkbox"],
|
||||||
|
input[type="radio"] {
|
||||||
|
box-sizing: border-box; /* 1 */
|
||||||
|
padding: 0; /* 2 */
|
||||||
|
*height: 13px; /* 3 */
|
||||||
|
*width: 13px; /* 3 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
|
||||||
|
* 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
|
||||||
|
* (include `-moz` to future-proof).
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="search"] {
|
||||||
|
-webkit-appearance: textfield; /* 1 */
|
||||||
|
-moz-box-sizing: content-box;
|
||||||
|
-webkit-box-sizing: content-box; /* 2 */
|
||||||
|
box-sizing: content-box;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove inner padding and search cancel button in Safari 5 and Chrome
|
||||||
|
* on OS X.
|
||||||
|
*/
|
||||||
|
|
||||||
|
input[type="search"]::-webkit-search-cancel-button,
|
||||||
|
input[type="search"]::-webkit-search-decoration {
|
||||||
|
-webkit-appearance: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove inner padding and border in Firefox 3+.
|
||||||
|
*/
|
||||||
|
|
||||||
|
button::-moz-focus-inner,
|
||||||
|
input::-moz-focus-inner {
|
||||||
|
border: 0;
|
||||||
|
padding: 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 1. Remove default vertical scrollbar in IE 6/7/8/9.
|
||||||
|
* 2. Improve readability and alignment in all browsers.
|
||||||
|
*/
|
||||||
|
|
||||||
|
textarea {
|
||||||
|
overflow: auto; /* 1 */
|
||||||
|
vertical-align: top; /* 2 */
|
||||||
|
}
|
||||||
|
|
||||||
|
/* ==========================================================================
|
||||||
|
Tables
|
||||||
|
========================================================================== */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove most spacing between table cells.
|
||||||
|
*/
|
||||||
|
|
||||||
|
table {
|
||||||
|
border-collapse: collapse;
|
||||||
|
border-spacing: 0;
|
||||||
|
}
|
36
source/albert/doc/TOC.md
Executable file
@ -0,0 +1,36 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com)
|
||||||
|
|
||||||
|
# HTML5 Boilerplate documentation:
|
||||||
|
|
||||||
|
## Getting started
|
||||||
|
|
||||||
|
* [Usage](usage.md) — Overview of the project contents.
|
||||||
|
* [FAQ](faq.md) — Frequently asked questions, along with their answers.
|
||||||
|
|
||||||
|
## The core of HTML5 Boilerplate
|
||||||
|
|
||||||
|
* [HTML](html.md) — A guide to the default HTML.
|
||||||
|
* [CSS](css.md) — A guide to the default CSS.
|
||||||
|
* [JavaScript](js.md) — A guide to the default JavaScript.
|
||||||
|
* [.htaccess](htaccess.md) — All about the Apache web server config (also see
|
||||||
|
our [alternative server configs](https://github.com/h5bp/server-configs)).
|
||||||
|
* [crossdomain.xml](crossdomain.md) — An introduction to making use of
|
||||||
|
crossdomain requests.
|
||||||
|
* [Everything else](misc.md).
|
||||||
|
|
||||||
|
## Development
|
||||||
|
|
||||||
|
* [Extending and customizing HTML5 Boilerplate](extend.md) — Going further with
|
||||||
|
the boilerplate.
|
||||||
|
|
||||||
|
## Related projects
|
||||||
|
|
||||||
|
HTML5 Boilerplate has several related projects to help improve the performance
|
||||||
|
of your site/app in various production environments.
|
||||||
|
|
||||||
|
* [Server configs](https://github.com/h5bp/server-configs) — Configs for
|
||||||
|
non-Apache servers.
|
||||||
|
* [Node build script](https://github.com/h5bp/node-build-script) — A
|
||||||
|
feature-rich [grunt](https://github.com/cowboy/grunt) plugin.
|
||||||
|
* [Ant build script](https://github.com/h5bp/ant-build-script) — The original
|
||||||
|
HTML5 Boilerplate build script.
|
17
source/albert/doc/crossdomain.md
Executable file
@ -0,0 +1,17 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# crossdomain.xml
|
||||||
|
|
||||||
|
A cross-domain policy file is an XML document that grants a web client—such as
|
||||||
|
Adobe Flash Player, Adobe Reader, etc., permission to handle data across
|
||||||
|
multiple domains. When a client hosts content from a particular source domain
|
||||||
|
and that content makes requests directed towards a domain other than its own,
|
||||||
|
the remote domain would need to host a cross-domain policy file that grants
|
||||||
|
access to the source domain, allowing the client to continue with the
|
||||||
|
transaction. Policy files grant read access to data, permit a client to include
|
||||||
|
custom headers in cross-domain requests, and are also used with sockets to
|
||||||
|
grant permissions for socket-based connections.
|
||||||
|
|
||||||
|
For full details, check out Adobe's article about the [cross-domain policy file
|
||||||
|
specification](http://www.adobe.com/devnet/articles/crossdomain_policy_file_spec.html).
|
135
source/albert/doc/css.md
Executable file
@ -0,0 +1,135 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# The CSS
|
||||||
|
|
||||||
|
The HTML5 Boilerplate starting CSS includes:
|
||||||
|
|
||||||
|
* [Normalize.css](https://github.com/necolas/normalize.css).
|
||||||
|
* Useful HTML5 Boilerplate defaults.
|
||||||
|
* Common helpers.
|
||||||
|
* Placeholder media queries.
|
||||||
|
* Print styles.
|
||||||
|
|
||||||
|
This starting CSS does not rely on the presence of conditional classnames,
|
||||||
|
conditional style sheets, or Modernizr. It is ready to use whatever your
|
||||||
|
development preferences happen to be.
|
||||||
|
|
||||||
|
|
||||||
|
## Normalize.css
|
||||||
|
|
||||||
|
Normalize.css is a modern, HTML5-ready alternative to CSS resets. It contains
|
||||||
|
extensive inline documentation. Please refer to the [Normalize.css
|
||||||
|
project](http://necolas.github.com/normalize.css/) for more information.
|
||||||
|
|
||||||
|
|
||||||
|
## HTML5 Boilerplate defaults
|
||||||
|
|
||||||
|
This project includes a handful of base styles that build upon Normalize.css.
|
||||||
|
These include:
|
||||||
|
|
||||||
|
* Basic typography settings to provide improved text readability by default.
|
||||||
|
* Protection against unwanted `text-shadow` during text highlighting.
|
||||||
|
* Tweaks to default image alignment, fieldsets, and textareas.
|
||||||
|
* A pretty Chrome Frame prompt.
|
||||||
|
|
||||||
|
You are free to modify or add to these base styles as your project requires.
|
||||||
|
|
||||||
|
|
||||||
|
## Common helpers
|
||||||
|
|
||||||
|
#### `.ir`
|
||||||
|
|
||||||
|
Add the `.ir` class to any element you are applying image-replacement to. When
|
||||||
|
replacing an element's content with an image, make sure to also set a specific
|
||||||
|
`background-image: url(pathtoimage.png);`, `width`, and `height` so that your
|
||||||
|
replacement image appears.
|
||||||
|
|
||||||
|
#### `.hidden`
|
||||||
|
|
||||||
|
Add the `.hidden` class to any elements that you want to hide from all
|
||||||
|
presentations, including screen readers. It could be an element that will be
|
||||||
|
populated later with JavaScript or an element you will hide with JavaScript. Do
|
||||||
|
not use this for SEO keyword stuffing. That is just not cool.
|
||||||
|
|
||||||
|
#### `.visuallyhidden`
|
||||||
|
|
||||||
|
Add the `.visuallyhidden` class to hide text from browsers but make it
|
||||||
|
available for screen readers. You can use this to hide text that is specific to
|
||||||
|
screen readers but that other users should not see. [About invisible
|
||||||
|
content](http://www.webaim.org/techniques/css/invisiblecontent/), [Hiding
|
||||||
|
content for
|
||||||
|
accessibility](http://snook.ca/archives/html_and_css/hiding-content-for-accessibility),
|
||||||
|
[HTML5 Boilerplate
|
||||||
|
issue/research](https://github.com/h5bp/html5-boilerplate/issues/194/).
|
||||||
|
|
||||||
|
#### `.invisible`
|
||||||
|
|
||||||
|
Add the `.invisible` class to any element you want to hide without affecting
|
||||||
|
layout. When you use `display: none` an element is effectively removed from the
|
||||||
|
layout. But in some cases you want the element to simply be invisible while
|
||||||
|
remaining in the flow and not affecting the positioning of surrounding
|
||||||
|
content.
|
||||||
|
|
||||||
|
#### `.clearfix`
|
||||||
|
|
||||||
|
Adding `.clearfix` to an element will ensure that it always fully contains its
|
||||||
|
floated children. There have been many variants of the clearfix hack over the
|
||||||
|
years, and there are other hacks that can also help you to contain floated
|
||||||
|
children, but the HTML5 Boilerplate currently uses the [micro
|
||||||
|
clearfix](http://nicolasgallagher.com/micro-clearfix-hack/).
|
||||||
|
|
||||||
|
|
||||||
|
## Media Queries
|
||||||
|
|
||||||
|
The boilerplate makes it easy to get started with a "Mobile First" and
|
||||||
|
[Responsive Web
|
||||||
|
Design](http://www.alistapart.com/articles/responsive-web-design/) approach to
|
||||||
|
development. But it's worth remembering that there are [no silver
|
||||||
|
bullets](http://www.cloudfour.com/css-media-query-for-mobile-is-fools-gold/).
|
||||||
|
|
||||||
|
We include a placeholder Media Queries to build up your mobile styles for wider
|
||||||
|
viewports and high-resolution displays. It's recommended that you adapt these
|
||||||
|
Media Queries based on the content of your site rather than mirroring the fixed
|
||||||
|
dimensions of specific devices.
|
||||||
|
|
||||||
|
If you do not want to take a "Mobile First" approach, you can simply edit or
|
||||||
|
remove these placeholder Media Queries. One possibility would be to work from
|
||||||
|
wide viewports down and use `max-width` MQs instead, e.g., `@media only screen
|
||||||
|
and (max-width: 480px)`.
|
||||||
|
|
||||||
|
Take a look into the [Mobile
|
||||||
|
Boilerplate](https://github.com/h5bp/mobile-boilerplate) for features that are
|
||||||
|
useful when developing mobile wep apps.
|
||||||
|
|
||||||
|
|
||||||
|
## Print styles
|
||||||
|
|
||||||
|
* Print styles are inlined to [reduce the number of page
|
||||||
|
requests](http://www.phpied.com/delay-loading-your-print-css/).
|
||||||
|
* We strip all background colors and change the font color to dark gray and
|
||||||
|
remove text-shadow. This is meant to help save printer ink.
|
||||||
|
* Anchors do not need colors to indicate they are linked. They are underlined
|
||||||
|
to indicate so.
|
||||||
|
* Anchors and Abbreviations are expanded to indicate where users reading the
|
||||||
|
printed page can refer to.
|
||||||
|
* But we do not want to show link text for image replaced elements (given that
|
||||||
|
they are primarily images).
|
||||||
|
|
||||||
|
### Paged media styles
|
||||||
|
|
||||||
|
* Paged media is supported only in a [few
|
||||||
|
browsers](http://en.wikipedia.org/wiki/Comparison_of_layout_engines_%28Cascading_Style_Sheets%29#Grammar_and_rules).
|
||||||
|
* Paged media support means browsers would know how to interpret instructions
|
||||||
|
on breaking content into pages and on orphans/widows.
|
||||||
|
* We use `page-break-inside: avoid;` to prevent an image and table row from
|
||||||
|
being split into two different pages, so use the same `page-break-inside:
|
||||||
|
avoid;` for that as well.
|
||||||
|
* Headings should always appear with the text they are titles for. So, we
|
||||||
|
ensure headings never appear in a different page than the text they describe
|
||||||
|
by using `page-break-after: avoid;`.
|
||||||
|
* We also apply a default margin for the page specified in `cm`.
|
||||||
|
* We do not want [orphans and
|
||||||
|
widows](http://en.wikipedia.org/wiki/Widows_and_orphans) to appear on pages
|
||||||
|
you print. So, by defining `orphans: 3` and `widows: 3` you define the minimal
|
||||||
|
number of words that every line should contain.
|
507
source/albert/doc/extend.md
Executable file
@ -0,0 +1,507 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# Extend and customise HTML5 Boilerplate
|
||||||
|
|
||||||
|
Here is some useful advice for how you can make your project with HTML5
|
||||||
|
Boilerplate even better. We don't want to include it all by default, as not
|
||||||
|
everything fits with everyone's needs.
|
||||||
|
|
||||||
|
|
||||||
|
## DNS prefetching
|
||||||
|
|
||||||
|
In short, DNS Prefetching is a method of informing the browser of domain names
|
||||||
|
referenced on a site so that the client can resolve the DNS for those hosts,
|
||||||
|
cache them, and when it comes time to use them, have a faster turn around on
|
||||||
|
the request.
|
||||||
|
|
||||||
|
### Implicit prefetches
|
||||||
|
|
||||||
|
There is a lot of prefetching done for you automatically by the browser. When
|
||||||
|
the browser encounters an anchor in your html that does not share the same
|
||||||
|
domain name as the current location the browser requests, from the client OS,
|
||||||
|
the IP address for this new domain. The client first checks its cache and
|
||||||
|
then, lacking a cached copy, makes a request from a DNS server. These requests
|
||||||
|
happen in the background and are not meant to block the rendering of the
|
||||||
|
page.
|
||||||
|
|
||||||
|
The goal of this is that when the foreign IP address is finally needed it will
|
||||||
|
already be in the client cache and will not block the loading of the foreign
|
||||||
|
content. Less requests result in faster page load times. The perception of this
|
||||||
|
is increased on a mobile platform where DNS latency can be greater.
|
||||||
|
|
||||||
|
#### Disable implicit prefetching
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta http-equiv="x-dns-prefetch-control" content="off">
|
||||||
|
```
|
||||||
|
|
||||||
|
Even with X-DNS-Prefetch-Control meta tag (or http header) browsers will still
|
||||||
|
prefetch any explicit dns-prefetch links.
|
||||||
|
|
||||||
|
**_WARNING:_** THIS MAY MAKE YOUR SITE SLOWER IF YOU RELY ON RESOURCES FROM
|
||||||
|
FOREIGN DOMAINS.
|
||||||
|
|
||||||
|
### Explicit prefetches
|
||||||
|
|
||||||
|
Typically the browser only scans the HTML for foreign domains. If you have
|
||||||
|
resources that are outside of your HTML (a javascript request to a remote
|
||||||
|
server or a CDN that hosts content that may not be present on every page of
|
||||||
|
your site, for example) then you can queue up a domain name to be prefetched.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="dns-prefetch" href="//example.com">
|
||||||
|
<link rel="dns-prefetch" href="//ajax.googleapis.com">
|
||||||
|
```
|
||||||
|
|
||||||
|
You can use as many of these as you need, but it's best if they are all
|
||||||
|
immediately after the [Meta
|
||||||
|
Charset](https://developer.mozilla.org/en/HTML/Element/meta#attr-charset)
|
||||||
|
element (which should go right at the top of the `head`), so the browser can
|
||||||
|
act on them ASAP.
|
||||||
|
|
||||||
|
#### Common Prefetch Links
|
||||||
|
|
||||||
|
Amazon S3:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="dns-prefetch" href="//s3.amazonaws.com">
|
||||||
|
```
|
||||||
|
|
||||||
|
Google APIs:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="dns-prefetch" href="//ajax.googleapis.com">
|
||||||
|
```
|
||||||
|
|
||||||
|
Microsoft Ajax Content Delivery Network:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="dns-prefetch" href="//ajax.microsoft.com">
|
||||||
|
<link rel="dns-prefetch" href="//ajax.aspnetcdn.com">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Browser support for DNS prefetching
|
||||||
|
|
||||||
|
Chrome, Firefox 3.5+, Safari 5+, Opera (Unknown), IE 9 (called "Pre-resolution"
|
||||||
|
on blogs.msdn.com)
|
||||||
|
|
||||||
|
### Further reading about DNS prefetching
|
||||||
|
|
||||||
|
* https://developer.mozilla.org/En/Controlling_DNS_prefetching
|
||||||
|
* http://dev.chromium.org/developers/design-documents/dns-prefetching
|
||||||
|
* http://www.apple.com/safari/whats-new.html
|
||||||
|
* http://blogs.msdn.com/b/ie/archive/2011/03/17/internet-explorer-9-network-performance-improvements.aspx
|
||||||
|
* http://dayofjs.com/videos/22158462/web-browsers_alex-russel
|
||||||
|
|
||||||
|
|
||||||
|
## Search
|
||||||
|
|
||||||
|
### Direct search spiders to your sitemap
|
||||||
|
|
||||||
|
[Learn how to make a sitemap](http://www.sitemaps.org/protocol.php)
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="sitemap" type="application/xml" title="Sitemap" href="/sitemap.xml">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Hide pages from search engines
|
||||||
|
|
||||||
|
According to Heather Champ, former community manager at Flickr, you should not
|
||||||
|
allow search engines to index your "Contact Us" or "Complaints" page if you
|
||||||
|
value your sanity. This is an HTML-centric way of achieving that.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="robots" content="noindex">
|
||||||
|
```
|
||||||
|
|
||||||
|
**_WARNING:_** DO NOT INCLUDE ON PAGES THAT SHOULD APPEAR IN SEARCH ENGINES.
|
||||||
|
|
||||||
|
### Firefox and IE Search Plugins
|
||||||
|
|
||||||
|
Sites with in-site search functionality should be strongly considered for a
|
||||||
|
browser search plugin. A "search plugin" is an XML file which defines how your
|
||||||
|
plugin behaves in the browser. [How to make a browser search
|
||||||
|
plugin](http://www.google.com/search?ie=UTF-8&q=how+to+make+browser+search+plugin).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="search" title="" type="application/opensearchdescription+xml" href="">
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Internet Explorer
|
||||||
|
|
||||||
|
### Prompt users to switch to "Desktop Mode" in IE10 Metro
|
||||||
|
|
||||||
|
IE10 does not support plugins, such as Flash, in Metro mode. If your site
|
||||||
|
requires plugins, you can let users know that via the X-UA-Compatible meta
|
||||||
|
element, which will prompt them to switch to Desktop Mode.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="requiresActiveX=true">
|
||||||
|
```
|
||||||
|
|
||||||
|
Here's what it looks like alongside H5BP's default X-UA-Compatible values:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1,requiresActiveX=true">
|
||||||
|
```
|
||||||
|
|
||||||
|
You can find more information in [Microsoft's IEBlog post about prompting for
|
||||||
|
plugin use in IE10 Metro
|
||||||
|
Mode](http://blogs.msdn.com/b/ie/archive/2012/01/31/web-sites-and-a-plug-in-free-web.aspx).
|
||||||
|
|
||||||
|
### IE Pinned Sites (IE9+)
|
||||||
|
|
||||||
|
Enabling your application for pinning will allow IE9 users to add it to their
|
||||||
|
Windows Taskbar and Start Menu. This comes with a range of new tools that you
|
||||||
|
can easily configure with the elements below. See more [documentation on IE9
|
||||||
|
Pinned Sites](http://msdn.microsoft.com/en-us/library/gg131029.aspx).
|
||||||
|
|
||||||
|
### Name the Pinned Site for Windows
|
||||||
|
|
||||||
|
Without this rule, Windows will use the page title as the name for your
|
||||||
|
application.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="application-name" content="Sample Title">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Give your Pinned Site a tooltip
|
||||||
|
|
||||||
|
You know — a tooltip. A little textbox that appears when the user holds their
|
||||||
|
mouse over your Pinned Site's icon.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-tooltip" content="A description of what this site does.">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Set a default page for your Pinned Site
|
||||||
|
|
||||||
|
If the site should go to a specific URL when it is pinned (such as the
|
||||||
|
homepage), enter it here. One idea is to send it to a special URL so you can
|
||||||
|
track the number of pinned users, like so:
|
||||||
|
`http://www.example.com/index.html?pinned=true`
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-starturl" content="http://www.example.com/index.html?pinned=true">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Recolor IE's controls manually for a Pinned Site
|
||||||
|
|
||||||
|
IE9+ will automatically use the overall color of your Pinned Site's favicon to
|
||||||
|
shade its browser buttons. UNLESS you give it another color here. Only use
|
||||||
|
named colors (`red`) or hex colors (`#ff0000`).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-navbutton-color" content="#ff0000">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Manually set the window size of a Pinned Site
|
||||||
|
|
||||||
|
If the site should open at a certain window size once pinned, you can specify
|
||||||
|
the dimensions here. It only supports static pixel dimensions. 800x600
|
||||||
|
minimum.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-window" content="width=800;height=600">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Jump List "Tasks" for Pinned Sites
|
||||||
|
|
||||||
|
Add Jump List Tasks that will appear when the Pinned Site's icon gets a
|
||||||
|
right-click. Each Task goes to the specified URL, and gets its own mini icon
|
||||||
|
(essentially a favicon, a 16x16 .ICO). You can add as many of these as you
|
||||||
|
need.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-task" content="name=Task 1;action-uri=http://host/Page1.html;icon-uri=http://host/icon1.ico">
|
||||||
|
<meta name="msapplication-task" content="name=Task 2;action-uri=http://microsoft.com/Page2.html;icon-uri=http://host/icon2.ico">
|
||||||
|
```
|
||||||
|
|
||||||
|
### (Windows 8) High quality visuals for Pinned Sites
|
||||||
|
|
||||||
|
Windows 8 adds the ability for you to provide a PNG tile image and specify the
|
||||||
|
tile's background color. [Full details on the IE
|
||||||
|
blog](http://blogs.msdn.com/b/ie/archive/2012/06/08/high-quality-visuals-for-pinned-sites-in-windows-8.aspx).
|
||||||
|
|
||||||
|
* Create a 144x144 image of your site icon, filling all of the canvas, and
|
||||||
|
using a transparent background.
|
||||||
|
* Save this image as a 32-bit PNG and optimize it without reducing
|
||||||
|
colour-depth. It can be named whatever you want (e.g. `metro-tile.png`).
|
||||||
|
* To reference the tile and its color, add the HTML `meta` elements described
|
||||||
|
in the IE Blog post.
|
||||||
|
|
||||||
|
### (Windows 8) Badges for Pinned Sites
|
||||||
|
|
||||||
|
IE10 will poll an XML document for badge information to display on your app's
|
||||||
|
tile in the Start screen. The user will be able to receive these badge updates
|
||||||
|
even when your app isn't actively running. The badge's value can be a number,
|
||||||
|
or one of a predefined list of glyphs.
|
||||||
|
|
||||||
|
* [Tutorial on IEBlog with link to badge XML schema](http://blogs.msdn.com/b/ie/archive/2012/04/03/pinned-sites-in-windows-8.aspx)
|
||||||
|
* [Available badge values](http://msdn.microsoft.com/en-us/library/ie/br212849.aspx)
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="msapplication-badge" value="frequency=NUMBER_IN_MINUTES;polling-uri=http://www.example.com/path/to/file.xml">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Suppress IE6 image toolbar
|
||||||
|
|
||||||
|
Kill IE6's pop-up-on-mouseover toolbar for images that can interfere with
|
||||||
|
certain designs and be pretty distracting in general.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta http-equiv="imagetoolbar" content="false">
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Social Networks
|
||||||
|
|
||||||
|
### Facebook Open Graph data
|
||||||
|
|
||||||
|
You can control the information that Facebook and others display when users
|
||||||
|
share your site. Below are just the most basic data points you might need. For
|
||||||
|
specific content types (including "website"), see [Facebook's built-in Open
|
||||||
|
Graph content
|
||||||
|
templates](https://developers.facebook.com/docs/opengraph/objects/builtin/).
|
||||||
|
Take full advantage of Facebook's support for complex data and activity by
|
||||||
|
following the [Open Graph
|
||||||
|
tutorial](https://developers.facebook.com/docs/opengraph/tutorial/).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta property="og:title" content="">
|
||||||
|
<meta property="og:description" content="">
|
||||||
|
<meta property="og:image" content="">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Twitter Cards
|
||||||
|
|
||||||
|
Twitter provides a snippet specification that serves a similar purpose to Open
|
||||||
|
Graph. In fact, Twitter will use Open Graph when Cards is not available. Note
|
||||||
|
that, as of this writing, Twitter requires that app developers activate Cards
|
||||||
|
on a per-domain basis. You can read more about the various snippet formats
|
||||||
|
and application process in the [official Twitter Cards
|
||||||
|
documentation](https://dev.twitter.com/docs/cards).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:site" content="@site_account">
|
||||||
|
<meta name="twitter:creator" content="@individual_account">
|
||||||
|
<meta name="twitter:url" content="http://www.example.com/path/to/page.html">
|
||||||
|
<meta name="twitter:title" content="">
|
||||||
|
<meta name="twitter:description" content="">
|
||||||
|
<meta name="twitter:image" content="http://www.example.com/path/to/image.jpg">
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## URLs
|
||||||
|
|
||||||
|
### Canonical URL
|
||||||
|
|
||||||
|
Signal to search engines and others "Use this URL for this page!" Useful when
|
||||||
|
parameters after a `#` or `?` is used to control the display state of a page.
|
||||||
|
`http://www.example.com/cart.html?shopping-cart-open=true` can be indexed as
|
||||||
|
the cleaner, more accurate `http://www.example.com/cart.html`.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="canonical" href="">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Official shortlink
|
||||||
|
|
||||||
|
Signal to the world "This is the shortened URL to use this page!" Poorly
|
||||||
|
supported at this time. Learn more by reading the [article about shortlinks on
|
||||||
|
the Microformats wiki](http://microformats.org/wiki/rel-shortlink).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="shortlink" href="h5bp.com">
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## News Feeds
|
||||||
|
|
||||||
|
### RSS
|
||||||
|
|
||||||
|
Have an RSS feed? Link to it here. Want to [learn how to write an RSS feed from
|
||||||
|
scratch](http://www.rssboard.org/rss-specification)?
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="alternate" type="application/rss+xml" title="RSS" href="/rss.xml">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Atom
|
||||||
|
|
||||||
|
Atom is similar to RSS, and you might prefer to use it instead of or in
|
||||||
|
addition to it. [See what Atom's all
|
||||||
|
about](http://www.atomenabled.org/developers/syndication/).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="alternate" type="application/atom+xml" title="Atom" href="/atom.xml">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Pingbacks
|
||||||
|
|
||||||
|
Your server may be notified when another site links to yours. The href
|
||||||
|
attribute should contain the location of your pingback service.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="pingback" href="">
|
||||||
|
```
|
||||||
|
|
||||||
|
* High-level explanation: http://codex.wordpress.org/Introduction_to_Blogging#Pingbacks
|
||||||
|
* Step-by-step example case: http://www.hixie.ch/specs/pingback/pingback-1.0#TOC5
|
||||||
|
* PHP pingback service: http://blog.perplexedlabs.com/2009/07/15/xmlrpc-pingbacks-using-php/
|
||||||
|
|
||||||
|
|
||||||
|
## App Stores
|
||||||
|
|
||||||
|
### Install a Chrome Web Store app
|
||||||
|
|
||||||
|
Users can install a Chrome app directly from your website, as long as the app
|
||||||
|
and site have been associated via Google's Webmaster Tools. Read more on
|
||||||
|
[Chrome Web Store's Inline Installation
|
||||||
|
docs](https://developers.google.com/chrome/web-store/docs/inline_installation).
|
||||||
|
|
||||||
|
```html
|
||||||
|
<link rel="chrome-webstore-item" href="https://chrome.google.com/webstore/detail/APP_ID">
|
||||||
|
```
|
||||||
|
|
||||||
|
### Smart App Banners in iOS 6 Safari
|
||||||
|
|
||||||
|
Stop bothering everyone with gross modals advertising your entry in the App Store.
|
||||||
|
This bit of code will unintrusively allow the user the option to download your iOS
|
||||||
|
app, or open it with some data about the user's current state on the website.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="apple-itunes-app" content="app-id=APP_ID,app-argument=SOME_TEXT">
|
||||||
|
```
|
||||||
|
|
||||||
|
## Google Analytics augments
|
||||||
|
|
||||||
|
### More tracking settings
|
||||||
|
|
||||||
|
The [optimized Google Analytics
|
||||||
|
snippet](http://mathiasbynens.be/notes/async-analytics-snippet) included with
|
||||||
|
HTML5 Boilerplate includes something like this:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview']];
|
||||||
|
```
|
||||||
|
|
||||||
|
In case you need more settings, just extend the array literal instead of
|
||||||
|
[`.push()`ing to the
|
||||||
|
array](http://mathiasbynens.be/notes/async-analytics-snippet#dont-push-it)
|
||||||
|
afterwards:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_trackPageview'], ['_setAllowAnchor', true]];
|
||||||
|
```
|
||||||
|
|
||||||
|
### Anonymize IP addresses
|
||||||
|
|
||||||
|
In some countries, no personal data may be transferred outside jurisdictions
|
||||||
|
that do not have similarly strict laws (i.e. from Germany to outside the EU).
|
||||||
|
Thus a webmaster using the Google Analytics script may have to ensure that no
|
||||||
|
personal (trackable) data is transferred to the US. You can do that with [the
|
||||||
|
`_gat.anonymizeIp`
|
||||||
|
option](http://code.google.com/apis/analytics/docs/gaJS/gaJSApi_gat.html#_gat._anonymizeIp).
|
||||||
|
In use it looks like this:
|
||||||
|
|
||||||
|
```js
|
||||||
|
var _gaq = [['_setAccount', 'UA-XXXXX-X'], ['_gat._anonymizeIp'], ['_trackPageview']];
|
||||||
|
```
|
||||||
|
|
||||||
|
### Track jQuery AJAX requests in Google Analytics
|
||||||
|
|
||||||
|
An article by @JangoSteve explains how to [track jQuery AJAX requests in Google
|
||||||
|
Analytics](http://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/).
|
||||||
|
|
||||||
|
Add this to `plugins.js`:
|
||||||
|
|
||||||
|
```js
|
||||||
|
/*
|
||||||
|
* Log all jQuery AJAX requests to Google Analytics
|
||||||
|
* See: http://www.alfajango.com/blog/track-jquery-ajax-requests-in-google-analytics/
|
||||||
|
*/
|
||||||
|
if (typeof _gaq !== "undefined" && _gaq !== null) {
|
||||||
|
$(document).ajaxSend(function(event, xhr, settings){
|
||||||
|
_gaq.push(['_trackPageview', settings.url]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
### Track JavaScript errors in Google Analytics
|
||||||
|
|
||||||
|
Add this function after `_gaq` is defined:
|
||||||
|
|
||||||
|
```js
|
||||||
|
(function(window){
|
||||||
|
var undefined,
|
||||||
|
link = function (href) {
|
||||||
|
var a = window.document.createElement('a');
|
||||||
|
a.href = href;
|
||||||
|
return a;
|
||||||
|
};
|
||||||
|
window.onerror = function (message, file, row) {
|
||||||
|
var host = link(file).hostname;
|
||||||
|
_gaq.push([
|
||||||
|
'_trackEvent',
|
||||||
|
(host == window.location.hostname || host == undefined || host == '' ? '' : 'external ') + 'error',
|
||||||
|
message, file + ' LINE: ' + row, undefined, undefined, true
|
||||||
|
]);
|
||||||
|
};
|
||||||
|
}(window));
|
||||||
|
```
|
||||||
|
|
||||||
|
### Track page scroll
|
||||||
|
|
||||||
|
Add this function after `_gaq` is defined:
|
||||||
|
|
||||||
|
```js
|
||||||
|
$(function(){
|
||||||
|
var isDuplicateScrollEvent,
|
||||||
|
scrollTimeStart = new Date,
|
||||||
|
$window = $(window),
|
||||||
|
$document = $(document),
|
||||||
|
scrollPercent;
|
||||||
|
|
||||||
|
$window.scroll(function() {
|
||||||
|
scrollPercent = Math.round(100 * ($window.height() + $window.scrollTop())/$document.height());
|
||||||
|
if (scrollPercent > 90 && !isDuplicateScrollEvent) { //page scrolled to 90%
|
||||||
|
isDuplicateScrollEvent = 1;
|
||||||
|
_gaq.push(['_trackEvent', 'scroll',
|
||||||
|
'Window: ' + $window.height() + 'px; Document: ' + $document.height() + 'px; Time: ' + Math.round((new Date - scrollTimeStart )/1000,1) + 's',
|
||||||
|
undefined, undefined, true
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
## Miscellaneous
|
||||||
|
|
||||||
|
* Use [HTML5
|
||||||
|
polyfills](https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills).
|
||||||
|
|
||||||
|
* Use [Microformats](http://microformats.org/wiki/Main_Page) (via
|
||||||
|
[microdata](http://microformats.org/wiki/microdata)) for optimum search
|
||||||
|
results
|
||||||
|
[visibility](http://googlewebmastercentral.blogspot.com/2009/05/introducing-rich-snippets.html).
|
||||||
|
|
||||||
|
* If you're building a web app you may want [native style momentum scrolling in
|
||||||
|
iOS5](http://johanbrook.com/browsers/native-momentum-scrolling-ios-5/) using
|
||||||
|
`-webkit-overflow-scrolling: touch`.
|
||||||
|
|
||||||
|
* Avoid development/stage websites "leaking" into SERPs (search engine results
|
||||||
|
page) by [implementing X-Robots-tag
|
||||||
|
headers](https://github.com/h5bp/html5-boilerplate/issues/804).
|
||||||
|
|
||||||
|
* Screen readers currently have less-than-stellar support for HTML5 but the JS
|
||||||
|
script [accessifyhtml5.js](https://github.com/yatil/accessifyhtml5.js) can
|
||||||
|
help increase accessibility by adding ARIA roles to HTML5 elements.
|
||||||
|
|
||||||
|
|
||||||
|
*Many thanks to [Brian Blakely](https://github.com/brianblakely) for
|
||||||
|
contributing much of this information.*
|
77
source/albert/doc/faq.md
Executable file
@ -0,0 +1,77 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# Frequently asked questions
|
||||||
|
|
||||||
|
### Why is the URL for jQuery without "http"?
|
||||||
|
|
||||||
|
This is an intentional use of [protocol-relative
|
||||||
|
URLs](http://paulirish.com/2010/the-protocol-relative-url/)
|
||||||
|
|
||||||
|
**N.B.** Using a protocol-relative URL for files that exist on a CDN is
|
||||||
|
problematic when you try to view your local files directly in the browser. The
|
||||||
|
browser will attempt to fetch the file from your local file system. We
|
||||||
|
recommend that you use a local server to test your pages (or Dropbox). This can
|
||||||
|
be done using Python by running `python -m SimpleHTTPServer` from your local
|
||||||
|
directory, using Ruby by installing and running
|
||||||
|
[asdf](https://rubygems.org/gems/asdf), and by installing any one of XAMPP,
|
||||||
|
MAMP, or WAMP.
|
||||||
|
|
||||||
|
|
||||||
|
### Why don't you automatically load the latest version of jQuery from the Google CDN?
|
||||||
|
|
||||||
|
1. The latest version of jQuery may not be compatible with the existing
|
||||||
|
plugins/code on the site. Version updating should be an intentional
|
||||||
|
decision.
|
||||||
|
2. The latest version has a very short `max-age=3600` compares to the specific
|
||||||
|
version of `max-age=31536000`, which means you won't get the benefits of
|
||||||
|
long-term caching.
|
||||||
|
|
||||||
|
|
||||||
|
### Why is the Google Analytics code at the bottom? Google recommends it be placed the `head`.
|
||||||
|
|
||||||
|
The advantage to placing it in the `head` is that you will track a user's
|
||||||
|
pageview even if they leave the page before it has been fully loaded. However,
|
||||||
|
putting the code at the bottom keeps all the scripts together and reinforces
|
||||||
|
that scripts at the bottom are the right move.
|
||||||
|
|
||||||
|
|
||||||
|
### How can I integrate [Twitter Bootstrap](http://twitter.github.com/bootstrap/) with HTML5 Boilerplate?
|
||||||
|
|
||||||
|
You can use [Initializr](http://initializr.com) to create a custom build that
|
||||||
|
includes HTML5 Boilerplate with Twitter Bootstrap.
|
||||||
|
|
||||||
|
Read more about how [HTML5 Boilerplate and Twitter Bootstrap complement each
|
||||||
|
other](http://www.quora.com/Is-Bootstrap-a-complement-OR-an-alternative-to-HTML5-Boilerplate-or-viceversa/answer/Nicolas-Gallagher).
|
||||||
|
|
||||||
|
|
||||||
|
### How do I prevent phone numbers looking twice as large and having a Skype highlight?
|
||||||
|
|
||||||
|
If this is occurring, it is because a user has the Skype browser extension
|
||||||
|
installed.
|
||||||
|
|
||||||
|
Use the following CSS to prevent Skype from formatting the numbers on your
|
||||||
|
page:
|
||||||
|
|
||||||
|
```css
|
||||||
|
span.skype_pnh_container {
|
||||||
|
display: none !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
span.skype_pnh_print_container {
|
||||||
|
display: inline !important;
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Do I need to upgrade my sites each time a new version of HTML5 Boilerplate is released?
|
||||||
|
|
||||||
|
No. You don't normally replace the foundations of a house once it has been
|
||||||
|
built. There is nothing stopping you from trying to work in the latest changes
|
||||||
|
but you'll have to assess the costs/benefits of doing so.
|
||||||
|
|
||||||
|
|
||||||
|
### Where can I get help for support questions?
|
||||||
|
|
||||||
|
Please ask for help on
|
||||||
|
[StackOverflow](http://stackoverflow.com/questions/tagged/html5boilerplate).
|
333
source/albert/doc/htaccess.md
Executable file
@ -0,0 +1,333 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# .htaccess
|
||||||
|
|
||||||
|
In Apache HTTP server, `.htaccess` (hypertext access) is the configuration file
|
||||||
|
that allows for web server configuration. HTML5 Boilerplate includes a number
|
||||||
|
of best practice server rules for making web pages fast and secure, these rules
|
||||||
|
can be applied in the `.htaccess` file.
|
||||||
|
|
||||||
|
**First, you'll want to have these modules enabled for optimum performance:**
|
||||||
|
|
||||||
|
* `mod_setenvif.c` (setenvif_module)
|
||||||
|
* `mod_headers.c` (headers_module)
|
||||||
|
* `mod_deflate.c` (deflate_module)
|
||||||
|
* `mod_filter.c` (filter_module)
|
||||||
|
* `mod_expires.c` (expires_module)
|
||||||
|
* `mod_rewrite.c` (rewrite_module)
|
||||||
|
|
||||||
|
|
||||||
|
## On Windows
|
||||||
|
|
||||||
|
You've got a couple of options that depend on how you installed Apache.
|
||||||
|
|
||||||
|
1. **WampServer**. This is by far the simplest option. If you have installed
|
||||||
|
WampServer just click on the icon in the task bar, hover over the Apache
|
||||||
|
section in the menu that comes up and then hover over the modules section.
|
||||||
|
You will be presented with a list of modules. Simply click on a module name
|
||||||
|
to enable it (or disable it if it is already enabled). A check mark next to
|
||||||
|
a module indicates that it is enabled. WampServer will automatically restart
|
||||||
|
the Apache service after you enable a module.
|
||||||
|
|
||||||
|
2. **Manually editing `httpd.conf`**. This assumes that you have manually
|
||||||
|
installed Apache. You will need to locate the `httpd.conf` file which is
|
||||||
|
normally in the `conf` folder in the folder where you installed Apache (for
|
||||||
|
example `C:\apache\conf\httpd.conf`). Open up this file in a text editor. Near
|
||||||
|
the top (after a bunch of comments) you will see a long list of modules. Check
|
||||||
|
to make sure that the modules listed above are not commented out. If they
|
||||||
|
are, go ahead and uncomment them and restart Apache.
|
||||||
|
|
||||||
|
That's it, you're done!
|
||||||
|
|
||||||
|
|
||||||
|
## On Linux
|
||||||
|
|
||||||
|
These instructions should work on any distribution where `apt-get` has been
|
||||||
|
used to install Apache.
|
||||||
|
|
||||||
|
1. Open up a terminal and type the following command. Enter your password when
|
||||||
|
prompted.
|
||||||
|
|
||||||
|
`sudo a2enmod setenvif headers deflate filter expires rewrite include`
|
||||||
|
|
||||||
|
1. Restart apache by using the following command so the new configuration takes
|
||||||
|
effect.
|
||||||
|
|
||||||
|
`sudo /etc/init.d/apache2 restart`
|
||||||
|
|
||||||
|
That's it, you're done!
|
||||||
|
|
||||||
|
|
||||||
|
## On Mac
|
||||||
|
|
||||||
|
1. **MAMP PRO**. On the main screen, click the `Apache` tab and ensure that all
|
||||||
|
the required modules listed above are 'checked', indicating they are
|
||||||
|
enabled.
|
||||||
|
|
||||||
|
2. **MAMP**. Locate the `httpd.conf` file, which is typically found in
|
||||||
|
`/Applications/MAMP/conf/apache/httpd.conf`. Open the file in a text editor
|
||||||
|
and uncomment all of the required modules listed above. Once you have done so,
|
||||||
|
reset MAMP.
|
||||||
|
|
||||||
|
3. **XAMPP**. Follow the same steps as for MAMP, but look for `httpd.conf` in
|
||||||
|
`/Applications/XAMPP/etc/httpd.conf`.
|
||||||
|
|
||||||
|
|
||||||
|
## Security
|
||||||
|
|
||||||
|
Do not turn off your ServerSignature (i.e., the `Server:` HTTP header). Serious
|
||||||
|
attackers can use other kinds of fingerprinting methods to figure out the
|
||||||
|
actual server and components running behind a port. Instead, as a site owner,
|
||||||
|
you should keep track of what's listening on ports on hosts that you control.
|
||||||
|
Run a periodic scanner to make sure nothing suspicious is running on a host you
|
||||||
|
control, and use the ServerSignature to determine if this is the web server and
|
||||||
|
version that you expect.
|
||||||
|
|
||||||
|
|
||||||
|
## Performance
|
||||||
|
|
||||||
|
### Configure ETags
|
||||||
|
|
||||||
|
```apache
|
||||||
|
FileETag None
|
||||||
|
```
|
||||||
|
|
||||||
|
Entity tags (ETags) is a mechanism that web servers and browsers use to
|
||||||
|
determine whether the component in the browser's cache matches the one on the
|
||||||
|
origin server. (An "entity" is another word for "component": images, scripts,
|
||||||
|
stylesheets, etc.) ETags were added to provide a mechanism for validating
|
||||||
|
entities that is more flexible than the last-modified date. An `ETag` is a
|
||||||
|
string that uniquely identifies a specific version of a component. The only
|
||||||
|
format constraints are that the string be quoted. The origin server specifies
|
||||||
|
the component's `ETag` using the `ETag` response header.
|
||||||
|
|
||||||
|
```http
|
||||||
|
HTTP/1.1 200 OK
|
||||||
|
Last-Modified: Tue, 12 Dec 2006 03:03:59 GMT
|
||||||
|
ETag: "10c24bc-4ab-457e1c1f"
|
||||||
|
Content-Length: 12195
|
||||||
|
```
|
||||||
|
|
||||||
|
Later, if the browser has to validate a component, it uses the `If-None-Match`
|
||||||
|
header to pass the `ETag` back to the origin server. If the ETags match, a 304
|
||||||
|
status code is returned reducing the response by 12195 bytes for this
|
||||||
|
example.
|
||||||
|
|
||||||
|
```http
|
||||||
|
GET /i/yahoo.gif HTTP/1.1
|
||||||
|
Host: us.yimg.com
|
||||||
|
If-Modified-Since: Tue, 12 Dec 2006 03:03:59 GMT
|
||||||
|
If-None-Match: "10c24bc-4ab-457e1c1f"
|
||||||
|
HTTP/1.1 304 Not Modified
|
||||||
|
```
|
||||||
|
|
||||||
|
The problem with ETags is that they typically are constructed using attributes
|
||||||
|
that make them unique to a specific server hosting a site. ETags won't match
|
||||||
|
when a browser gets the original component from one server and later tries to
|
||||||
|
validate that component on a different server, a situation that is all too
|
||||||
|
common on web sites that use a cluster of servers to handle requests. By
|
||||||
|
default, both Apache and IIS embed data in the ETag that dramatically reduces
|
||||||
|
the odds of the validity test succeeding on web sites with multiple servers.
|
||||||
|
|
||||||
|
The ETag format for Apache 1.3 and 2.x is inode-size-timestamp. Although a
|
||||||
|
given file may reside in the same directory across multiple servers, and have
|
||||||
|
the same file size, permissions, timestamp, etc., its inode is different from
|
||||||
|
one server to the next.
|
||||||
|
|
||||||
|
IIS 5.0 and 6.0 have a similar issue with ETags. The format for ETags on IIS is
|
||||||
|
Filetimestamp:ChangeNumber. A ChangeNumber is a counter used to track
|
||||||
|
configuration changes to IIS. It's unlikely that the ChangeNumber is the same
|
||||||
|
across all IIS servers behind a web site.
|
||||||
|
|
||||||
|
The end result is ETags generated by Apache and IIS for the exact same
|
||||||
|
component won't match from one server to another. If the ETags don't match, the
|
||||||
|
user doesn't receive the small, fast 304 response that ETags were designed for;
|
||||||
|
instead, they'll get a normal 200 response along with all the data for the
|
||||||
|
component. If you host your web site on just one server, this isn't a problem.
|
||||||
|
But if you have multiple servers hosting your web site, and you're using Apache
|
||||||
|
or IIS with the default ETag configuration, your users are getting slower
|
||||||
|
pages, your servers have a higher load, you're consuming greater bandwidth, and
|
||||||
|
proxies aren't caching your content efficiently. Even if your components have a
|
||||||
|
far future Expires header, a conditional GET request is still made whenever the
|
||||||
|
user hits Reload or Refresh.
|
||||||
|
|
||||||
|
If you're not taking advantage of the flexible validation model that ETags
|
||||||
|
provide, it's better to just remove the ETag altogether. The Last-Modified
|
||||||
|
header validates based on the component's timestamp. And removing the ETag
|
||||||
|
reduces the size of the HTTP headers in both the response and subsequent
|
||||||
|
requests. This Microsoft Support article describes how to remove ETags. In
|
||||||
|
Apache, this is done by simply adding the above line to your Apache
|
||||||
|
configuration file.
|
||||||
|
|
||||||
|
|
||||||
|
### Gzip Components
|
||||||
|
|
||||||
|
Compression reduces response times by reducing the size of the HTTP response.
|
||||||
|
|
||||||
|
Starting with HTTP/1.1, web clients indicate support for compression with the
|
||||||
|
Accept-Encoding header in the HTTP request.
|
||||||
|
|
||||||
|
```
|
||||||
|
Accept-Encoding: gzip, deflate
|
||||||
|
```
|
||||||
|
|
||||||
|
If the web server sees this header in the request, it may compress the response
|
||||||
|
using one of the methods listed by the client. The web server notifies the web
|
||||||
|
client of this via the Content-Encoding header in the response.
|
||||||
|
|
||||||
|
```
|
||||||
|
Content-Encoding: gzip
|
||||||
|
```
|
||||||
|
|
||||||
|
Gzip is the most popular and effective compression method at this time. It was
|
||||||
|
developed by the GNU project and standardized by RFC 1952. The only other
|
||||||
|
compression format you're likely to see is deflate, but it's less effective and
|
||||||
|
less popular.
|
||||||
|
|
||||||
|
Gzipping generally reduces the response size by about 70%. Approximately 90% of
|
||||||
|
today's Internet traffic travels through browsers that claim to support gzip.
|
||||||
|
If you use Apache, the module configuring gzip depends on your version: Apache
|
||||||
|
1.3 uses `mod_gzip` while Apache 2.x uses `mod_deflate`.
|
||||||
|
|
||||||
|
There are known issues with browsers and proxies that may cause a mismatch in
|
||||||
|
what the browser expects and what it receives with regard to compressed
|
||||||
|
content. Fortunately, these edge cases are dwindling as the use of older
|
||||||
|
browsers drops off. The Apache modules help out by adding appropriate Vary
|
||||||
|
response headers automatically.
|
||||||
|
|
||||||
|
Servers choose what to gzip based on file type, but are typically too limited
|
||||||
|
in what they decide to compress. Most web sites gzip their HTML documents. It's
|
||||||
|
also worthwhile to gzip your scripts and stylesheets, but many web sites miss
|
||||||
|
this opportunity. In fact, it's worthwhile to compress any text response
|
||||||
|
including XML and JSON. Image and PDF files should not be gzipped because they
|
||||||
|
are already compressed. Trying to gzip them not only wastes CPU but can
|
||||||
|
potentially increase file sizes.
|
||||||
|
|
||||||
|
Gzipping as many appropriate file types as possible is an easy way to reduce
|
||||||
|
page weight and accelerate the user experience.
|
||||||
|
|
||||||
|
|
||||||
|
### Cache busting
|
||||||
|
|
||||||
|
A first-time visitor to your page may have to make several HTTP requests, but
|
||||||
|
by using the Expires header you make those components cacheable. This avoids
|
||||||
|
unnecessary HTTP requests on subsequent page views. Expires headers are most
|
||||||
|
often used with images, but they should be used on all components including
|
||||||
|
scripts, stylesheets, etc.
|
||||||
|
|
||||||
|
Traditionally, if you use a far future Expires header you have to change the
|
||||||
|
component's filename whenever the component changes.
|
||||||
|
|
||||||
|
The H5BP `.htaccess` has built-in filename cache busting. To use it, uncomment
|
||||||
|
the relevant lines in the `.htaccess` file.
|
||||||
|
|
||||||
|
Doing so will route all requests for `/path/filename.20120101.ext` to
|
||||||
|
`/path/filename.ext`. To use this, just add a time-stamp number (or your own
|
||||||
|
numbered versioning system) into your resource filenames in your HTML source
|
||||||
|
whenever you update those resources.
|
||||||
|
|
||||||
|
#### Example:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="/js/myscript.20120305.js"></script>
|
||||||
|
<script src="/js/jqueryplugin.45.js"></script>
|
||||||
|
<link rel="stylesheet" href="css/somestyle.49559939932.css">
|
||||||
|
<link rel="stylesheet" href="css/anotherstyle.2.css">
|
||||||
|
```
|
||||||
|
|
||||||
|
**N.B. You do not have to rename the resource on the filesystem.** All you have
|
||||||
|
to do is add the timestamp number to the filename in your HTML source. The
|
||||||
|
`.htaccess` directive will serve up the proper file.
|
||||||
|
|
||||||
|
Traditional cache busting involved adding a query string to the end of your
|
||||||
|
JavaScript or CSS filename whenever you updated it.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<script src="/js/all.js?v=12"></script>
|
||||||
|
```
|
||||||
|
|
||||||
|
However, as [Steve Souders](http://stevesouders.com/) explains in [*Revving
|
||||||
|
Filenames: don’t use
|
||||||
|
querystring*](http://www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/),
|
||||||
|
the query string approach is not always reliable for clients behind a Squid
|
||||||
|
Proxy Server.
|
||||||
|
|
||||||
|
|
||||||
|
## Trailing slash redirects
|
||||||
|
|
||||||
|
Trailing slash redirects can be done by adding one of the options below in `.htaccess`.
|
||||||
|
|
||||||
|
### Option 1
|
||||||
|
Rewrite `domain.com/foo` -> `domain.com/foo/`.
|
||||||
|
|
||||||
|
```apache
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
|
||||||
|
RewriteRule ^(.*)$ $1/ [R=301,L]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option 2
|
||||||
|
Rewrite `domain.com/foo/` -> `domain.com/foo`
|
||||||
|
|
||||||
|
```apache
|
||||||
|
RewriteRule ^(.*)/$ $1 [R=301,L]
|
||||||
|
```
|
||||||
|
|
||||||
|
Here are some tips to show you how to integrate the rewrite rules with
|
||||||
|
different CMS tools. There are four areas you need to look out for:
|
||||||
|
|
||||||
|
### 1. Keep a backup
|
||||||
|
|
||||||
|
If you use trailing slash redirects on an existing site, always keep a backup
|
||||||
|
of your `.htaccess` and test thoroughly on your staging server before using it on
|
||||||
|
a production server.
|
||||||
|
|
||||||
|
### 2. Don't replace existing rules, merge
|
||||||
|
|
||||||
|
For example, if you use CodeIgniter you may have existing URL rewrite rules like:
|
||||||
|
|
||||||
|
```apache
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule ^(.*)$ index.php/$1
|
||||||
|
```
|
||||||
|
|
||||||
|
Merge the above with H5BP rules below:
|
||||||
|
|
||||||
|
```apache
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
|
||||||
|
RewriteRule ^(.*)$ $1/ [R=301,L]
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Be careful of the order
|
||||||
|
|
||||||
|
Make sure you test thoroughly in your staging environment. For the above
|
||||||
|
example, the order is add trailing slash first, and add your existing rule
|
||||||
|
after:
|
||||||
|
|
||||||
|
```apache
|
||||||
|
# this adds trailing slash
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$
|
||||||
|
RewriteRule ^(.*)$ $1/ [R=301,L]
|
||||||
|
|
||||||
|
# this gets rid of index.php
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-f
|
||||||
|
RewriteCond %{REQUEST_FILENAME} !-d
|
||||||
|
RewriteRule ^(.*)$ index.php/$1
|
||||||
|
```
|
||||||
|
|
||||||
|
### 4. Double-check `RewriteBase` path is correct
|
||||||
|
|
||||||
|
Make sure your `RewriteBase` path points to the correct location and sits above
|
||||||
|
any rewrite rules. This usually happens to those have WordPress and ran the
|
||||||
|
auto install. For instance, if you have a site at `example.com/blog`, your
|
||||||
|
RewriteBase may look like:
|
||||||
|
|
||||||
|
```apache
|
||||||
|
RewriteBase /blog/
|
||||||
|
```
|
||||||
|
|
||||||
|
If you already have a working RewriteBase, keep that and don't remove it.
|
170
source/albert/doc/html.md
Executable file
@ -0,0 +1,170 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# The HTML
|
||||||
|
|
||||||
|
## Conditional `html` classes
|
||||||
|
|
||||||
|
A series of IE conditional comments apply the relevant IE-specific classes to
|
||||||
|
the `html` tag. This provides one method of specifying CSS fixes for specific
|
||||||
|
legacy versions of IE. While you may or may not choose to use this technique in
|
||||||
|
your project code, HTML5 Boilerplate's default CSS does not rely on it.
|
||||||
|
|
||||||
|
When using the conditional classes technique, applying classes to the `html`
|
||||||
|
element has several benefits:
|
||||||
|
|
||||||
|
* It avoids a [file blocking
|
||||||
|
issue](http://webforscher.wordpress.com/2010/05/20/ie-6-slowing-down-ie-8/)
|
||||||
|
discovered by Stoyan Stefanov and Markus Leptien.
|
||||||
|
* It avoids the need for an empty comment that also fixes the above issue.
|
||||||
|
* CMSes like WordPress and Drupal use the body class more heavily. This makes
|
||||||
|
integrating there a touch simpler.
|
||||||
|
* It still validates as HTML5.
|
||||||
|
* It uses the same element as Modernizr (and Dojo). That feels nice.
|
||||||
|
* It can improve the clarity of code in multi-developer teams.
|
||||||
|
|
||||||
|
|
||||||
|
## The `no-js` class
|
||||||
|
|
||||||
|
Allows you to more easily explicitly add custom styles when JavaScript is
|
||||||
|
disabled (`no-js`) or enabled (`js`). More here: [Avoiding the
|
||||||
|
FOUC](http://paulirish.com/2009/avoiding-the-fouc-v3/).
|
||||||
|
|
||||||
|
|
||||||
|
## The order of meta tags, and `<title>`
|
||||||
|
|
||||||
|
As recommended by [the HTML5
|
||||||
|
spec](http://www.whatwg.org/specs/web-apps/current-work/complete/semantics.html#charset)
|
||||||
|
(4.2.5.5 Specifying the document's character encoding), add your charset
|
||||||
|
declaration early (before any ASCII art ;) to avoid a potential
|
||||||
|
[encoding-related security
|
||||||
|
issue](http://code.google.com/p/doctype/wiki/ArticleUtf7) in IE. It should come
|
||||||
|
in the first [1024
|
||||||
|
bytes](http://www.whatwg.org/specs/web-apps/current-work/multipage/semantics.html#charset).
|
||||||
|
|
||||||
|
The charset should also come before the `<title>` tag, due to [potential XSS
|
||||||
|
vectors](http://code.google.com/p/doctype-mirror/wiki/ArticleUtf7).
|
||||||
|
|
||||||
|
The meta tag for compatibility mode [needs to be before all elements except
|
||||||
|
title and meta](http://h5bp.com/f "Defining Document Compatibility - MSDN").
|
||||||
|
And that same meta tag can only be invoked for Google Chrome Frame if it is
|
||||||
|
within the [first 1024
|
||||||
|
bytes](http://code.google.com/p/chromium/issues/detail?id=23003).
|
||||||
|
|
||||||
|
|
||||||
|
## X-UA-Compatible
|
||||||
|
|
||||||
|
This makes sure the latest version of IE is used in versions of IE that contain
|
||||||
|
multiple rendering engines. Even if a site visitor is using IE8 or IE9, it's
|
||||||
|
possible that they're not using the latest rendering engine their browser
|
||||||
|
contains. To fix this, use:
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
```
|
||||||
|
|
||||||
|
The `meta` tag tells the IE rendering engine two things:
|
||||||
|
|
||||||
|
1. It should use the latest, or edge, version of the IE rendering environment
|
||||||
|
2. If already installed, it should use the Google Chrome Frame rendering
|
||||||
|
engine.
|
||||||
|
|
||||||
|
This `meta` tag ensures that anyone browsing your site in IE is treated to the
|
||||||
|
best possible user experience that their browser can offer.
|
||||||
|
|
||||||
|
This line breaks validation, and the Google Chrome Frame part won't work inside
|
||||||
|
a conditional comment. To avoid these edge case issues it is recommended that
|
||||||
|
you **remove this line and use the `.htaccess`** (or other server config)
|
||||||
|
to send these headers instead. You also might want to read [Validating:
|
||||||
|
X-UA-Compatible](http://groups.google.com/group/html5boilerplate/browse_thread/thread/6d1b6b152aca8ed2).
|
||||||
|
|
||||||
|
If you are serving your site on a non-standard port, you will need to set this
|
||||||
|
header on the server-side. This is because the IE preference option 'Display
|
||||||
|
intranet sites in Compatibility View' is checked by default.
|
||||||
|
|
||||||
|
|
||||||
|
## Mobile viewport
|
||||||
|
|
||||||
|
There are a few different options that you can use with the [`viewport` meta
|
||||||
|
tag](https://docs.google.com/present/view?id=dkx3qtm_22dxsrgcf4 "Viewport and
|
||||||
|
Media Queries - The Complete Idiot's Guide"). You can find out more in [the
|
||||||
|
Apple developer docs](http://j.mp/mobileviewport). HTML5 Boilerplate comes with
|
||||||
|
a simple setup that strikes a good balance for general use cases.
|
||||||
|
|
||||||
|
```html
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
```
|
||||||
|
|
||||||
|
## Favicons and Touch Icons
|
||||||
|
|
||||||
|
The shortcut icons should be put in the root directory of your site. HTML5
|
||||||
|
Boilerplate comes with a default set of icons (include favicon and Apple Touch
|
||||||
|
Icons) that you can use as a baseline to create your own.
|
||||||
|
|
||||||
|
If your site or icons are in a sub-directory, you will need to reference the
|
||||||
|
icons using `link` elements placed in the HTML `head` of your document.
|
||||||
|
|
||||||
|
For a comprehensive overview, please read [Everything you always wanted to know
|
||||||
|
about touch icons](http://mathiasbynens.be/notes/touch-icons) by Mathias
|
||||||
|
Bynens.
|
||||||
|
|
||||||
|
|
||||||
|
## Modernizr
|
||||||
|
|
||||||
|
HTML5 Boilerplate uses a custom build of Modernizr.
|
||||||
|
|
||||||
|
[Modernizr](http://modernizr.com) is a JavaScript library which adds classes to
|
||||||
|
the `html` element based on the results of feature test and which ensures that
|
||||||
|
all browsers can make use of HTML5 elements (as it includes the HTML5 Shiv).
|
||||||
|
This allows you to target parts of your CSS and JavaScript based on the
|
||||||
|
features supported by a browser.
|
||||||
|
|
||||||
|
In general, in order to keep page load times to a minimum, it's best to call
|
||||||
|
any JavaScript at the end of the page because if a script is slow to load
|
||||||
|
from an external server it may cause the whole page to hang. That said, the
|
||||||
|
Modernizr script *needs* to run *before* the browser begins rendering the page,
|
||||||
|
so that browsers lacking support for some of the new HTML5 elements are able to
|
||||||
|
handle them properly. Therefore the Modernizr script is the only JavaScript
|
||||||
|
file synchronously loaded at the top of the document.
|
||||||
|
|
||||||
|
|
||||||
|
## The content area
|
||||||
|
|
||||||
|
The central part of the boilerplate template is pretty much empty. This is
|
||||||
|
intentional, in order to make the boilerplate suitable for both web page and
|
||||||
|
web app development.
|
||||||
|
|
||||||
|
### Google Chrome Frame
|
||||||
|
|
||||||
|
The main content area of the boilerplate includes a prompt to install Chrome
|
||||||
|
Frame (which no longer requires administrative rights) for users of IE 6. If
|
||||||
|
you intended to support IE 6, then you should remove the snippet of code.
|
||||||
|
|
||||||
|
### Google CDN for jQuery
|
||||||
|
|
||||||
|
The Google CDN version of the jQuery JavaScript library is referenced towards
|
||||||
|
the bottom of the page using a protocol-independent path (read more about this
|
||||||
|
in the [FAQ](faq.md)). A local fallback of jQuery is included for rare instances
|
||||||
|
when the CDN version might not be available, and to facilitate offline
|
||||||
|
development.
|
||||||
|
|
||||||
|
Regardless of which JavaScript library you choose to use, it is well worth the
|
||||||
|
time and effort to look up and reference the Google CDN (Content Delivery
|
||||||
|
Network) version. Your users may already have this version cached in their
|
||||||
|
browsers, and Google's CDN is likely to deliver the asset faster than your
|
||||||
|
server.
|
||||||
|
|
||||||
|
### Google Analytics Tracking Code
|
||||||
|
|
||||||
|
Finally, an optimized version of the latest Google Analytics tracking code is
|
||||||
|
included. Google recommends that this script be placed at the top of the page.
|
||||||
|
Factors to consider: if you place this script at the top of the page, you’ll be
|
||||||
|
able to count users who don’t fully load the page, and you’ll incur the max
|
||||||
|
number of simultaneous connections of the browser.
|
||||||
|
|
||||||
|
Further information:
|
||||||
|
|
||||||
|
* [Optimizing the asynchronous Google Analytics
|
||||||
|
snippet](http://mathiasbynens.be/notes/async-analytics-snippet).
|
||||||
|
* [Tracking Site Activity - Google
|
||||||
|
Analytics](http://code.google.com/apis/analytics/docs/tracking/asyncTracking.html).
|
31
source/albert/doc/js.md
Executable file
@ -0,0 +1,31 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# The JavaScript
|
||||||
|
|
||||||
|
Information about the default JavaScript included in the project.
|
||||||
|
|
||||||
|
## main.js
|
||||||
|
|
||||||
|
This file can be used to contain or reference your site/app JavaScript code.
|
||||||
|
For larger projects, you can make use of a JavaScript module loader, like
|
||||||
|
[Require.js](http://requirejs.org/), to load any other scripts you need to
|
||||||
|
run.
|
||||||
|
|
||||||
|
## plugins.js
|
||||||
|
|
||||||
|
This file can be used to contain all your plugins, such as jQuery plugins and
|
||||||
|
other 3rd party scripts.
|
||||||
|
|
||||||
|
One approach is to put jQuery plugins inside of a `(function($){ ...
|
||||||
|
})(jQuery);` closure to make sure they're in the jQuery namespace safety
|
||||||
|
blanket. Read more about [jQuery plugin
|
||||||
|
authoring](http://docs.jquery.com/Plugins/Authoring#Getting_Started)
|
||||||
|
|
||||||
|
## vendor
|
||||||
|
|
||||||
|
This directory can be used to contain all 3rd party library code.
|
||||||
|
|
||||||
|
Minified versions of the latest jQuery and Modernizr libraries are included by
|
||||||
|
default. You may wish to create your own [custom Modernizr
|
||||||
|
build](http://www.modernizr.com/download/).
|
26
source/albert/doc/misc.md
Executable file
@ -0,0 +1,26 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# Miscellaneous
|
||||||
|
|
||||||
|
## .gitignore
|
||||||
|
|
||||||
|
HTML5 Boilerplate includes a basic project-level `.gitignore`. This should
|
||||||
|
primarily be used to avoid certain project-level files and directories from
|
||||||
|
being kept under source control. Different development-environments will
|
||||||
|
benefit from different collections of ignores.
|
||||||
|
|
||||||
|
OS-specific and editor-specific files should be ignored using a "global
|
||||||
|
ignore" that applies to all repositories on your system.
|
||||||
|
|
||||||
|
For example, add the following to your `~/.gitconfig`, where the `.gitignore`
|
||||||
|
in your HOME directory contains the files and directories you'd like to
|
||||||
|
globally ignore:
|
||||||
|
|
||||||
|
```gitignore
|
||||||
|
[core]
|
||||||
|
excludesfile = ~/.gitignore
|
||||||
|
```
|
||||||
|
|
||||||
|
* More on global ignores: http://help.github.com/ignore-files/
|
||||||
|
* Comprehensive set of ignores on GitHub: https://github.com/github/gitignore
|
109
source/albert/doc/usage.md
Executable file
@ -0,0 +1,109 @@
|
|||||||
|
[HTML5 Boilerplate homepage](http://html5boilerplate.com) | [Documentation
|
||||||
|
table of contents](TOC.md)
|
||||||
|
|
||||||
|
# Usage
|
||||||
|
|
||||||
|
Once you have cloned or downloaded HTML5 Boilerplate, creating a site or app
|
||||||
|
usually involves the following:
|
||||||
|
|
||||||
|
1. Set up the basic structure of the site.
|
||||||
|
2. Add some content, style, and functionality.
|
||||||
|
3. Run your site locally to see how it looks.
|
||||||
|
4. (Optionally run a build script to automate the optimization of your site -
|
||||||
|
e.g. [ant build script](https://github.com/h5bp/ant-build-script) or [node
|
||||||
|
build script](https://github.com/h5bp/node-build-script)).
|
||||||
|
5. Deploy your site.
|
||||||
|
|
||||||
|
|
||||||
|
## Basic structure
|
||||||
|
|
||||||
|
A basic HTML5 Boilerplate site initially looks something like this:
|
||||||
|
|
||||||
|
```
|
||||||
|
.
|
||||||
|
├── css
|
||||||
|
│ ├── main.css
|
||||||
|
│ └── normalize.css
|
||||||
|
├── doc
|
||||||
|
├── img
|
||||||
|
├── js
|
||||||
|
│ ├── main.js
|
||||||
|
│ ├── plugins.js
|
||||||
|
│ └── vendor
|
||||||
|
│ ├── jquery.min.js
|
||||||
|
│ └── modernizr.min.js
|
||||||
|
├── .htaccess
|
||||||
|
├── 404.html
|
||||||
|
├── index.html
|
||||||
|
├── humans.txt
|
||||||
|
├── robots.txt
|
||||||
|
├── crossdomain.xml
|
||||||
|
├── favicon.ico
|
||||||
|
└── [apple-touch-icons]
|
||||||
|
```
|
||||||
|
|
||||||
|
What follows is a general overview of each major part and how to use them.
|
||||||
|
|
||||||
|
### css
|
||||||
|
|
||||||
|
This directory should contain all your project's CSS files. It includes some
|
||||||
|
initial CSS to help get you started from a solid foundation. [About the
|
||||||
|
CSS](css.md).
|
||||||
|
|
||||||
|
### doc
|
||||||
|
|
||||||
|
This directory contains all the HTML5 Boilerplate documentation. You can use it
|
||||||
|
as the location and basis for your own project's documentation.
|
||||||
|
|
||||||
|
### js
|
||||||
|
|
||||||
|
This directory should contain all your project's JS files. Libraries, plugins,
|
||||||
|
and custom code can all be included here. It includes some initial JS to help
|
||||||
|
get you started. [About the JavaScript](js.md).
|
||||||
|
|
||||||
|
### .htaccess
|
||||||
|
|
||||||
|
The default web server config is for Apache. [About the .htaccess](htaccess.md).
|
||||||
|
|
||||||
|
Host your site on a server other than Apache? You're likely to find the
|
||||||
|
corresponding configuration file in our [server configs
|
||||||
|
repo](https://github.com/h5bp/server-configs). If you cannot find a
|
||||||
|
configuration file for your setup, please consider contributing one so that
|
||||||
|
others can benefit too.
|
||||||
|
|
||||||
|
### 404.html
|
||||||
|
|
||||||
|
A helpful custom 404 to get you started.
|
||||||
|
|
||||||
|
### index.html
|
||||||
|
|
||||||
|
This is the default HTML skeleton that should form the basis of all pages on
|
||||||
|
your site. If you are using a server-side templating framework, then you will
|
||||||
|
need to integrate this starting HTML with your setup.
|
||||||
|
|
||||||
|
Make sure that you update the URLs for the referenced CSS and JavaScript if you
|
||||||
|
modify the directory structure at all.
|
||||||
|
|
||||||
|
If you are using Google Analytics, make sure that you edit the corresponding
|
||||||
|
snippet at the bottom to include your analytics ID.
|
||||||
|
|
||||||
|
### humans.txt
|
||||||
|
|
||||||
|
Edit this file to include the team that worked on your site/app, and the
|
||||||
|
technology powering it.
|
||||||
|
|
||||||
|
### robots.txt
|
||||||
|
|
||||||
|
Edit this file to include any pages you need hidden from search engines.
|
||||||
|
|
||||||
|
### crossdomain.xml
|
||||||
|
|
||||||
|
A template for working with cross-domain requests. [About
|
||||||
|
crossdomain.xml](crossdomain.md).
|
||||||
|
|
||||||
|
### icons
|
||||||
|
|
||||||
|
Replace the default `favicon.ico` and apple touch icons with your own. You
|
||||||
|
might want to check out Hans Christian's handy [HTML5 Boilerplate Favicon and
|
||||||
|
Apple Touch Icon
|
||||||
|
PSD-Template](http://drublic.de/blog/html5-boilerplate-favicons-psd-template/).
|
BIN
source/albert/favicon.ico
Executable file
After Width: | Height: | Size: 766 B |
15
source/albert/humans.txt
Executable file
@ -0,0 +1,15 @@
|
|||||||
|
# humanstxt.org/
|
||||||
|
# The humans responsible & technology colophon
|
||||||
|
|
||||||
|
# TEAM
|
||||||
|
|
||||||
|
<name> -- <role> -- <twitter>
|
||||||
|
|
||||||
|
# THANKS
|
||||||
|
|
||||||
|
<name>
|
||||||
|
|
||||||
|
# TECHNOLOGY COLOPHON
|
||||||
|
|
||||||
|
HTML5, CSS3
|
||||||
|
Normalize.css, jQuery, Modernizr
|
0
source/albert/img/.gitignore
vendored
Executable file
BIN
source/albert/img/bg.png
Normal file
After Width: | Height: | Size: 2.7 KiB |
BIN
source/albert/img/bullet.png
Normal file
After Width: | Height: | Size: 1.4 KiB |
BIN
source/albert/img/vintage/behance.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
source/albert/img/vintage/blogger.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
source/albert/img/vintage/buzz.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/delicious.png
Normal file
After Width: | Height: | Size: 7.6 KiB |
BIN
source/albert/img/vintage/designbump.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
source/albert/img/vintage/designfloat.png
Normal file
After Width: | Height: | Size: 9.6 KiB |
BIN
source/albert/img/vintage/digg.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
source/albert/img/vintage/dribbble.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
source/albert/img/vintage/dzone.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
source/albert/img/vintage/evernote.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/facebook.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
source/albert/img/vintage/flickr.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/forrst.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/github.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
source/albert/img/vintage/gmail.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
source/albert/img/vintage/google.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
source/albert/img/vintage/googleplus.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
source/albert/img/vintage/instagram.png
Normal file
After Width: | Height: | Size: 9.5 KiB |
BIN
source/albert/img/vintage/lastfm.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
source/albert/img/vintage/linkedin.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
source/albert/img/vintage/myspace.png
Normal file
After Width: | Height: | Size: 8.8 KiB |
BIN
source/albert/img/vintage/path.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/pinterest.png
Normal file
After Width: | Height: | Size: 9.2 KiB |
BIN
source/albert/img/vintage/reddit.png
Normal file
After Width: | Height: | Size: 9.1 KiB |
BIN
source/albert/img/vintage/rss.png
Normal file
After Width: | Height: | Size: 8.6 KiB |
BIN
source/albert/img/vintage/skype.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
source/albert/img/vintage/spotify.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
source/albert/img/vintage/stumbleupon.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
source/albert/img/vintage/tumblr.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
source/albert/img/vintage/twitter.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
source/albert/img/vintage/vimeo.png
Normal file
After Width: | Height: | Size: 8.4 KiB |
BIN
source/albert/img/vintage/webblend.png
Normal file
After Width: | Height: | Size: 9.0 KiB |
BIN
source/albert/img/vintage/wordpress.png
Normal file
After Width: | Height: | Size: 9.8 KiB |
BIN
source/albert/img/vintage/yahoo.png
Normal file
After Width: | Height: | Size: 8.2 KiB |
BIN
source/albert/img/vintage/youtube.png
Normal file
After Width: | Height: | Size: 8.9 KiB |
BIN
source/albert/img/vintage/zerply.png
Normal file
After Width: | Height: | Size: 8.5 KiB |
BIN
source/albert/img/xcode.png
Normal file
After Width: | Height: | Size: 272 KiB |
103
source/albert/index.html
Executable file
@ -0,0 +1,103 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<!--[if lt IE 7]> <html class="no-js lt-ie9 lt-ie8 lt-ie7"> <![endif]-->
|
||||||
|
<!--[if IE 7]> <html class="no-js lt-ie9 lt-ie8"> <![endif]-->
|
||||||
|
<!--[if IE 8]> <html class="no-js lt-ie9"> <![endif]-->
|
||||||
|
<!--[if gt IE 8]><!--> <html class="no-js"> <!--<![endif]-->
|
||||||
|
<head>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
||||||
|
<title></title>
|
||||||
|
<meta name="description" content="">
|
||||||
|
<meta name="viewport" content="width=device-width">
|
||||||
|
|
||||||
|
<!-- Place favicon.ico and apple-touch-icon.png in the root directory -->
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="css/normalize.css">
|
||||||
|
<link rel="stylesheet" href="css/main.css">
|
||||||
|
|
||||||
|
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
|
||||||
|
<script src="http://code.jquery.com/jquery-migrate-1.1.1.min.js"></script>
|
||||||
|
<script src="http://ricostacruz.com/jquery.transit/jquery.transit.min.js"></script>
|
||||||
|
|
||||||
|
<script>document.write('<script src="http://' + (location.host || 'localhost').split(':')[0] + ':35729/livereload.js?snipver=1"></' + 'script>')</script>
|
||||||
|
|
||||||
|
<script type="text/javascript">
|
||||||
|
$('#container').animate({'top': '-=300px'},1);
|
||||||
|
$(document).ready(function(){
|
||||||
|
$('#container').fadeIn(1000, function() {
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</head>
|
||||||
|
<body>
|
||||||
|
<!--[if lt IE 7]>
|
||||||
|
<p class="chromeframe">You are using an <strong>outdated</strong> browser. Please <a href="http://browsehappy.com/">upgrade your browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">activate Google Chrome Frame</a> to improve your experience.</p>
|
||||||
|
<![endif]-->
|
||||||
|
|
||||||
|
<!-- Add your site or application content here -->
|
||||||
|
|
||||||
|
<section id="main">
|
||||||
|
<h1>{ Albert Schulz }</h1>
|
||||||
|
|
||||||
|
<div id="container" class="container" style="display:none;">
|
||||||
|
|
||||||
|
<img src="./img/xcode.png" width=200>
|
||||||
|
|
||||||
|
<p>At the moment I study information system technology at Dresden University of Technology in Germany.<br/><br />
|
||||||
|
I love to program. I enjoy learning new things. I appreciate beautiful, thought-out designs.<br />I like people who have a goal in mind.</p>
|
||||||
|
|
||||||
|
<div class="clearfix"> </div>
|
||||||
|
|
||||||
|
<h2>Main Skills</h2>
|
||||||
|
|
||||||
|
<ul>
|
||||||
|
<li>iOS Development for 5 years {several Cydia & AppStore projects}</li>
|
||||||
|
<li>Javascript & CoffeeScript {recent project was a webservice with the power of Node JS}</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h2>Little experience</h2>
|
||||||
|
<ul>
|
||||||
|
<li>Redis.io {great, scalable NoSQL Database}</li>
|
||||||
|
<li>Java {forced to learn it in university, urgh!}</li>
|
||||||
|
<li>PHP & MySQL {just the basics you have to know in everyday life}</li>
|
||||||
|
<li>Ruby { // TODO: learn Ruby on Rails}</li>
|
||||||
|
<li>HTML5 & CSS3</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- <h2>Contact</h2>
|
||||||
|
<a href="">albert.schulz@me.com</a> <br/>
|
||||||
|
<a href="">@albert_sn</a> <br/>
|
||||||
|
<a href="">Github (albertschulz)</a> <br/>
|
||||||
|
<a href="">RichTownApps.de</a> -->
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</section>
|
||||||
|
|
||||||
|
<footer>
|
||||||
|
© 2013 | Albert Schulz <br/><br />
|
||||||
|
Beautiful XCode Image by <a href="http://artcore-illustrations.de">Nadja Hallfahrt </a><br/>
|
||||||
|
Bullet Icons by <a href="http://www.fatcow.com">FatCow</a>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
|
||||||
|
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
|
||||||
|
<script>window.jQuery || document.write('<script src="js/vendor/jquery-1.9.0.min.js"><\/script>')</script>
|
||||||
|
<script src="js/plugins.js"></script>
|
||||||
|
<script src="js/main.js"></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- Google Analytics: change UA-XXXXX-X to be your site's ID. -->
|
||||||
|
<script>
|
||||||
|
var _gaq=[['_setAccount','UA-XXXXX-X'],['_trackPageview']];
|
||||||
|
(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];
|
||||||
|
g.src=('https:'==location.protocol?'//ssl':'//www')+'.google-analytics.com/ga.js';
|
||||||
|
s.parentNode.insertBefore(g,s)}(document,'script'));
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,41 +0,0 @@
|
|||||||
<html><head profile="http://gmpg.org/xfn/11">
|
|
||||||
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
|
|
||||||
<title>albert.schulz</title>
|
|
||||||
|
|
||||||
<%= stylesheet_link_tag 'albert' %>
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
<p>
|
|
||||||
<div class="headline">
|
|
||||||
<h1> albert.schulz <font color="#005EA9"> // iOS Developer</font></h1>
|
|
||||||
</div>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<p>
|
|
||||||
<div class="subtitle">
|
|
||||||
XCode | Objective-C | PHP | MySQL | Java | Redis<br>
|
|
||||||
Node.js | JavaScript | Ruby | SQLite | Photoshop
|
|
||||||
</div>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<ul class="gallery">
|
|
||||||
<li>
|
|
||||||
<a rel="me" href="mailto:fake@example.com?cc=albert.schulz@me.com">
|
|
||||||
<%= image_tag "mail.png", :heigth => "215", :width => "177" %>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a rel="me" href="https://twitter.com/albert_sn">
|
|
||||||
<%= image_tag "twitter.png", :heigth => "215", :width => "177" %>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a rel="me" href="https://github.com/albertschulz">
|
|
||||||
<%= image_tag "github.png", :heigth => "215", :width => "177" %>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</body></html>
|
|
1
source/albert/js/main.js
Executable file
@ -0,0 +1 @@
|
|||||||
|
|
24
source/albert/js/plugins.js
Executable file
@ -0,0 +1,24 @@
|
|||||||
|
// Avoid `console` errors in browsers that lack a console.
|
||||||
|
(function() {
|
||||||
|
var method;
|
||||||
|
var noop = function () {};
|
||||||
|
var methods = [
|
||||||
|
'assert', 'clear', 'count', 'debug', 'dir', 'dirxml', 'error',
|
||||||
|
'exception', 'group', 'groupCollapsed', 'groupEnd', 'info', 'log',
|
||||||
|
'markTimeline', 'profile', 'profileEnd', 'table', 'time', 'timeEnd',
|
||||||
|
'timeStamp', 'trace', 'warn'
|
||||||
|
];
|
||||||
|
var length = methods.length;
|
||||||
|
var console = (window.console = window.console || {});
|
||||||
|
|
||||||
|
while (length--) {
|
||||||
|
method = methods[length];
|
||||||
|
|
||||||
|
// Only stub undefined methods.
|
||||||
|
if (!console[method]) {
|
||||||
|
console[method] = noop;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}());
|
||||||
|
|
||||||
|
// Place any jQuery/helper plugins in here.
|
4
source/albert/js/vendor/jquery-1.9.0.min.js
vendored
Executable file
4
source/albert/js/vendor/modernizr-2.6.2.min.js
vendored
Executable file
3
source/albert/robots.txt
Executable file
@ -0,0 +1,3 @@
|
|||||||
|
# robotstxt.org/
|
||||||
|
|
||||||
|
User-agent: *
|