Skip to main content

Intro to Markup and Web Design

Work to have done: Finish Visual Argument / Rhetorical Collage

Plan for the day:

  1. Introduction to markup languages (30ish min)
  2. Web-design unit overview and assignment (10 min)
  3. Tour of unit resources (5-10 min)
  4. Start the homework during class

1. Introduction to Markup Languages (10-15 min)

Begin with a breath

Our next unit takes us into the world of hypertext, a more interactive medium. Before we dive in deep, come with me to the CSS Zen Garden.

Some things to notice:

  • Responsive design: the same page can change appearance to suit the “viewscreen” (especially as the width changes).
  • The visual hierarchy holds here, too – including uses of containment and alignment to form groups, and negative space to establish rhythm.
  • So, too, are we retaining the importance of color schemes for both coherence and contrast.
  • Oh, and also? Every page you’ve just seen has exactly the same underlying html.

Markup: separating content from display

How?

acronym stands for
HTML HyperText Markup Language
CSS Cascading Style Sheets

What does that mean??

Per the tutorial I’m assigning you for homework,

  • HTML is for adding meaning to raw content by marking it up.
  • CSS is for formatting that marked up content.

In other words:

acronym stands for used for
HTML HyperText Markup Language content, groupings
CSS Cascading Style Sheets display / presentation

There are other languages that interact with these two, especially JavaScript, but also PHP and Python and Ruby: they can dynamically generate or change the HTML and CSS. And there are preprocessor languages that make it easier to write HTML and CSS in the first place: e.g. Markdown, the syntax you use in GitHub READMEs and forum posts, is essentially a shortcut form of HTML. But HTML and CSS are the core of what gets shown on the screen.

Let’s take Markdown as an example:

  • If you want to make something bold, you…
    • put **asterisks** on either side of it.
  • If you want italics, you…
    • put _underscore_ on either side (single asterisks will work, too).
The basic idea is that you need to signal where the marked-up text begins and ends.

The same is true in HTML, but it looks a little different:

what we’re marking Markdown syntax HTML syntax
strong text **surrounding asterisks** <strong>opening and closing tags</strong>
emphasized text _surrounding underscore_ <em>opening and closing tags</em>

Unlike in Markdown, opening and closing tags in HTML aren't exactly the same. But they're almost the same: a closing tag in HTML just adds the slash after the first angle bracket.

You can think of them as being like parentheses: In general, every HTML tag you open should close. (You can nest a complete pair of tags inside another pair (like these parentheses), but you can't close the outer pair before closing the inner pair without causing problems.)

Pro tip: Atom can automatically close the most recently opened tag. See Packages > Bracket Matcher > Close Current Tag, where you should also find a keyboard shortcut. (Way more convenient, I find.) I like to use this also as a form of proofreading: it reassures me that any tags still open are what I expect is still open.

One nice thing about having the tags themselves marked by angle brackets is that you can add information to them:

what we’re marking Markdown syntax HTML syntax
a basic hyperlink [anchor text](http://destination) <a href="http://destination">anchor text</a>
a hyperlink with extra info no default way to do it! <a href="http://destination" class="dummylink external" title="Explanation of where link goes">anchor text</a>

A Demo

Some of this is easier to understand with a live demo! Let’s head over to a CodePen where we can get some instant results from adding new HTML and CSS rules.

2. Web-design unit overview and assignment (10 min)

As I explained in the syllabus, your third project is to build a portfolio website using basic html and css files — as opposed to a site manager like WordPress or Wix — along with any media assets you wish to embed. In assigning this, I have two main goals for you:

  1. to learn how to manage a composite project made up of multiple interlinking files, and
  2. to explore the affordances of the web design stack as a medium, and especially its ability to flexibly render content for multiple audiences or reading priorities.
To read the full assignment – and fork a copy for yourself – go to github.com/benmiller314/website-portfolio-2021spring.

Let’s read through this together.

3. Tour of unit resources

I just want to give you a quick overview of the assets and advice I’ve compiled so far on the course site’s resources page.

If you find yourself breezing through the Interneting is Hard tutorial, you can find other self-paced learning opportunities here.

Quick demo of key Atom features

  • Split panes
    • This is also covered in Part 1 of the homework tutorial, but somehow a few folks miss it: please don’t! It’s the best.
  • Markdown preview
    • Because Markdown includes HTML, you can also use this to preview pure HTML files! But it’s no substitute for a real browser, in the end.
    • If there’s something you expect Atom to do, but it doesn’t, chances are someone’s already coded a Package to make Atom do it.
    • To search for, install, or otherwise manage packages, go to Packages > Settings View and choose the option you need.
    • Read the README inside an installed package for tips on how to use it.
  • Close current tag (as mentioned earlier)
  • Comment out current line (Edit > Toggle Comment)

Homework for Next Time

  • Do as much of the Interneting is Hard (but it doesn’t have to be) tutorial as time and interest allow – but at least parts 1-4 (from “Introduction” through “Hello, CSS”)
    • Heads up to fast workers: “float” layouts used to be a big deal, but aren’t as widely recommended any more: modern techniques like grid and flex are more flexible, and easier to get right. You can probably skip that chapter, at least for now.
  • Show your work by pushing your tutorial code to GitHub.
    • I’ve already created folders for parts 1-3 in the GH repo you just forked; clone it to your local computer, and you should be able to work in those folders and push.
    • But note that you’ll need to add your own folders for part 4 and thereafter.
Let's get started in class, so I can be available for Q&A – especially if you're still getting used to Atom!
To get credit for asynchronous participation, play around in the demo CodePen and take some screenshots to show me what's changed; send these to me by email, along with any questions. Then just get started on that tutorial for homework...