Basics
Advanced
Production
Web Design
Outcome 1 - Factors Affecting Web Development
Range of devices, browsers and operating systems that people might access your website from
The role of the W3C, and how it sets standards for web development
The different types of development tools available (code editors, visual tools, etc.)
Outcome 2 - Plan and design a website
Produce a requirements list
Produce an outline design (page template/wireframe)
Create a navigation structure
Produce a resources list
Outcome 3 - Produce the Website
Produce a template page to give consistent formatting for other pages
Produce the rest of the site using the template
Outcome 4 - Upload and Test the Website
Upload a website to an FTP server
Produce a test plan (how you are going to test the website)
Implement your test plan
Log the results, and fix any errors you found
Have a quick chat about what you think the Internet is and what you think the Web is
Understand end-user and functional requirements of a website
The analysis phase of Web design and development requires the
web site designer to identify the end-user (also known as non-functional) and the functional requirements of the final website.
The end-user is a person who ultimately will be using the website.
The developer should have a clear idea of who the end-user(s) are of a website.
Often the type of users can be grouped into categories such as:
Young children
Elderly
Customers/clients
Employees
Inexperienced users or expert users
Users who require additional support to aid accessibility:
Screen readers
Voice recognition
It's often easy to group users and sometimes it's fairly possible that users fall under many categories.
By categorising the end-users, it becomes clearer what needs to be in place for the users to successfully use an end product.
Often the developer will need to spend time with the client to figure out what end-user requirements must be accomplished in the finished product
The tasks that the end-users should be able to carry out on the finished website are known as end-user requirements.
Sometimes end-user requirements actually inform the functional requirements of a website too.
Functional requirements are requirements that describe what processes the system must be able to carry out.
Functional requirements also state what data/information or database the system must have access to
Pick any website and identify the user and functional requirements of it
Describe an exemplify a website structure
Describe, exemplify and implement a website design
Compare file formats in terms of file size and quality
Describe copyright laws affecting the content of a website
The first step of website development is to plan the structure of the website. This is how the pages will link together, to allow for navigation between pages of the website and any links to external pages.
All of the designs will start with the homepage at the top level,
and then there will be the pages of level one (there will be no
more than 4 internal pages linked). The homepage and the pages
on level one will be the links that appear in the navigational bar.
The SQA will highlight the pages that are to appear in the navigational bar using an area of shaded background, the home page SHOULD ALWAYS be in the navigational bar.
When showing how the pages on level two will link we add to the
diagram similar to the following.
In the structure designs the pages linked with horizontal lines (level one and the homepage in the examples) will be two way links. The pages linked by vertical lines will be one way links from the source of the line.
However, it is not always the case that a website has a linear or hierarchical structure. On occasion, website structure is a bi-directional link between the homepage and other subpages.
Wireframes are a way of representing the visual design of a webpage and are very common in the industry.
A wireframe should:
navigational bars/links
text elements on the page (but not necessarily including all the text that will be in the element)
interactive elements such as buttons
images, videos and audio
form inputs
hyperlinks (and where they go)
Occasionally, wireframes will include annotations to give a rough idea of how an element will be styled.
For example, a wireframe may include annotations such as colours, fonts and the size of media elements such as video or images.
After a wireframe is built, the web development team often move towards the construction of a low-fidelity prototype.
This is often developed by a graphics designer.
Low-fidelity prototypes are often more detailed than wireframes and may contain more text than a wireframe and images might actually be hand drawn into the prototype.
Construction of a low-fidelity prototype is cheaper than building the finished product as it is faster to build. This way the client can suggest changes early on in the development cycle.
Create a wireframe for each of the following websites:
Over the years computers have been developed, so too have many standard file formats.
Standard file formats are used to ensure that no matter what platform you are using the system will be able to understand the file.
Some applications such as Adobe Photoshop do not save their files in a standard file format by default to allow them to store more than just the standard file (in Photoshop's case, the image).
For example, Photoshop stores things like information on layers, whereas exporting to a JPEG or PNG (which are both standard file formats) will remove the information on layers.
If you want to know more about what affects file sizes such as compression, quality, bit-depth, sample rate etc, look at my National 5 slides on Web Design and Development: Design.
The Copyrights, Designs and Patents act covers all sorts of media, ranging from text to graphics to video and audio.
It's often the case that a website designed or developer includes a copyright statement about materials used.
Responsive design is all about building a website that works on all devices.
Often with responsive design simply means rearranging columns of information on a desktop site into a single vertical column.
Sometimes responsive design means hiding certain elements that don't work well on a smartphone or tablet.
As you can imagine, a high-fidelity prototype is an even more complete prototype of a webpage or website.
A high-fidelity prototype will have been developed using HTML and CSS as well as JavaScript, and will offer an example of a finished product.
Some companies go straight to the high-fidelity prototype as it can actually be quicker to transform the prototype into the finished version.
To write HTML – the code needed to make websites
Understand why we use HTML
Pages are made up of tags:
Image copyright jamiebalfour.scot
A web page has a very simple structure
<!doctype html>
<html>
<head>
<title>Sample page</title>
</head>
<body>
<p>
Hello class
</p>
</body>
</html>
html
element is the first element you need to add to the page.The head
element contains information about the page, including the title, any linked CSS (more later) or JavaScript (more later).
Anything that appears in the head tag is not guaranteed to display on all browsers (some browsers do display certain tags from it but others display zilch)
The information stored in the head
element is often referred to as meta data.
Such information that might be found in the head tag is things like the page title, any keywords used on the page, links to any CSS pages or JavaScript scripts, locations of assets such as favicons etc or the author of the page.
The body
element contains the content of the page. It must come after the closing head tag.
The body tag is where all content should go.
In the body tag you will find all sorts of content such as paragraphs of text, images links etc.
Answer each of the following questions:
<a href="page2.html">To another page</a>
<ul>
<li>List item 1</li>
<li>List item 2</li>
</ul>
<ol>
<li>List item 1</li>
<li>List item 2</li>
</ol>
<img src="cat.png" alt="Cat">
<p>Paragraph 1</p>
<p>Paragraph 2</p>
<audio width="500" controls>
<source src="music1.mp3" type="audio/mpeg">
<source src="music1.wav" type="audio/wav">
</audio>
<video width="500" controls>
<source src="hare.mp4" type="video/mp4">
<source src="hare.webm" type="video/webm">
</video>
<h1>Heading 1</h1>
<h2>Heading 2</h2>
<h3>Heading 3</h3>
<h4>Heading 4</h4>
<nav>
tag is used to contain information about website or page navigation. <nav>
element surrounds the main menubar or webpage navigation (like Wikipedia has)<header>
tag often contains what is called the masthead of the webpage.<header>
may contain a logo or text that takes the user back to the main page via a hyperlink, as well as a title and potentially a site-wide search box.<footer>
tag is used to contain site links and legal information (such as copyright information). <main>
tag is usually the main content of the page. <main>
tag is often composed of <section>
tags. <section>
tags help break up the material or content of the page.<section>
tags and expects you to style them further.You are now going to create your own personal website. You have control over what you include in this, however, here are some example of pages:
Ensure that you use semantic elements across your pages.
You'll be looking at navigation bars in a later lesson but for now create links between each of the pages so that you can test them.
<form>
<input type="text" name="username">
<input type="password" name="password">
<input type="submit" value="Login">
</form>
<input>
element is used to take a single piece of data from the user. <input>
.<input>
element by default accepts text:<input type="text" name="username" size="40">
size="40"
sets the width of the input box in characters.<input>
element can also be set to accept numeric values only. <input type="number" name="count" min="0" max="10">
<input>
element can be styled as a radio button<p>Would you like salad with your order?</p>
<label><input type="radio" name="salad" value="1">Yes</label>
<label><input type="radio" name="salad" value="0">No</label>
<textarea>
element is designed for collecting larger amounts of data.<input>
tag, it is not self-closing.<textarea name="order">Please insert your order here</textarea>
<?php
echo $_POST['username'];
?>
<form action="submit.php" method="post">
<input type="text" name="username">
<input type="submit" value="Submit data">
</form>
<input>
tag and give it a type attribute of submit:<input type="submit" value="Send data">
<select>
element alongside the <option>
element.<form>
Select city:
<select name="city">
<option value="Aberdeen">Aberdeen</option>
<option value="Dundee">Dundee</option>
<option value="Edinburgh">Edinburgh</option>
<option value="Glasgow">Glasgow</option>
<option value="Inverness">Inverness</option>
<option value="Perth">Perth</option>
<option value="Stirling">Stirling</option>
</select>
</form>
<form>
Select city:
<select name="city">
<option value="Aberdeen">Aberdeen</option>
<option value="Dundee">Dundee</option>
<option value="Edinburgh">Edinburgh</option>
<option value="Glasgow">Glasgow</option>
<option value="Inverness">Inverness</option>
<option value="Perth">Perth</option>
<option value="Stirling">Stirling</option>
</select>
</form>
<form>
Select city:
<select multiple name="city">
<option value="Aberdeen">Aberdeen</option>
<option value="Dundee">Dundee</option>
<option value="Edinburgh">Edinburgh</option>
<option value="Glasgow">Glasgow</option>
<option value="Inverness">Inverness</option>
<option value="Perth">Perth</option>
<option value="Stirling">Stirling</option>
</select>
</form>
<form>
<p>
Welcome to the sign up form for Loch Tay Adventure Park!
</p>
<label>
Name
<input type="text" name="name">
</label><br>
<label>
Number of guests
<input type="number" name="number_of_guests" min="1" max="10">
</label><br>
<label>
Why Loch Tay? <textarea name="explanation">I love...</textarea>
</label>
<input type="submit">
</form>
Open your personal website.
Add a form to the Contact Me page to your website.
Extension: try adding some PHP that will display what the user has typed into the form when they submit it
Learn how to write CSS
Learn how to link CSS to a HTML page
CSS or Cascading Style Sheets add style to a webpage
Without CSS we just have HTML on our webpage – so no colour, no borders and just no fancy stuff
HTML on it’s own is just boring text on a white background!
<html>
<head>
<title>My webpage</title>
</head>
<body>
<p>Hello everyone!</p>
</body>
</html>
<html>
<head>
<title>My webpage</title>
<style>
p {
color : green;
}
</style>
</head>
<body>
<p>Hello everyone!</p>
</body>
</html>
A CSS file is made up of rules.
Image copyright jamiebalfour.scot
<html>
<head>
<title>My website</title>
<style>
h1 {
background: green;
}
</style>
</head>
<body>
<h1>I’m green!</h1>
</body>
</html>
<html>
<head>
<title>My website</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<p class="green_class">I’m green!</p>
</body>
</html>
<html>
<head>
<title>My website</title>
</head>
<body>
<p style="color:green">I’m green!</p>
</body>
</html>
p {
color : green;
}
<html>
<head>
<title>My website</title>
<style>
.green_background {
background: green;
}
</style>
</head>
<body>
<h1 class="green_background">I’m green!</h1>
<p class="green_background">This is green</p>
<p>But this is not green</p>
</body>
</html>
<html>
<head>
<title>My website</title>
<style>
#big_text {
font-size:30px;
}
</style>
</head>
<body>
<h1>Welcome</h1>
<p id="big_text">This text is bigger</p>
<p>This is regular text</p>
</body>
</html>
p {
font-family : Garamond, Georgia, "Times New Roman";
font-size : 12pt;
}
p {
color : green;
}
p {
text-align : center;
text-align : left;
text-align : right;
text-align : justify;
}
p {
background-color : green;
}
body {
background-color : red;
}
/*15px all round*/
margin : 15px;
/*15px to the top and bottom, 5px to left and right*/
margin : 15px 5px;
margin-left : 5px;
margin-right : 5px;
margin-top : 15px;
margin-bottom : 15px;
/*15px all round*/
padding : 15px;
/*15px to the top and bottom, 5px to left and right*/
padding : 15px 5px;
padding-left : 5px;
padding-right : 5px;
padding-top : 15px;
padding-bottom : 15px;
p {
width : 100px;
height : 100px;
}
img {
float : right;
}
footer {
clear : both;
}
h1 {
color: #f00;
font-weight: bold;
}
.warning{
color:#f00;
font-weight:bold;
font-size:14px;
}
h1 {
color: #f00;
font-weight: bold;
}
.warning{
color:#f00;
font-weight:bold;
font-size:14px;
}
.bad{
color:#f00;
font-weight:bold;
}
h1, .warning, .bad {
color: #f00;
font-weight: bold;
}
.warning{
font-size:14px;
}
#main_content p{
color:#222;
}
#main_content
.a:hover{
color: #0f0;
}
div:hover{
background-color: #ddd;
}
<!doctype html>
<html>
<head>
<title>Navigation bar</title>
</head>
<body>
<nav>
<ul>
<li><a href="home.html">Home</a></li>
<li><a href="page1.html">Page 1</a></li>
<li><a href="page2.html">Page 2</a></li>
</ul>
</nav>
</body>
</html>
nav ul {
list-style-type:none;
}
nav ul li {
float:left;
width:50px;
text-align:center;
}
nav ul li a {
display:block;
color:#fff;
background:#000;
}
nav ul li a:hover {
color:#000;
background:#fff;
}
<!doctype html>
<html>
<head>
<title>Navigation bar</title>
</head>
<body>
<nav>
<ul>
<li><a href="home.html">Home</a></li>
<li><a href="page1.html">Page 1</a></li>
<li><a href="page2.html">Page 2</a></li>
</ul>
</nav>
</body>
</html>
nav ul {
list-style-type:none;
}
nav ul li {
float:left;
width:50px;
text-align:center;
}
nav ul li a {
display:block;
color:#fff;
background:#000;
}
nav ul li a:hover {
color:#000;
background:#fff;
}
Now you are going to style up your websites.
text-shadow
, box-shadow
and border-radius
.Learn how JavaScript is used at Higher level
Learn to write a simple JavaScript function
Write the HTML for a simple page with a paragraph in it. Put some text into the paragraph.
Write the JavaScript so that when the mouse enters the paragraph the text colour becomes red and when the mouse leaves it again it becomes black.
JavaScript or JS adds interaction to a webpage
Interactions such as clicking, mouse over, even when the page loads are done with JavaScript.
Unlike CSS and HTML, JavaScript is a programming language.
JavaScript is run in the browser and is therefore a client-side scripting language
Click me
JavaScript can also be used for form validation to ensure that data entered into forms is validated
Since JavaScript is a scripting language, it is downloaded from the web server then interpreted by the browser before being executed by the browser.
We spoke about client-side scripting languages, but there are also server-side scripting languages that are used to process data on the server rather the client. Server-side scripting can be used to access databases securely and ensure that a user is logged in. It can also validate data, and process data.
JavaScript is a weakly typed language (like Python)
JavaScript is also dynamically typed (like Python)
It is not compiled to object-code (or machine code) but is interpreted
JavaScript can be used as a server-side language with the node.js framework
The most popular JavaScript interpreter is called V8. It is open source and was originally started by Google.
JavaScript is one of the three component languages that make up the front end of a webpage, with the other two being HTML and CSS.
JavaScript can manipulate elements on the page, including removing them and adding new elements.
JavaScript is normally contained in an external file and linked to the page.
<html>
<head>
<script src="script.js"></script>
</head>
<body></body>
</html>
At National 5 you would write something like this:
<div onmouseover='this.style.backgroundColor="red";' onmouseout='this.style.backgroundColor="#ddd";'>
This div will change colour when hovered.
</div>
This can also be written like this:
<div onmouseover='mouseOver(this);' onmouseout='mouseOut(this);'>
This div will change colour when hovered.
</div>
<script>
function mouseOver(e){
e.style.backgroundColor="red";
}
function mouseOut(e){
e.style.backgroundColor="#ddd";
}
</script>
<script src="scripts.js"></script>
to link to
the scripts page
Mouse events such as onmouseover
and onmouseout
are used to trigger an event.
These are triggered when the mouse interacts with the element in a specific way.
<div onmouseover='mouseOver(this);' onmouseout='mouseOut(this);'>
This div will change colour when hovered.
</div>
<script>
function mouseOver(e){
e.style.backgroundColor="red";
}
function mouseOut(e){
e.style.backgroundColor="#ddd";
}
</script>
There are a few more mouse events:
onmouseout
- occurs when the cursor is moved away from an element such as a button or a heading.
onmouseover
- occurs when the cursor is hovered over an element such as a button or a heading.
onmousedown
- occurs when the user presses a mouse button over an element.
onmouseup
- occurs when the user releases the mouse button over an element.
onclick
- occurs when the user clicks on an element such as a button or hyperlink.
onmousemove
- occurs when the cursor is moving over an element such as an image or menu.
JavaScript is quite a descriptive syntax.
This means that the language features an easy to read syntax where function names often do exactly what they say.
For example, document.getElementById
gets an element using it's ID.
Compare that to Python where you have functions like ord
.
The document.getElementById function is used to obtain an element on the page using it's ID tag. We can then apply styles to it using the style
property.
var e = document.getElementById("main_content");
e.style.backgroundColor = "#ddd";
Let's now use this by putting it in a function.
function changeColour(){
var e = document.getElementById("main_content");
e.style.backgroundColor = "#ddd";
}
Let's now add this to a page:
<!doctype html>
<html>
<head>
<title>JavaScript example</title>
<script>
function changeColour(){
var e = document.getElementById("main_content");
e.style.backgroundColor = "#ddd";
}
</script>
</head>
<body>
<div id="main_content">
</div>
</body>
</html>
Now let's call the JavaScript function:
<!doctype html>
<html>
<head>
<title>JavaScript example</title>
<script>
function changeColour(){
var e = document.getElementById("main_content");
e.style.backgroundColor = "#ddd";
}
</script>
</head>
<body>
<div id="main_content">
<button onclick='changeColour();'>Click me</button>
</div>
</body>
</html>
<button onclick='showSection('section1');'>Show part 1</button>
<section id="section1">This is section 1</section>
<button onclick='showSection('section2');'>Show part 2</button>
<section id="section1">This is section 2</section>
<script>
function showSection(sectionId){
//Hide them all first
document.getElementById("section1").style.display = "none";
document.getElementById("section2").style.display = "none";
//Now just display the one you wanted
document.getElementById(sectionId).style.display = "block";
}
</script>
Create an element on a webpage. Using an internal script tag:
Make the element change the colour of an other element when it is clicked. Use a JavaScript function to perform the action.
Understand the term server-side code
Understand how server-side code connects to front-end code
Understand how to write server-side code using PHP
Server-side refers anything that runs on a webserver.
Some programming languages like PHP, Java Server Pages (JSP), Python, JavaScript and C# can be run as server-side code.
When a webpage is processed prior to the client viewing it, it is called a dynamic webpage (contrast this to an interactive webpage which is modified on the client's computer)
These languages are used to preprocess pages before they are sent to the client's browser.
There are huge benefits to doing this such as being able to control what is displayed on the webpage, requiring users to login first, processing databases and so much more.
Whilst this part of the course isn't a core part of what you need to know about to pass, it's useful that you know a bit about it for work placements.
PHP is an example of a server-side language we have looked at.
It's the most commonly used server-side language due to simplicity, performance, database-connectivity, community and compatibility.
PHP can run on Apache, Nginx and IIS servers.
PHP is written inline within a HTML page saved as .php
file.
A piece of server software such as Apache uses a directive to tell it what to do with the PHP file (i.e. pass it to the PHP preprocessor)
The PHP preprocessor then looks for all the PHP tags (<?php...?>
) and processes the PHP within them.
The server then send back the processed page to the client
<!DOCTYPE html>
<html>
<head><title>My website</title></head>
<body>
<h1>Welcome to my website</h1>
<p>Hello, and welcome to my website. The time is <?php echo date("H:i:s"); ?></p>
<ol>
<?php
$con = CreateDatabaseConnection();
$con->query("SELECT * FROM favourites");
foreach ($con->query($sql) as $row){
echo '<li>' . $row['name'] . '</li>';
}
?>
</ol>
</body>
</html>
<!DOCTYPE html>
<html>
<head><title>My website</title></head>
<body>
<h1>Contact me</h1>
<form method="post" action="submit.php">
<input name="name">
<input name="email" type="email">
<textarea name="content"></textarea>
<button type="submit">Submit form</button>
</form>
</body>
</html>
<?php
echo "The person " . $_POST['name'] . " has been in touch with you."
echo "Their email address is " . $_POST['email'] . ".";
echo "They said the following " . $_POST['content'] . ".";
?>
<?php
echo "The person " . $_POST['name'] . " has been in touch with you."
echo "Their email address is " . $_POST['email'] . ".";
echo "They said the following " . $_POST['content'] . ".";
?>
<!DOCTYPE html>
<html>
<head><title>My website</title></head>
<body>
<h1>Contact me</h1>
<form method="post" action="submit.php">
<input name="name">
<input name="email" type="email">
<textarea name="content"></textarea>
<button type="submit">Submit form</button>
</form>
</body>
</html>
<?php
setcookie("username", $_POST['name']);
start_session();
$_SESSION['user_email'] = $_POST['email'];
echo $_COOKIE['username'];
echo $_SESSION['user_email']);
?>
PHP is a fully-fledged programming language. Apart from creating dynamic content, it can do the following:
Connecting to and working with databases
Accessing files on a server
Collect data
Maintain sessions
Encrypt and process data
Using the content from previous lessons plus the additional documentation for PHP, create a dynamic website using PHP.
Libraries are a set of functionalities, often classes or procedures, that can be used to extend an existing programming language.
For example, the C programming language uses .h
files (header files) to build the language. In fact, C has no IO features in it and requires the stdio.h
header in order to implement this.
The C# language uses the .NET Framework which is a bunch of dynamically linked libraries (DLLs) written in C#.
Java is built using a JVM which itself is written in Java and composed of several hundred JAR files.
For this course, we're only interested in JavaScript libraries.
There are literally hundreds of JavaScript libraries, if not thousands.
These libraries are designed to bring features to JavaScript that would otherwise be complicated or take a while to write.
jQuery is the most popular, partly because it sticks to it's motto: 'write less, do more'.
React is one of the most popular libraries and is gaining popularity (it was my last job in the industry).
Libraries are so popular for a variety of reasons, but the most common ones are as follows:
Libraries are tried and tested.
Libraries like jQuery mean you write less code than if you didn't have it. This means you actually make your JavaScript files smaller and indeed reduce download times.
Libraries save you writing complex code that would take hours to write.
Libraries are updated by the developers all the time, and if you use the lastest track, you'll always get the latest version.
Documentation on the library will include specific details on how we can add a library.
Below is an example of how to add and then test jQuery.
<!DOCTYPE html>
<head>
<title>Page with jQuery</title>
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
</head>
<body>
<h1>jQuery</h1>
<p>This page has jQuery</p>
<script>$("h1").fadeIn();</script>
</body>
Pick any library and test it on your website. Some examples of libraries include:
jQuery
MooTools
jQWidgets
D3.js
Understand what FTP is, why it is used, the variations of it and the advantages of each type
Understand how to use FTP using software such as Filezilla
FTP or File Transfer Protocol is a protocol for transferring files from one host to another over a TCP-based network like the internet.
Developed in the early 1970s by Abhay Bhushan (pictured), FTP is one of the oldest and most widely used protocols for file transfer.
FTP allows the transfer of both individual files and directories.
Web developers rely on FTP or SFTP in order to put their files onto a production server (unless they are remotely editing these files)
FTP is simple. It comprises of a server and a client (who accesses the server). The steps involved are:
A server opens a port
The client requests FTP access
The server responds
The client uses FTP commands to request file transfers or other operations
FTP opens two channels - one channel for sending commands and another for transferring the files
There are currently three versions of FTP:
FTP - standard FTP - no security and really simple
SFTP - SSH File Transfer Protocol - uses SSH (or Secure SHell) tunnelling to transfer data adding security to data transfers. SFTP is considered the most secure since you do not need to login with a username and password but can instead opt for an SSH key.
FTPS - File Transfer Protocol Secure - uses SSL or TLS to transfer data securely.
FTP protocols normally uses certain ports for file transfer:
FTP - port 21 - no security - fastest
SFTP - port 22 - highest security - slowest
FTPS - port 990 - good security - fast
FTP requires the user to have an FTP account with a username and password.
Both of these must be specified when the FTP connection is initiated.
FTP is not secure! This means that although you need a user name and password to login, any data sent between the client and server is left unencrypted which means that a third-party attack could expose the data!
SFTP or FTPS fix this.
Filezilla is perhaps the most commonly used FTP client (other than command line!) due to it's wide ranging feature-set but also down to the fact it is free and open-source.
Filezilla has a complicated interface with far too much going on at the one time, but once you master it Filezilla is one of the most useful tools you can use.
192.168.1.2
jamie
******
22
We're going to attempt to use (S)FTP to login and upload a file to a server and then a file back.
Understand how the methods of testing websites work
Homepage | About Me | Contact page | |
---|---|---|---|
Images display | Yes | Yes | Yes |
Links work | Yes | Yes | Yes |
Forms submit correctly | N/A | N/A | Yes |
No JavaScript errors | N/A | Yes | No |
Homepage | About Me | Contact page | |
---|---|---|---|
Chrome | Yes | Yes | Yes |
Firefox | Yes | Yes | Yes |
Safari | Yes | Yes | Yes |
iOS Safari | Yes | Yes | Yes |
Android Chrome | Yes | Looks weird | Yes |
Page | Error | Fixed |
---|---|---|
Homepage | Image of me didn't load | Format of image needed changing as it was unsupported (fixed 21/10/2022) |
Contact page | User could enter letters into the quantity field | Changed the type to number on quantity field (fixed 11/11/2022) |
Produce a test plan for your own website.
Understand the types of development tools
When we are developing a website, we have multiple options.
Throughout National 5 and Higher you'll likely have been using something like Visual Studio Code or Atom (also known as Pulsar).
These are all examples of text editors.
The other method we can use to develop websites is by using web authoring packages.
Examples of web authoring packages include Adobe Dreamweaver or Serif Web.
Web authoring software like this allows you to drag-and-drop parts to make your pages and the editor will generate the code for you (this is called WYSIWYG). They may not offer full drag-and-drop however.
Web authoring software allows you to see and change the code that makes the webpage as well, giving you some control over the code that will be produced.
The final method of website development is through the use of a drag-and-drop only editor.
These have seen a huge decline in the last few years with web authoring packages filling the gap, and even tools like wix.com offering code editing.
The main issue with editors like Google Sites is that although they are easy for beginners to use due to their drag-and-drop nature, they do not offer access to the code to generate them and therefore are incredibly limited.
For this course, we need to understand the differences between these two types of tools:
Text editors | Web authoring tool | Drag-and-drop | |
---|---|---|---|
Drag-and-drop | None | Partial | Full |
Code editing | Full | Some | None |
Project management tools | Can be installed | Included by default | None (not needed) |
Pricing | Free | Often expensive | Often free |
A long time ago, we had two browsers. One called Internet Explorer and Netscape Navigator.
Both of these browsers aimed to be better than the other by adding features which, although not on the standards track, offered functionality to the users that the other party could not offer. One
such example is the <marquee>
tag.
The W3C who manage the web wanted to make things more standardised. We continued to get garbage like Internet Explorer right up until 2011 that refused to follow the standards, unlike it's competitors, Firefox and Safari who unfortunately didn't get the same level of market share due to Internet Explorer being installed on all Windows computers by default.
Then came along Chrome in 2008. Chrome was a young keen little guy and was built on the rendering engine used in Safari called WebKit. Chrome followed standards and was massively faster thanks to the V8 Engine.
Internet Explorer endured for another couple of years releasing three more versions that tried to follow standards better than before, but couldn't match Chrome, Safari or Firefox's speed and features.
Chrome has since continued to push the web to be a better place but has also allowed the the browser to creep towards ubiquity. Chrome's dominating position has allowed Google to steer the direction of the web in the way that suits them. Not all of this is bad, but some of it is to make them more money.
It is a sad time for browsers.
-webkit-text-fill
. This means Chrome can support this feature, but other
browsers such as Firefox (as well as some Chromium based browsers) may not. And by implementing these features early the vendor of the browser (e.g. Google) may have to change them considerably when the feature becomes
a standard.Brave
Firefox
Understand the role and purpose of the W3C
Understand the term vendor neutral and the importance of it
Understand the term responsive web design
Be able to write code that produces a design that follows responsive design principles
Conditions: Media queries allow you to set conditions like "If the screen is smaller than 600 pixels wide" or "If the device is in landscape mode."
Instructions: You can then give instructions to the browser, like "Make the text bigger," "Hide this element," or "Change the background color."
@media only screen and (max-width: 800px){
body {
background: #f60;
}
}
It's very common across websites to see certain items disappear or take up the whole width of the viewport when the screen gets smaller.
@media only screen and (max-width: 800px){
.big_screen_only {
display: none;
}
.col_6{
width: auto;
}
}
It's very common across websites to see certain items disappear or take up the whole width of the viewport when the screen gets smaller.
@media only screen and (max-width: 800px){
.big_screen_only {
display: none;
}
.col_6{
width: auto;
}
}
The following are key shortcuts for using DragonSlides and reveal.js.
Key combination | Action |
---|---|
→, PAGE DOWN, SPACE | Next slide |
←, PAGE UP | Previous slide |
SHIFT + → | Last Slide |
SHIFT + ← | First slide |
B | Whiteboard |
W | Widget Board/White Screen |
C | Toggle Notes Canvas |
DEL | Clears Whiteboard/Notes Canvas |
S | Show Presenter Mode |
SHIFT + D | Toggle Dark Mode |
H | Goes to the Home Slide |
META + P | Show Print options window |
In order to use the 'Start Remote' feature, you'll need to download JB Slide Controls from the Apple App Store. Once you have this you'll be able to control the slides using the app from you Apple Watch.
DragonSlides and jamiebalfour.scot are copyright © Jamie B Balfour 2017 - 2024, 2010 - 2024. Content is copyright © Jamie B Balfour