Testing display of HTML elements

Typography

This is 1st level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

This is 2nd level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

This is 3rd level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

This is 4th level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

This is 5th level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

This is 6th level heading

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus ultricies eget metus vel pharetra. Maecenas sit amet magna id libero congue venenatis in sit amet neque. Integer vehicula tellus quis dolor dapibus viverra. Nulla facilisi. Morbi fermentum hendrerit velit vitae placerat. Phasellus sed mattis felis. Fusce efficitur pretium tincidunt. Donec facilisis sem vitae lorem dapibus placerat. Curabitur a gravida magna. Phasellus vitae aliquam velit.

Vestibulum eget ipsum maximus, mattis nulla id, rhoncus est. Proin finibus scelerisque lacus, non consectetur lacus venenatis fringilla. Vestibulum hendrerit et diam ac dignissim. Morbi feugiat ligula neque, ac luctus massa bibendum id. Sed mollis pulvinar cursus. Quisque congue sit amet mauris id venenatis. Morbi sem turpis, luctus ac leo ac, condimentum tristique turpis. Morbi imperdiet diam at tortor ultrices, et maximus velit elementum. Aliquam aliquet arcu vel arcu rhoncus pulvinar.

Basic block level elements

This is a normal paragraph (p element). To add some length to it, let us mention that this page was primarily written for testing the effect of user style sheets. You can use it for various other purposes as well, like just checking how your browser displays various HTML elements by default. It can also be useful when testing conversions from HTML format to other formats, since some elements can go wrong then.

This is another paragraph. I think it needs to be added that the set of elements tested is not exhaustive in any sense. I have selected those elements for which it can make sense to write user style sheet rules, in my opionion.

This is a div element. Authors may use such elements instead of paragraph markup for various reasons. (End of div.)

This is a block quotation containing a single paragraph. Well, not quite, since this is not really quoted text, but I hope you understand the point. After all, this page does not use HTML markup very normally anyway.

The following contains address information about the author, in an address element.

Anh Tranngoc, tran.ngoc.anh@framgia.com
Hanoi, Vietnam

Lists

This is a paragraph before an unnumbered list (ul). Note that the spacing between a paragraph and a list before or after that is hard to tune in a user style sheet. You can't guess which paragraphs are logically related to a list, e.g. as a "list header".

The following is a menu list:

  • One.
  • Two.
  • Three. Well, probably this list item should be longer so that it will probably wrap to the next line in rendering.
  • The following is a dir list:

  • One.
  • Two.
  • Three. Well, probably this list item should be longer so that it will probably wrap to the next line in rendering.
  • This is a paragraph before a numbered list (ol). Note that the spacing between a paragraph and a list before or after that is hard to tune in a user style sheet. You can't guess which paragraphs are logically related to a list, e.g. as a "list header".

    1. One.
    2. Two.
    3. Three. Well, probably this list item should be longer. Note that if items are short, lists look better if they are compactly presented, whereas for long items, it would be better to have more vertical spacing between items.
    4. Four. This is the last item in this list. Let us terminate the list now without making any more fuss about it.

    This is a paragraph before a definition list (dl). In principle, such a list should consist of terms and associated definitions. But many authors use dl elements for fancy "layout" things. Usually the effect is not too bad, if you design user style sheet rules for dl which are suitable for real definition lists.

    recursion
    see recursion
    recursion, indirect
    see indirect recursion
    indirect recursion
    see recursion, indirect
    term
    a word or other expression taken into specific use in a well-defined meaning, which is often defined rather rigorously, even formally, and may differ quite a lot from an everyday meaning

    Text-level markup

    Some of the elements tested above are typically displayed in a monospace font, often using the same presentation for all of them. This tests whether that is the case on your browser:

    Links

    This is a text paragraph that contains some inline links. Generally, inline links (as opposite to e.g. links lists) are problematic from the usability perspective, but they may have use as “incidental”, less relevant links. See the document Links Want To Be Links .

    Forms

    Form without any class

    This is a form containing various fields (with some initial values (defaults) set, so that you can see how input text looks like without actually typing it):
    The following two radio buttons are inside a fieldset element with a legend:
    Radio button
    Checkbox
    HTML5 inputs

    General form

    Form input

    A form has only one input entry with submit inside.

    Another example

    Tables

    The following table has a caption. The first row and the first column contain table header cells (th elements) only; other cells are data cells (td elements), with align="right" attributes:

    Sample table: Areas of the Nordic countries, in sq km
    Country Total area Land area
    Denmark 43,070 42,370
    Finland 337,030 305,470
    Iceland 103,000 100,250
    Norway 324,220 307,860
    Sweden 449,964 410,928

    Character test

    The following table has some sample characters with annotations. If the browser’s default font does not contain all of them, they may get displayed using backup fonts. This may cause stylistic differences, but it should not prevent the characters from being displayed at all.

    Char. Explanation Notes
    ê e with circumflex Latin 1 character, should be ok
    em dash Windows Latin 1 character, should be ok, too
    Ā A with macron (line above) Latin Extended-A character, not present in all fonts
    Ω capital omega A Greek letter
    minus sign Unicode minus
    diameter sign relatively rare in fonts

    Highlight code

    In the following, a snippet should be highlighted.

    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    
    #define FIRST_PRIME_NUMBER 2
    #define MAX_PRIME_NUMBER 1000
    
    void
    child_process (int parentfd)
    {
      pid_t pid;
      int buf, divider = 0, len, pipefd[2], childfd = -1;
    
      while (1)
        {
          len = read (parentfd, &buf, sizeof (buf));
          if (divider == 0)
            {
              divider = buf;
              printf ("%d\n", divider);
            }
          else if (buf < 0)
            {
              if (childfd != -1)
                write (childfd, &buf, sizeof (buf));
              break;
            }
          else if (buf % divider != 0)
            {
              if (childfd == -1)
                {
                  if (pipe (pipefd) < 0)
                    break;
                  pid = fork ();
                  if (pid == 0)
                    {
                      parentfd = pipefd[0];
                      close (pipefd[1]);
                      divider = 0;
                    }
                  else
                    {
                      childfd = pipefd[1];
                      close (pipefd[0]);
                    }
                }
              if (childfd != -1)
                write (childfd, &buf, sizeof (buf));
            }
        }
    
      return;
    }
    
    int
    main ()
    {
      pid_t pid;
      int pipefd[2], i;
    
      if (pipe (pipefd) < 0)
        {
          fprintf (stderr, "failed to initialize pipe");
          return -1;
        }
    
      pid = fork ();
      if (pid == 0)
        {
          close (pipefd[1]);
          child_process (pipefd[0]);
        }
      else
        {
          close (pipefd[0]);
          for (i = FIRST_PRIME_NUMBER; i <= MAX_PRIME_NUMBER; i++)
            {
              write (pipefd[1], &i, sizeof (i));
            }
    
          i = -1;
          write (pipefd[1], &i, sizeof (i));
        }
    
      wait (NULL);
    
      return 0;
    }