-
Notifications
You must be signed in to change notification settings - Fork 11
Exercises
This page is born to keep track of what needs to be done.
β π
|
Clear condition?
all pages required.
|
- Content Generator
-
is able to rapidly generate large blocks of text. Most common (and to some - way too common) is Lorem Ipsum.
- Lorem Ipsum
-
opening words of a famous poem by Horatio, which is too frequently used as content generator.
Upon covering basics, move to page creation. I want you to have multiple pages with different layouts. Consider this as laying ground-works for later.
Order: simple HTML4 exercises, then simple pages, then greater pages.
π± π
|
Git info:
REQUIRED tags:
After all my remarks are done and you know I passed your |
-
write a simple Hello World page
-
Hello World Arabic-style (left to right)
-
provide graceful degradation of the page in case of NoScript being turned on
-
use
span
withtitle
to mark something up and provide "additional info" on hover -
demonstrate differences between two main out of three HTML4 doctypes (skip frame one)
-
create a page with a good
header
. Prepare to answer questions why is it good?
-
Monthly calendar for November using table with "new" elements
-
Login form with "new" elements , login field is a user email address, form should send a proper POST.
-
About me: gives short info about someone. Mandatory: 3 paragraphs, name, surname, tagline. Optional: favourite quote, picture, list of front-end technologies one knows.
-
Review: write a review about latest book you read (are reading). Structure it properly (both text-wise and HTML-wise). Make it attractive using images, quotations, acronyms and abbreviations. Mark some text as deleted or inserted.
-
A framed page - itβs a frame-using page, example of such page on the web would be Oracle JavaDoc
-
User registration form - email, phone, country, shipping and billing address, personal data, login and password. Make it full-blown, use everything that HTML4 gives you when it comes to forms.
-
SPA - please create a HTML4 structure for a new SPA. Use a different content generator than Lorem Ipsum.
Take all HTML4 pages and simplify them with HTML5 (with sole exception being frame page). When all is rewritten, I want to see expanded form (or several forms) showing all HTML5 form capabilities.
Order: as with HTML4. Then create expanded form (or forms).
π± π
|
Git info:
|
β π
|
Advanced HTML5 is missing?
True. Except for form support and semantic tags these exercises give you little playground. Donβt worry. Once you learn JS, weβll revisit. |
π π
|
http://learnlayout.com/toc.html - thank me through Thank You badge for this :-), esp. the Russian version ;-D |
If youβre after recommended books, read this SO thread through
π π₯
|
Git commit or I wonβt review!
No need for new branch. Do it in HTML4 and HTML5 branches. However! I canβt review CSS automatically (creativity and the like) but if you go crazy Iβll never be able to review this! So, every new change must happen in new commit!! New rule for XYZ - new commit. Be warned, Iβll tell you to reset and redo! |
Employ inline-block
and other display
values, `float`s, `position`s (various), elements sizing, resets, typography and animations!
-
Be ready to come up with three good-enough resets on your own. Without Internet. :-)
-
Use normalize.css instead of reset.
-
Offer basic styling to all simple pages from HTML 4 and 5
-
Offer three noticeably different layouts to About me and Review pages
-
Offer three noticeably different layouts to all greater pages from HTML 4 and 5
π π
|
Now you can use https://html5boilerplate.com/ :-) |
Please write an app for each of the following:
-
Detecting that each major feature is supported and offering graceful degradation
-
Same, but with
Modernizr
-
Local storage
-
Geolocation
-
History
-
Microdata
-
Offline app
-
Canvas
-
Audio
-
Video
-
Analyze this article, find three small mistakes and larger problems and improve them
π π
|
Handy pointers |
π π
|
More exercises from CSS, HTML and JS |
Write a few components in all the DHTML frameworks (Moo, jQuery, Prototype etc.):
1) A table with sorting, filtering, headers, odd and even rows marking 2) A double linked list component, where you have target and source list and you may transfer fields between them 3) An accordion menu (for navigation or frames)
Using Pure JS, Require.js and Node.js, create few simple apps that are encapsulated and usable from elsewhere.
Test Drive the old and known game of maritime war - the battleships. Aside from testing and linting / hinting, PURE JS, but use functions, closures and modules well.
Ships: 1 4-mast ship; 2 3-mast ships; 3 2-mast ships; 4 1-mast ships. Players first place their ships in a fighting area, then take turns to shoot. Shots can only land within a fighting area (10x10). Ships cannot be placed adjacently (no matter if itβs vertical, horizontal or diagonal).
Extra features: 1) Shots will be repeated if they hit, if they missed, control passes to another player. 2) Once a game, 4mast ship can fire a salvo which counts as three shots (but uses only one turn). Each hit decreases salvo capability. 3) Once a game, 3mast ship can fire a salvo which counts as two shots (but uses only one turn). Each hit decreases salvo capability. 4) Once a game, 2mast ship can move by two places (vertically or horizontally only). Move does NOT use turn. 5) Once a game, 1mast ship can fire a torpedo, which goes through 3 fields, exploding only on impact (meaning, player specifies three subsequent field (vertically or horizontally) and earliest that has a ship is hit. If no field contains a ship, all are considered clean and torpedo missed. 6) Sinking a ship makes area next to it unusable (it becomes marked, 2mast ship canβt move there, no ship can be there, etc.).
Finally - rework the game using one JS framework. Keep the tests working! (Why did you chose this particular framework?
Using existing REST API, display itβs result creating two different pages (characters and ships), where only parts are reloaded.
Using Node.js and jQuery, write a simple server-side JS program, which reads questions from JSON files and feeds them to nicely styled and animated cards in the front-end. In other words: trivia game! Of course, about front-end development.
HTML -> CSS -> JS; only then we move on to apps and frameworks. Always remember to pace yourself.