Compare commits
31 Commits
a2ad584300
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e59c5c4f25 | ||
|
|
7374609c2d | ||
|
|
0b903ae50d | ||
|
|
364f6756c2 | ||
|
|
7c58a61426 | ||
|
|
22f7347a2a | ||
|
|
ffad8e4e61 | ||
|
|
4745524a5f | ||
|
|
26ea7aa8e8 | ||
|
|
0a497d0107 | ||
|
|
3dd0e1fc22 | ||
|
|
243c1e5398 | ||
|
|
c6d53b14dd | ||
|
|
74d73ee8b1 | ||
|
|
9649d56257 | ||
|
|
9e58bb20db | ||
|
|
4bdef9e16a | ||
|
|
6746995f55 | ||
|
|
13c7cac19f | ||
|
|
b9e47e15f6 | ||
|
|
d3d77666c9 | ||
|
|
919a33b5a3 | ||
|
|
3f1f4de7bf | ||
|
|
3468cd85fb | ||
|
|
de8dc92cd6 | ||
|
|
5cf07e5e31 | ||
|
|
f69edaaad4 | ||
|
|
8efcb22d1e | ||
|
|
6d01ba68c4 | ||
|
|
6e9b98354b | ||
|
|
f26fee2a03 |
@@ -1,3 +1,116 @@
|
||||
<<<<<<< HEAD
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" version="28.2.0">
|
||||
<diagram name="Page-1" id="MXtnp-5i5y2cCr6l2GsA">
|
||||
<mxGraphModel dx="1042" dy="534" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
<root>
|
||||
<mxCell id="0" />
|
||||
<mxCell id="1" parent="0" />
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=1;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-1" target="EjGk1gJt4pWiwggd2_OH-5">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="350" y="200" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-18" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=none;endFill=0;curved=1;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-1" target="EjGk1gJt4pWiwggd2_OH-17">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-19" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;dashed=1;curved=1;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-1" target="EjGk1gJt4pWiwggd2_OH-16">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-20" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=none;endFill=0;curved=1;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-1" target="EjGk1gJt4pWiwggd2_OH-15">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-29" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;dashed=1;endArrow=none;endFill=0;curved=1;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-1" target="EjGk1gJt4pWiwggd2_OH-28">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-1" value="Modem/Router combo" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="380" y="160" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-4" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0.49;exitY=0.933;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-2" target="EjGk1gJt4pWiwggd2_OH-1">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<Array as="points">
|
||||
<mxPoint x="420" y="75" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-2" value="Bell ISP (internet)" style="ellipse;shape=cloud;whiteSpace=wrap;html=1;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="360" width="120" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-14" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-5" target="EjGk1gJt4pWiwggd2_OH-13">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.5;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-5" target="EjGk1gJt4pWiwggd2_OH-21">
|
||||
<mxGeometry relative="1" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-5" value="" style="rhombus;whiteSpace=wrap;html=1;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="190" y="160" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-24" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;exitX=0;exitY=0.5;exitDx=0;exitDy=0;" edge="1" parent="1" source="EjGk1gJt4pWiwggd2_OH-5" target="EjGk1gJt4pWiwggd2_OH-22">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="180" y="200" as="sourcePoint" />
|
||||
<Array as="points">
|
||||
<mxPoint x="155" y="200" />
|
||||
<mxPoint x="155" y="170" />
|
||||
</Array>
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-27" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0.5;entryY=1;entryDx=0;entryDy=0;endArrow=none;endFill=0;" edge="1" parent="1" target="EjGk1gJt4pWiwggd2_OH-26">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="190" y="200" as="sourcePoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-12" value="Cisco Switch" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="200" y="185" width="60" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-13" value="Desktop PC" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="240" y="420" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-15" value="TV" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="680" y="320" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-16" value="iPhone" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="710" y="185" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-17" value="iPhone" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="700" y="30" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-21" value="Camera" style="triangle;whiteSpace=wrap;html=1;direction=north;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="160" y="10" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-22" value="Camera" style="triangle;whiteSpace=wrap;html=1;direction=north;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="140" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-26" value="Camera" style="triangle;whiteSpace=wrap;html=1;direction=north;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="70" y="280" width="80" height="60" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-28" value="Laptop" style="whiteSpace=wrap;html=1;aspect=fixed;rounded=0;" vertex="1" parent="1">
|
||||
<mxGeometry x="590" y="430" width="80" height="80" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-30" value="Legend" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" vertex="1" parent="1">
|
||||
<mxGeometry x="30" y="400" width="140" height="90" as="geometry">
|
||||
<mxRectangle x="30" y="400" width="60" height="30" as="alternateBounds" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-34" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;dashed=1;" edge="1" parent="EjGk1gJt4pWiwggd2_OH-30" source="EjGk1gJt4pWiwggd2_OH-31">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="190" y="45" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-31" value="Wireless connection" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EjGk1gJt4pWiwggd2_OH-30">
|
||||
<mxGeometry y="30" width="140" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-35" style="edgeStyle=orthogonalEdgeStyle;orthogonalLoop=1;jettySize=auto;html=1;endArrow=none;endFill=0;rounded=0;curved=0;" edge="1" parent="EjGk1gJt4pWiwggd2_OH-30" source="EjGk1gJt4pWiwggd2_OH-33">
|
||||
<mxGeometry relative="1" as="geometry">
|
||||
<mxPoint x="190" y="75" as="targetPoint" />
|
||||
</mxGeometry>
|
||||
</mxCell>
|
||||
<mxCell id="EjGk1gJt4pWiwggd2_OH-33" value="Wired connection" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="EjGk1gJt4pWiwggd2_OH-30">
|
||||
<mxGeometry y="60" width="140" height="30" as="geometry" />
|
||||
</mxCell>
|
||||
</root>
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
=======
|
||||
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/140.0.0.0 Safari/537.36" version="28.2.0">
|
||||
<diagram name="Page-1" id="MXtnp-5i5y2cCr6l2GsA">
|
||||
<mxGraphModel dx="1042" dy="534" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" math="0" shadow="0">
|
||||
@@ -109,3 +222,4 @@
|
||||
</mxGraphModel>
|
||||
</diagram>
|
||||
</mxfile>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
|
||||
@@ -1,3 +1,41 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>My First Sample Site</title>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Heading One</h1>
|
||||
<ul>
|
||||
<li><a href=#>Contact Us</a></li>
|
||||
<li><a href=#>Call Us</a></li>
|
||||
<li><a href=#>More Info</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Itaque quidem explicabo animi accusamus temporibus ex error odit porro dolore in quasi nulla <b>voluptatem consectetur labore, quis, autem, voluptates</b> id natus! Lorem ipsum dolor sit amet consectetur adipisicing elit. Iusto, nesciunt deleniti, exercitationem totam amet a laudantium ut tenetur itaque quos similique in molestiae eligendi ipsam voluptatibus repellendus vitae sequi consequatur.</p>
|
||||
<b><i>This is a smaller paragraph!</i></b>
|
||||
|
||||
<h2>Heading Two</h2>
|
||||
<p>Lorem ipsum dolor, sit amet consectetur adipisicing elit. Unde illo ratione culpa nisi. Repellat, at! Eaque quasi, sequi, quo exercitationem similique provident incidunt, temporibus nam repellendus dolores vero dolor sed? Lorem ipsum dolor, sit amet consectetur adipisicing elit. Corrupti deserunt quaerat quas, non ipsa pariatur? Nulla cum ullam, dolore autem repellat voluptatum est modi fuga a odit at repudiandae dolor!</p>
|
||||
<img src="img/brick.jpg" alt="A picture of bricks" height="150">
|
||||
<img src="img/rust.jpg" alt="A picture of rust" height="150">
|
||||
<img src="img/wood.jpg" alt="A picture of wood" height="150">
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora quidem rem, autem deserunt pariatur ex quos ab excepturi quasi odit veritatis labore vitae animi fugit dicta, totam commodi. Cumque, expedita! Lorem ipsum dolor sit amet consectetur adipisicing elit. Maiores cum illum, tempore nisi maxime est aut delectus exercitationem sapiente veritatis id vero enim, reiciendis blanditiis quis temporibus voluptate dolorum dignissimos?</p>
|
||||
<ol>
|
||||
<li>First item</li>
|
||||
<li>Second item</li>
|
||||
<li>Third item</li>
|
||||
<li>Fouth item</li>
|
||||
</ol>
|
||||
</body>
|
||||
|
||||
<footer>
|
||||
<hr>
|
||||
<p>© 2025 | IWD2-01 INFO-1252 Lab 1 Test Website | Made by Levi McLean</p>
|
||||
</footer>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -34,4 +72,5 @@
|
||||
<hr>
|
||||
<p>© 2025 | IWD2-01 INFO-1252 Lab 1 Test Website | Made by Levi McLean</p>
|
||||
</footer>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,26 @@
|
||||
<<<<<<< HEAD
|
||||
body {
|
||||
text-align: center;
|
||||
background: #333;
|
||||
color: white;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
ul li {
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
a {
|
||||
color: deepskyblue;
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
=======
|
||||
body {
|
||||
text-align: center;
|
||||
background: #333;
|
||||
@@ -19,4 +42,5 @@ a {
|
||||
color: deepskyblue;
|
||||
text-align: center;
|
||||
margin: auto;
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,37 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta lang="en-CA">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<title>About Page - Travel Spot</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img src="/img/logo.jpg" alt="Company logo">
|
||||
<ul class="mainNav">
|
||||
<li><a href="index.html">Home</a></li>
|
||||
<li><a href="about.html">About Us</a></li>
|
||||
<li><a href="contact.html">Contact Us</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h1>About the Travel Spot</h1>
|
||||
<img src="./img/paris.jpg" alt="The eiffel tower">
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente laborum non voluptatibus ad dignissimos culpa labore vitae quae nostrum in ullam officia, nobis quis tempora corporis repellendus suscipit quo nisi. Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam eum officia provident cumque rem earum perferendis similique expedita quos ipsa! Ipsum cumque illum eius reprehenderit harum minus, deserunt <b>iusto fugiat!</b></p>
|
||||
<h2>Satisfaction Guaranteed!</h2>
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Deleniti libero commodi, nesciunt sed non a necessitatibus iste illum architecto eum cumque quo nemo, praesentium magni vero facilis iusto. Quaerat, nulla! Lorem ipsum dolor sit amet consectetur adipisicing elit. Placeat eveniet dicta, similique facilis impedit corporis repellat aliquid autem veritatis eaque eos, velit cupiditate ratione enim vel dolorum, laborum ut. Ipsum.</p>
|
||||
<p>Four Reasons to travel with us</p>
|
||||
<ol>
|
||||
<li>customer service</li>
|
||||
<li>prices</li>
|
||||
<li>variety</li>
|
||||
<li>experience</li>
|
||||
</ol>
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -30,4 +64,5 @@
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,63 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta lang="en-CA">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<title>Contact Page - Travel Spot</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img src="/img/logo.jpg" alt="Company logo">
|
||||
<ul class="mainNav">
|
||||
<li><a href="index.html">Home</a></li>
|
||||
<li><a href="about.html">About Us</a></li>
|
||||
<li><a href="contact.html">Contact Us</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h1>Contact the Travel Spot</h1>
|
||||
<p>152 King Street <br> London, Ontario N6R 4T5
|
||||
<br>
|
||||
<b>tel: </b><a href="tel:5195559045">519 555-9045</a>
|
||||
<br>
|
||||
<b>email: </b><a href="mailto:info@travel.com">info@travel.com</a>
|
||||
</p>
|
||||
<h2>Special Prices</h2>
|
||||
<table class="priceTable">
|
||||
<caption style="caption-side: bottom; text-align: left;">
|
||||
<br>
|
||||
<b>Note: </b><p>Meals are not included.</p>
|
||||
</caption>
|
||||
<tr>
|
||||
<th>Destination</th>
|
||||
<th>1 Week</th>
|
||||
<th>2 Weeks</th>
|
||||
<th>3 Weeks</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Paris</th>
|
||||
<td>$850</td>
|
||||
<td>$1,250</td>
|
||||
<td>$1,990</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Italy</th>
|
||||
<td>$750</td>
|
||||
<td>$1,000</td>
|
||||
<td>$1,500</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Brazil</th>
|
||||
<td>$900</td>
|
||||
<td>$1,300</td>
|
||||
<td>$2,100</td>
|
||||
</tr>
|
||||
</table>
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -56,4 +116,5 @@
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,29 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta lang="en-CA">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
<title>Home Page - Travel Spot</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img src="/img/logo.jpg" alt="Company logo">
|
||||
<ul class="mainNav">
|
||||
<li><a href="index.html">Home</a></li>
|
||||
<li><a href="about.html">About Us</a></li>
|
||||
<li><a href="contact.html">Contact Us</a></li>
|
||||
</ul>
|
||||
<hr>
|
||||
<h1>Welcome to the Travel Spot</h1>
|
||||
<p>Lorem ipsum dolor sit amet consectetur, adipisicing elit. Nostrum autem odio voluptas similique quae quam totam, est sapiente neque omnis veniam pariatur sint, culpa mollitia, porro facilis deserunt eum dicta! Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque provident cum, est iusto, a suscipit beatae expedita voluptatem dignissimos harum porro sint eveniet tempore. Et itaque dolorum recusandae quis soluta. Lorem ipsum dolor sit amet consectetur adipisicing elit. Quas quidem voluptatibus amet, reiciendis sit eligendi nihil! Ducimus praesentium delectus at itaque quaerat blanditiis rem asperiores adipisci facilis aliquam? Error, libero!</p>
|
||||
<img src="./img/barbados.jpg" alt="A beach in Barbados">
|
||||
<p>Lorem ipsum dolor sit amet consectetur adipisicing elit. Sapiente laborum non voluptatibus ad dignissimos culpa labore vitae quae nostrum in ullam officia, nobis quis tempora corporis repellendus suscipit quo nisi. Lorem ipsum dolor sit amet consectetur adipisicing elit. Aliquam eum officia provident cumque rem earum perferendis similique expedita quos ipsa! Ipsum cumque illum eius reprehenderit harum minus, deserunt iusto fugiat!</p>
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -22,4 +48,5 @@
|
||||
<hr>
|
||||
<p>Copyright © 2022. Travel Spot.</p>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,34 @@
|
||||
<<<<<<< HEAD
|
||||
.mainNav {
|
||||
text-align: center;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
body {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
ul, ol {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.priceTable {
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
caption p {
|
||||
display: inline;
|
||||
}
|
||||
=======
|
||||
.mainNav {
|
||||
text-align: center;
|
||||
list-style: none;
|
||||
@@ -27,3 +58,4 @@ ul, ol {
|
||||
caption p {
|
||||
display: inline;
|
||||
}
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
|
||||
@@ -1,3 +1,119 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Registration - Travel Spot</title>
|
||||
<meta charset="UTF-8">
|
||||
<meta lang="EN">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<img src="img/logo.jpg" alt="Company logo">
|
||||
<hr>
|
||||
<h1>Sign Up</h1>
|
||||
<h2>Your next travel starts here!</h2>
|
||||
<p>Fill in the form below:</p>
|
||||
|
||||
<label for="regDate">Registration date:</label>
|
||||
<input type="datetime-local" id="regDate" name="regDate">
|
||||
<br><br>
|
||||
|
||||
<!--Personal Information form-->
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>Personal Information</legend>
|
||||
|
||||
<label for="name">Name:</label>
|
||||
<input type="text" id="name" name="name"><br>
|
||||
<label for="email">Email:</label>
|
||||
<input type="email" id="email" name="email"><br>
|
||||
<label for="telephone">Phone:</label>
|
||||
<input type="tel" id="telephone" name="telephone"><br>
|
||||
<label for="passport" name="passport">Passport:</label>
|
||||
<input type="file" id="passport" name="passport"><br>
|
||||
<label for="stress">What is your stress level?</label>
|
||||
<input type="range" id="stress" name="stress">
|
||||
</fieldset>
|
||||
</form><br>
|
||||
|
||||
<!--Travel Destination form-->
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>Travel Destination</legend>
|
||||
<p>Tell us where you want to go:</p>
|
||||
<label for="pplTravelling">How many people will be travelling?</label>
|
||||
<input type="text" id="pplTravelling" name="pplTravelling"><br>
|
||||
<label for="period">Preferred Travel Period:</label>
|
||||
<select id="period" name="period" required>
|
||||
<option value="select">-Select-</option>
|
||||
<option value="summer">Summer</option>
|
||||
<option value="winter">Winter</option>
|
||||
</select><br>
|
||||
<label for="destination">Destination:</label>
|
||||
<input type="text" id="destination" name="destination"><br>
|
||||
<label for="departDate">Date of Departure:</label>
|
||||
<input type="date" id="departDate" name="departDate"><br>
|
||||
<label for="returnDate">Date of Return:</label>
|
||||
<input type="date" id="returnDate" name="returnDate"><br>
|
||||
<label for="includeFlight">Include Flight</label>
|
||||
<input type="checkbox" id="includeFlight" name="includeFlight"><br>
|
||||
<label for="includeHotel">Include Hotel</label>
|
||||
<input type="checkbox" id="includeHotel" name="includeHotel"><br>
|
||||
<label for="includeMeals">Include Meals</label>
|
||||
<input type="checkbox" id="includeMeals" name="includeMeals"><br>
|
||||
</fieldset>
|
||||
</form><br>
|
||||
|
||||
<!--Travel Experience field-->
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>Travel Experience</legend>
|
||||
<p>Tell us about your last travel experience (leave this section empty if you have never travelled before):</p>
|
||||
<label for="lastDest">Last Destination:</label>
|
||||
<input type="text" id="lastDest" name="lastDest"><br>
|
||||
|
||||
<!--First radio button group-->
|
||||
<label>How do you rate the flight?</label>
|
||||
<input type="radio" id="fightRateGood" name="flightRateGood" value="Good">
|
||||
<label for="flightRateGood">Good</label>
|
||||
<input type="radio" id="fightRateNorm" name="flightRateNorm" value="Normal">
|
||||
<label for="flightRateNorm">Normal</label>
|
||||
<input type="radio" id="fightRateBad" name="flightRateBad" value="Bad">
|
||||
<label for="flightRateBad">Bad</label><br>
|
||||
|
||||
<!--Second radio button group-->
|
||||
<label>How do you rate the hotel?</label>
|
||||
<input type="radio" id="hotelRateGood" name="hotelRateGood" value="Good">
|
||||
<label for="hotelRateGood">Good</label>
|
||||
<input type="radio" id="hotelRateNorm" name="hotelRateNorm" value="Normal">
|
||||
<label for="hotelRateNorm">Normal</label>
|
||||
<input type="radio" id="hotelRateBad" name="hotelRateBad" value="Bad">
|
||||
<label for="hotelRateBad">Bad</label><br>
|
||||
|
||||
<!--Third radio button group-->
|
||||
<label>How do you rate the meal?</label>
|
||||
<input type="radio" id="mealRateGood" name="mealRateGood" value="Good">
|
||||
<label for="mealRateGood">Good</label>
|
||||
<input type="radio" id="mealRateNorm" name="mealRateNorm" value="Normal">
|
||||
<label for="mealRateNorm">Normal</label>
|
||||
<input type="radio" id="fightRateBad" name="mealRateBad" value="Bad">
|
||||
<label for="mealRateBad">Bad</label><br>
|
||||
|
||||
<label for="experienceText">Describe your experience:</label><br>
|
||||
<textarea id="experienceText" name="experienceText" cols="40" rows="5"></textarea>
|
||||
</fieldset>
|
||||
</form><br>
|
||||
|
||||
<button type="submit">Submit</button>
|
||||
<button type="reset">Reset</button>
|
||||
|
||||
<footer>
|
||||
<hr>
|
||||
<p>Copyright © 2025. Travel Spot.</p>
|
||||
</footer>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -112,4 +228,5 @@
|
||||
<p>Copyright © 2025. Travel Spot.</p>
|
||||
</footer>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,89 @@
|
||||
<<<<<<< HEAD
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 20px;
|
||||
background-color: #f9fafc;
|
||||
color: #333;
|
||||
}
|
||||
|
||||
img {
|
||||
display: block;
|
||||
margin: 0 auto 10px auto;
|
||||
border-radius: 8px;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
color: #2a6ebb;
|
||||
margin-bottom: 5px;
|
||||
}
|
||||
|
||||
h2 {
|
||||
text-align: center;
|
||||
color: #555;
|
||||
}
|
||||
|
||||
fieldset {
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 8px;
|
||||
padding: 15px;
|
||||
margin-bottom: 20px;
|
||||
background: #fff;
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
||||
}
|
||||
|
||||
legend {
|
||||
font-weight: bold;
|
||||
color: #2a6ebb;
|
||||
}
|
||||
|
||||
label {
|
||||
display: inline-block;
|
||||
width: 180px;
|
||||
margin: 6px 0;
|
||||
}
|
||||
|
||||
input, select, textarea {
|
||||
padding: 6px;
|
||||
margin: 4px 0;
|
||||
border: 1px solid #ccc;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
button {
|
||||
padding: 8px 16px;
|
||||
margin: 5px;
|
||||
border: none;
|
||||
border-radius: 6px;
|
||||
background-color: #2a6ebb;
|
||||
color: #fff;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background-color: #1d4f88;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin-top: 30px;
|
||||
font-size: 0.9em;
|
||||
color: #777;
|
||||
}
|
||||
|
||||
@media (max-width: 880px) {
|
||||
input[type="radio"] + label {
|
||||
display: inline-block;
|
||||
margin-right: 10px;
|
||||
width: auto;
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
input[type="radio"] {
|
||||
display: inline-block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
=======
|
||||
body {
|
||||
font-family: Arial, sans-serif;
|
||||
margin: 20px;
|
||||
@@ -82,4 +168,5 @@ footer {
|
||||
display: inline-block;
|
||||
margin-right: 4px;
|
||||
}
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,115 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
||||
<link href='https://fonts.googleapis.com/css?family=Dancing Script' rel='stylesheet'>
|
||||
<link rel="stylesheet" href="./styles/styles.css">
|
||||
<title>Sandy's Cooking Blog</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Header -->
|
||||
<header>
|
||||
<img class="logo" src="images/smileyface.png" alt="smily face" />
|
||||
<h1 class="main-heading">Sandy's Cooking Blog</h1>
|
||||
</header>
|
||||
|
||||
<!-- Main Menu-->
|
||||
<nav>
|
||||
<ul>
|
||||
<li><a href="#">Home</a></li>
|
||||
<li><a href="#">Categories</a></li>
|
||||
<li><a href="#">About Sandy</a></li>
|
||||
<li><a href="#">Recipe Index</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
|
||||
<!-- Main Page-->
|
||||
<main>
|
||||
<!-- Recipes -->
|
||||
<section>
|
||||
<div class="recipe-card">
|
||||
<h2>Dinner Party Ideas</h2>
|
||||
<div class="author">By: <strong>John</strong></div>
|
||||
<div class="publish-date">Jan 11, 2022</div>
|
||||
<img src="images/dinnerparty.jpg" alt="Dinner party food" />
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc
|
||||
mollis, nulla non elementum tincidunt, felis ligula sodales lectus,
|
||||
sit amet dignissim quam massa sit amet lorem. Aenean lorem risus,
|
||||
tempus nec, gravida eu.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="recipe-card">
|
||||
<h2>Weeknight Meals</h2>
|
||||
<div class="author">By: <strong>Mary</strong></div>
|
||||
<div class="publish-date">Jan 07, 2022</div>
|
||||
<img src="images/dinner.jpg" alt="Nice dinner" />
|
||||
<p>
|
||||
Donec cursus faucibus turpis. Quisque auctor est at magna. In
|
||||
sagittis quam ac ante. Etiam et erat. Morbi sem. Mauris faucibus
|
||||
elit eu est. Nulla wisi eros, vehicula et, congue quis, consectetuer
|
||||
non, leo. Phasellus suscipit felis non est.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div class="recipe-card">
|
||||
<h2>Superbowl Snacks</h2>
|
||||
<div class="author">By: <strong>Sandy</strong></div>
|
||||
<div class="publish-date">Jan 06, 2022</div>
|
||||
<img src="images/nachos.jpg" alt="Plate of nachos" />
|
||||
<p>
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Morbi condimentum, odio sit amet aliquet
|
||||
adipiscing, nunc odio fermentum tellus, tincidunt pulvinar leo purus
|
||||
quis libero. Vivamus quam.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- About -->
|
||||
<section class="about-sandy">
|
||||
<h2>About Sandy</h2>
|
||||
|
||||
<img src="images/smileyface.png" class="logo" alt="smiley face" />
|
||||
|
||||
<p>
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum
|
||||
gravida mattis molestie. Donec in urna ut dolor imperdiet faucibus.
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Sed luctus a mi et facilisis. Class aptent
|
||||
taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
||||
himenaeos. Ut condimentum purus eu luctus tincidunt. Maecenas
|
||||
elementum, augue at vulputate ornare, ipsum enim lacinia orci, id
|
||||
elementum velit enim gravida diam. Aliquam vitae pharetra ex. In hac
|
||||
habitasse platea dictumst. Curabitur vitae facilisis nulla. Morbi quis
|
||||
condimentum lorem. Fusce sit amet orci mauris. Donec fringilla lectus
|
||||
nec efficitur sagittis. Aliquam sed nunc ligula.
|
||||
</p>
|
||||
<p>
|
||||
Quisque tempus ornare est, eu scelerisque sem ultricies et. Sed sed
|
||||
interdum odio. Suspendisse id lacinia sem. Cras fermentum tortor sit
|
||||
amet mollis commodo. Morbi facilisis arcu a est dapibus, vitae laoreet
|
||||
sapien feugiat. Aenean vel viverra arcu, eu pulvinar nulla.
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Mauris id viverra leo, sed pellentesque est.
|
||||
Maecenas quis hendrerit dui, tincidunt maximus velit.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer>
|
||||
Copyright <strong>©</strong> 2025. Developed by
|
||||
<strong>Levi McLean</strong>.
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
|
||||
@@ -108,4 +220,5 @@
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,130 @@
|
||||
<<<<<<< HEAD
|
||||
/* Beginner elements */
|
||||
* {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
body {
|
||||
background: url(../images/squares_bg.png);
|
||||
font-family: Helvetica, sans-serif;
|
||||
font-size: 1rem;
|
||||
}
|
||||
|
||||
/* Header and logo */
|
||||
.logo {
|
||||
opacity: 30%;
|
||||
display: block;
|
||||
margin: 2rem auto;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
font-family: "Dancing Script", cursive;
|
||||
color: teal;
|
||||
font-size: 2rem;
|
||||
text-shadow: 2px 2px 4px grey;
|
||||
margin-left: 1.2rem;
|
||||
}
|
||||
|
||||
.main-heading {
|
||||
font-size: 2.2rem;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
/* Navbar styling */
|
||||
nav {
|
||||
background-color: white;
|
||||
border-top: 5px solid teal;
|
||||
border-bottom: 5px solid teal;
|
||||
margin: 2rem 0;
|
||||
}
|
||||
|
||||
ul,
|
||||
a {
|
||||
font-size: 1rem;
|
||||
text-decoration: none;
|
||||
list-style: none;
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 1.5rem 0;
|
||||
color: grey;
|
||||
font-weight: bold;
|
||||
font-family: Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
/* Recipe card styling */
|
||||
.recipe-card {
|
||||
margin: 2rem 1rem;
|
||||
font-size: 1rem;
|
||||
border: 2px solid grey;
|
||||
background-color: white;
|
||||
border-radius: 5px;
|
||||
box-shadow: 2px 2px 4px grey;
|
||||
}
|
||||
|
||||
.recipe-card img {
|
||||
display: block;
|
||||
margin: 1.5rem auto;
|
||||
border-radius: 60%;
|
||||
}
|
||||
|
||||
.recipe-card p {
|
||||
text-align: left;
|
||||
line-height: 25px;
|
||||
margin: 2rem;
|
||||
color: grey;
|
||||
font-weight: bold;
|
||||
font-family: Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.author {
|
||||
text-align: right;
|
||||
margin-right: 1rem;
|
||||
color: grey;
|
||||
}
|
||||
|
||||
.publish-date {
|
||||
text-align: right;
|
||||
color: rgba(75, 75, 75, 0.507);
|
||||
margin-right: 1rem;
|
||||
}
|
||||
|
||||
/* About section styling */
|
||||
.about-sandy {
|
||||
background-color: grey;
|
||||
background-image: url(../images/squares_bg.png);
|
||||
padding-bottom: 1rem;
|
||||
margin-bottom: 0.3rem;
|
||||
}
|
||||
|
||||
.about-sandy p {
|
||||
text-align: left;
|
||||
line-height: 1.6rem;
|
||||
margin: 2rem;
|
||||
color: lightgrey;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.about-sandy h2 {
|
||||
color: white;
|
||||
font-size: 3rem;
|
||||
text-shadow: 2px 2px 4px black;
|
||||
}
|
||||
|
||||
/* Footer styling */
|
||||
footer {
|
||||
background: teal;
|
||||
font-size: 1rem;
|
||||
color: lightgrey;
|
||||
padding: 2rem;
|
||||
text-align: center;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
|
||||
footer strong {
|
||||
color: white;
|
||||
=======
|
||||
/* Beginner elements */
|
||||
* {
|
||||
margin: 0;
|
||||
@@ -123,4 +250,5 @@ footer {
|
||||
|
||||
footer strong {
|
||||
color: white;
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,115 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Sandy's Cooking Blog</title>
|
||||
<link rel="stylesheet" href="styles/main.css" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
||||
<link
|
||||
href="https://fonts.googleapis.com/css2?family=Dancing+Script:wght@600&family=Roboto:wght@100;400;500;700&display=swap"
|
||||
rel="stylesheet" />
|
||||
<link rel="stylesheet" href="main.css" />
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<!-- Header -->
|
||||
<header class="header">
|
||||
<img class="header-logo" src="images/smileyface.png" />
|
||||
<h1 class="header-title">Sandy's Cooking Blog</h1>
|
||||
|
||||
<nav class="header-nav">
|
||||
<ul class="header-nav-list">
|
||||
<li class="header-nav-list-item"><a href="#">Home</a></li>
|
||||
<li class="header-nav-list-item"><a href="#">Categories</a></li>
|
||||
<li class="header-nav-list-item"><a href="#">About Sandy</a></li>
|
||||
<li class="header-nav-list-item"><a href="#">Recipe Index</a></li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<!-- Main Page-->
|
||||
<main>
|
||||
<!-- Recipes -->
|
||||
<section class="recipes">
|
||||
<article class="recipe">
|
||||
<h2 class="recipe-title">Dinner Party Ideas</h2>
|
||||
<div class="recipe-by">By: <strong>John</strong></div>
|
||||
<div class="recipe-date">Jan 11, 2022</div>
|
||||
<img class="recipe-image" src="images/dinnerparty.jpg" alt="dinner party food" />
|
||||
<p class="recipe-desc">
|
||||
Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nunc
|
||||
mollis, nulla non elementum tincidunt, felis ligula sodales lectus,
|
||||
sit amet dignissim quam massa sit amet lorem. Aenean lorem risus,
|
||||
tempus nec, gravida eu.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="recipe">
|
||||
<h2 class="recipe-title">Weeknight Meals</h2>
|
||||
<div class="recipe-by">By: <strong>Mary</strong></div>
|
||||
<div class="recipe-date">Jan 07, 2022</div>
|
||||
<img class="recipe-image" src="images/dinner.jpg" alt="nice dinner" />
|
||||
<p class="recipe-desc">
|
||||
Donec cursus faucibus turpis. Quisque auctor est at magna. In
|
||||
sagittis quam ac ante. Etiam et erat. Morbi sem. Mauris faucibus
|
||||
elit eu est. Nulla wisi eros, vehicula et, congue quis, consectetuer
|
||||
non, leo. Phasellus suscipit felis non est.
|
||||
</p>
|
||||
</article>
|
||||
|
||||
<article class="recipe">
|
||||
<h2 class="recipe-title">Superbowl Snacks</h2>
|
||||
<div class="recipe-by">By: <strong>Sandy</strong></div>
|
||||
<div class="recipe-date">Jan 06, 2022</div>
|
||||
<img class="recipe-image" src="images/nachos.jpg" alt="plate of nachos" />
|
||||
<p class="recipe-desc">
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Morbi condimentum, odio sit amet aliquet
|
||||
adipiscing, nunc odio fermentum tellus, tincidunt pulvinar leo purus
|
||||
quis libero. Vivamus quam.
|
||||
</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<!-- About -->
|
||||
<section class="about">
|
||||
<h2 class="about-title">About Sandy</h2>
|
||||
<img class="about-logo" src="images/smileyface.png" />
|
||||
<p class="about-text">
|
||||
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Vestibulum
|
||||
gravida mattis molestie. Donec in urna ut dolor imperdiet faucibus.
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Sed luctus a mi et facilisis. Class aptent
|
||||
taciti sociosqu ad litora torquent per conubia nostra, per inceptos
|
||||
himenaeos. Ut condimentum purus eu luctus tincidunt. Maecenas
|
||||
elementum, augue at vulputate ornare, ipsum enim lacinia orci, id
|
||||
elementum velit enim gravida diam. Aliquam vitae pharetra ex. In hac
|
||||
habitasse platea dictumst. Curabitur vitae facilisis nulla. Morbi quis
|
||||
condimentum lorem. Fusce sit amet orci mauris. Donec fringilla lectus
|
||||
nec efficitur sagittis. Aliquam sed nunc ligula.
|
||||
</p>
|
||||
<p class="about-text">
|
||||
Quisque tempus ornare est, eu scelerisque sem ultricies et. Sed sed
|
||||
interdum odio. Suspendisse id lacinia sem. Cras fermentum tortor sit
|
||||
amet mollis commodo. Morbi facilisis arcu a est dapibus, vitae laoreet
|
||||
sapien feugiat. Aenean vel viverra arcu, eu pulvinar nulla.
|
||||
Pellentesque habitant morbi tristique senectus et netus et malesuada
|
||||
fames ac turpis egestas. Mauris id viverra leo, sed pellentesque est.
|
||||
Maecenas quis hendrerit dui, tincidunt maximus velit.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
|
||||
<!-- Footer -->
|
||||
<footer class="footer">
|
||||
<p>Copyright <strong>©</strong> 2025.</p>
|
||||
<p>Developed by <strong class="footer-name">Levi McLean</strong>.</p>
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@@ -108,4 +220,5 @@
|
||||
</footer>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,307 @@
|
||||
<<<<<<< HEAD
|
||||
/* global settings */
|
||||
*,
|
||||
*::before,
|
||||
*::after {
|
||||
box-sizing: inherit;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
html {
|
||||
box-sizing: border-box;
|
||||
font-size: 62.5%;
|
||||
line-height: 1.6;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: "Roboto", sans-serif;
|
||||
background: url(../images/squares_bg.png);
|
||||
color: #686868;
|
||||
}
|
||||
|
||||
li {
|
||||
list-style-type: none;
|
||||
}
|
||||
|
||||
a {
|
||||
text-decoration: none;
|
||||
}
|
||||
|
||||
/* Header */
|
||||
.header-logo {
|
||||
display: block;
|
||||
margin: 2rem auto;
|
||||
opacity: 30%;
|
||||
width: 50%;
|
||||
}
|
||||
|
||||
.header-title {
|
||||
font-family: "Dancing script";
|
||||
font-size: 4.2rem;
|
||||
text-align: center;
|
||||
color: teal;
|
||||
}
|
||||
|
||||
.header-nav {
|
||||
background-color: #fff;
|
||||
text-align: center;
|
||||
border-top: 5px solid teal;
|
||||
border-bottom: 5px solid teal;
|
||||
padding: 0.4rem 0;
|
||||
margin-top: 2.4rem;
|
||||
}
|
||||
|
||||
.header-nav-list-item {
|
||||
margin: 0.8rem 0;
|
||||
}
|
||||
|
||||
.header-nav-list-item a:link,
|
||||
.header-nav-list-item a:visited {
|
||||
font-size: 2.4rem;
|
||||
color: #686868;
|
||||
}
|
||||
|
||||
.header-nav-list-item a:hover,
|
||||
.header-nav-list-item a:active {
|
||||
color: teal;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
/* Main */
|
||||
.recipes {
|
||||
margin-top: 2.4rem;
|
||||
}
|
||||
|
||||
.recipe {
|
||||
margin: 2rem 1rem;
|
||||
border: 1px solid grey;
|
||||
background-color: white;
|
||||
border-radius: 20px;
|
||||
padding: 2.4rem 1.2rem;
|
||||
}
|
||||
|
||||
.recipe:hover {
|
||||
box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.25);
|
||||
transform: translateY(-10px);
|
||||
/* we will learn this later. Don't worry about this line*/
|
||||
}
|
||||
|
||||
.recipe-title {
|
||||
font-family: "Dancing script";
|
||||
text-shadow: 2px 2px 2px rgba(0, 0, 0, 0.25);
|
||||
font-size: 3.6rem;
|
||||
color: teal;
|
||||
margin-bottom: 2.4rem;
|
||||
}
|
||||
|
||||
.recipe-by,
|
||||
.recipe-by strong,
|
||||
.recipe-date {
|
||||
text-align: right;
|
||||
font-size: 1.6rem;
|
||||
}
|
||||
|
||||
.recipe-image {
|
||||
width: 80%;
|
||||
border-radius: 50%;
|
||||
display: block;
|
||||
margin: 1rem auto;
|
||||
}
|
||||
|
||||
.recipe-desc {
|
||||
font-size: 1.8rem;
|
||||
margin-top: 2.4rem;
|
||||
padding: 0 1.2rem;
|
||||
}
|
||||
|
||||
/* About */
|
||||
.about {
|
||||
padding: 2.4rem;
|
||||
background-color: rgb(82, 82, 82);
|
||||
opacity: 70%;
|
||||
}
|
||||
|
||||
.about-title {
|
||||
font-family: "Dancing script";
|
||||
font-size: 4.8rem;
|
||||
color: #fff;
|
||||
margin-top: 2rem;
|
||||
text-shadow: 5px 5px 0 rgba(0, 0, 0, 0.75);
|
||||
}
|
||||
|
||||
.about-text {
|
||||
/* use white colour + opacity or grey font color to achieve this result*/
|
||||
color: #fff;
|
||||
opacity: 0.75;
|
||||
font-size: 1.8rem;
|
||||
margin: 2rem 0;
|
||||
text-shadow: 1px 1px 0 black;
|
||||
}
|
||||
|
||||
.about-logo {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
.footer {
|
||||
background-color: teal;
|
||||
color: rgb(207, 207, 207);
|
||||
text-align: center;
|
||||
padding: 3.6rem 0;
|
||||
font-size: 2.4rem;
|
||||
}
|
||||
|
||||
.footer-name {
|
||||
color: #fff;
|
||||
font-size: 2.4rem;
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 820px) {
|
||||
/* Header */
|
||||
.header {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.header-logo {
|
||||
position: absolute;
|
||||
left: 5%;
|
||||
top: 33%;
|
||||
transform: translateY(-50%);
|
||||
width: 25%;
|
||||
opacity: 0.3;
|
||||
z-index: 0;
|
||||
}
|
||||
|
||||
.header-title {
|
||||
font-size: 6rem;
|
||||
}
|
||||
|
||||
.header-nav {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
padding: 1rem 0;
|
||||
}
|
||||
|
||||
.header-nav-list {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
gap: 4rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
/* Recipe cards */
|
||||
.recipe {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.recipe-image {
|
||||
display: block;
|
||||
width: 30%;
|
||||
border-radius: 50%;
|
||||
margin: 0;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.recipe-title {
|
||||
font-size: 4.8rem;
|
||||
}
|
||||
|
||||
.recipe-desc {
|
||||
display: inline-block;
|
||||
width: 65%;
|
||||
margin-left: 1.5rem;
|
||||
margin-bottom: 1.5rem;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
/* About Sandy */
|
||||
.about-logo {
|
||||
display: inline;
|
||||
float: left;
|
||||
margin-top: 2rem;
|
||||
margin-right: 4rem;
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.about-text {
|
||||
display: inline;
|
||||
vertical-align: top;
|
||||
font-size: 1.8rem;
|
||||
}
|
||||
|
||||
/* Footer needs no changes */
|
||||
}
|
||||
|
||||
@media only screen and (min-width: 1200px) {
|
||||
/* Header */
|
||||
.header-logo {
|
||||
width: 10%;
|
||||
}
|
||||
|
||||
/* Recipe cards */
|
||||
.recipes {
|
||||
display: flex;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
.recipe-image {
|
||||
width: 100%;
|
||||
margin: auto;
|
||||
}
|
||||
|
||||
.recipe-title {
|
||||
font-size: 8rem;
|
||||
margin: 0;
|
||||
line-height: normal;
|
||||
}
|
||||
|
||||
.recipe-by {
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
.recipe-date {
|
||||
font-size: 2rem;
|
||||
}
|
||||
.recipe-desc {
|
||||
width: 95%;
|
||||
font-size: 2rem;
|
||||
}
|
||||
|
||||
/* About Sandy */
|
||||
.about-title {
|
||||
font-size: 8rem;
|
||||
}
|
||||
|
||||
.about-logo {
|
||||
width: 300px;
|
||||
}
|
||||
|
||||
.about-text {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
/* Footer */
|
||||
.footer {
|
||||
margin-top: 0.2rem;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 3.6rem 2rem;
|
||||
}
|
||||
|
||||
.footer p {
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.footer-name {
|
||||
float: none;
|
||||
}
|
||||
=======
|
||||
/* global settings */
|
||||
*,
|
||||
*::before,
|
||||
@@ -300,4 +604,5 @@ a {
|
||||
.footer-name {
|
||||
float: none;
|
||||
}
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
BIN
INFO-1252 (Front End Dev)/Labs/Lab-6.zip
Normal file
186
INFO-1252 (Front End Dev)/Labs/Lab-6/index.html
Normal file
@@ -0,0 +1,186 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="utf-8" lang="en">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<title>Lab 6</title>
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/css/bootstrap.min.css" rel="stylesheet"
|
||||
integrity="sha384-sRIl4kxILFvY47J16cr9ZwB07vP4J8+LH7qKQnuqkuIAvNWLzeN8tE5YBujZqJLB" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Lab 6</h1>
|
||||
<h2>Bootstrap Components</h2><br>
|
||||
<div class="container text-center">
|
||||
<div class="row align-items-start">
|
||||
<div class="col">
|
||||
<strong>Accordian</strong>
|
||||
<div class="accordion" id="accordionExample">
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseOne" aria-expanded="true" aria-controls="collapseOne">
|
||||
Accordion Item #1
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseOne" class="accordion-collapse collapse show"
|
||||
data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the first item’s accordion body.</strong> The base elements of the
|
||||
accordian
|
||||
was
|
||||
taken from the Bootstrap documentation.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
|
||||
Accordion Item #2
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseTwo" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the second item’s accordion body.</strong> I only changed the interior
|
||||
content
|
||||
of
|
||||
the accordian, although content isn't all that imporant.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="accordion-item">
|
||||
<h2 class="accordion-header">
|
||||
<button class="accordion-button collapsed" type="button" data-bs-toggle="collapse"
|
||||
data-bs-target="#collapseThree" aria-expanded="false" aria-controls="collapseThree">
|
||||
Accordion Item #3
|
||||
</button>
|
||||
</h2>
|
||||
<div id="collapseThree" class="accordion-collapse collapse" data-bs-parent="#accordionExample">
|
||||
<div class="accordion-body">
|
||||
<strong>This is the third item’s accordion body.</strong> It just saves a lot of time
|
||||
instead of
|
||||
writing out the code by hand to take the documentation examples.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><br>
|
||||
</div>
|
||||
<div class="col">
|
||||
<strong>Modal (Personal favourite)</strong><br>
|
||||
<button type="button" class="btn btn-primary" data-bs-toggle="modal" data-bs-target="#exampleModal">
|
||||
Launch demo modal
|
||||
</button>
|
||||
|
||||
<div class="modal fade" id="exampleModal" tabindex="-1" aria-labelledby="exampleModalLabel"
|
||||
aria-hidden="true">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<h1 class="modal-title fs-5" id="exampleModalLabel">Modal Demo</h1>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal"
|
||||
aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
Modal outline was also taken from the bootsrap documentation
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
<button type="button" class="btn btn-primary">Save changes</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div><br><br>
|
||||
</div>
|
||||
<div class="col">
|
||||
<strong>Card</strong>
|
||||
<div class="card">
|
||||
<img src="./synthwave.webp" class="card-img-top" alt="...">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Card Demo</h5>
|
||||
<p class="card-text">Just a simple card with the default image placeholder</p>
|
||||
<a href="#" class="btn btn-primary">Do Something</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Container Example</h2>
|
||||
<div class="container text-center">
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
Movie
|
||||
</div>
|
||||
<div class="col">
|
||||
Genre
|
||||
</div>
|
||||
<div class="col">
|
||||
Director
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
Kill Bill
|
||||
</div>
|
||||
<div class="col">
|
||||
Action
|
||||
</div>
|
||||
<div class="col">
|
||||
Quentin Tarantino
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
The Room
|
||||
</div>
|
||||
<div class="col">
|
||||
Romance
|
||||
</div>
|
||||
<div class="col">
|
||||
Tommy Wiseau
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col">
|
||||
Star Wars
|
||||
</div>
|
||||
<div class="col">
|
||||
Action
|
||||
</div>
|
||||
<div class="col">
|
||||
George Lucas
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<h2>Form Demo</h2>
|
||||
<form>
|
||||
<div class="mb-3">
|
||||
<label for="emailInput" class="form-label">Email Address</label>
|
||||
<input type="email" class="form-control" id="emailInput">
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="genderSelect" class="form-label">Gender</label>
|
||||
<select class="form-select" aria-label="Gender Selection">
|
||||
<option selected>Open this select menu</option>
|
||||
<option value="Male">Male</option>
|
||||
<option value="Female">Female</option>
|
||||
<option value="Other">Other</option>
|
||||
<option value="NotSay">Prefer not to say</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="ageSelect" class="form-label">Age</label>
|
||||
<input type="range" class="form-range" min="1" max="99" id="ageSelect">
|
||||
</div>
|
||||
<button type="button" class="btn btn-primary btn-lg">Submit</button>
|
||||
</form>
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.8/dist/js/bootstrap.bundle.min.js"
|
||||
integrity="sha384-FKyoEForCGlyvwx9Hj09JcYn3nv7wiPVlz7YYwJrWVcXK/BmnVDxM+D2scQbITxI"
|
||||
crossorigin="anonymous"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
||||
24
INFO-1252 (Front End Dev)/Labs/Lab-6/style.css
Normal file
@@ -0,0 +1,24 @@
|
||||
body {
|
||||
background-color: crimson;
|
||||
font-family: "Inter", sans-serif;
|
||||
padding: 20px;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
text-align: center;
|
||||
margin-bottom: 20px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
form {
|
||||
margin-top: 30px;
|
||||
background: #ffffff;
|
||||
padding: 25px;
|
||||
border-radius: 14px;
|
||||
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.10);
|
||||
}
|
||||
|
||||
label {
|
||||
font-weight: 600;
|
||||
}
|
||||
BIN
INFO-1252 (Front End Dev)/Labs/Lab-6/synthwave.webp
Normal file
|
After Width: | Height: | Size: 12 KiB |
BIN
INFO-1252 (Front End Dev)/Projects/Final Project.zip
Normal file
@@ -0,0 +1,58 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head lang="en">
|
||||
<title>Pet Showcase - Contact</title>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>Contact Page</h1>
|
||||
<small>Contact the owner of the page with questions or concerns below</small>
|
||||
|
||||
<!-- Nav that matches one from homepage-->
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<strong>Contact requests will be answered within ∞ business days</strong>
|
||||
|
||||
<!-- Form with 5 inputs and 2 buttons (assuming textarea counts as input)-->
|
||||
<form>
|
||||
<fieldset>
|
||||
<legend>Enter personal Information Below</legend>
|
||||
<label for="firstName">First Name:</label><br>
|
||||
<input type="text" name="firstName"><br>
|
||||
<label for="lastName">Last Name:</label><br>
|
||||
<input type="text" name="lastName"><br>
|
||||
<label for="email">Email:</label><br>
|
||||
<input type="email" name="email"><br>
|
||||
<label for="phone">Phone:</label><br>
|
||||
<input type="tel" name="phone"><br>
|
||||
<label for="message">Message:</label><br>
|
||||
<textarea name="message" rows="4" cols="50"></textarea><br>
|
||||
<button type="submit">Submit</button>
|
||||
<button type="reset">Reset</button>
|
||||
</fieldset>
|
||||
</form>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
<!-- Footer to complete semantic elements, same as homepage-->
|
||||
<footer>
|
||||
<p><strong>© 2025</strong> | Created by <strong>Levi McLean</strong></p>
|
||||
</footer>
|
||||
|
||||
</html>
|
||||
176
INFO-1252 (Front End Dev)/Projects/Final Project/css/style.css
Normal file
@@ -0,0 +1,176 @@
|
||||
/* Keyframe animation */
|
||||
@keyframes fadeIn {
|
||||
from {
|
||||
opacity: 0;
|
||||
transform: translateY(30px);
|
||||
}
|
||||
|
||||
to {
|
||||
opacity: 1;
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
/* Mobile design */
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background: #f8f9fa;
|
||||
color: #222;
|
||||
margin: 0;
|
||||
padding: 0 1rem;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2 {
|
||||
margin-top: 1rem;
|
||||
margin-bottom: 0.5rem;
|
||||
}
|
||||
|
||||
h3 {
|
||||
font-size: 1.6rem;
|
||||
letter-spacing: 0.05em;
|
||||
text-transform: uppercase;
|
||||
margin-bottom: 0.75rem;
|
||||
padding-bottom: 0.4rem;
|
||||
border-bottom: 3px solid #444;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
padding: 0;
|
||||
margin: 1rem 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
nav a {
|
||||
background: #2980b9;
|
||||
color: #fff;
|
||||
padding: 0.5rem;
|
||||
border-radius: 4px;
|
||||
text-align: center;
|
||||
text-decoration: none;
|
||||
font-weight: bold;
|
||||
transition: background 0.3s, transform 0.3s;
|
||||
}
|
||||
|
||||
nav a:hover {
|
||||
background: #1c5a85;
|
||||
transform: scale(1.07);
|
||||
}
|
||||
|
||||
section {
|
||||
background: #fff;
|
||||
margin: 1rem 0;
|
||||
padding: 1rem;
|
||||
border-radius: 8px;
|
||||
box-shadow: 0 2px 8px rgba(44, 62, 80, 0.05);
|
||||
animation: fadeIn 1s ease;
|
||||
}
|
||||
|
||||
section img {
|
||||
width: 100%;
|
||||
height: auto;
|
||||
border-radius: 8px;
|
||||
margin-bottom: 0.5rem;
|
||||
display: block;
|
||||
}
|
||||
|
||||
form {
|
||||
background: #fff;
|
||||
padding: 1rem;
|
||||
border-radius: 8px;
|
||||
margin: 1rem 0;
|
||||
box-shadow: 0 2px 8px rgba(44, 62, 80, 0.05);
|
||||
}
|
||||
|
||||
input,
|
||||
textarea {
|
||||
width: 100%;
|
||||
padding: 0.5rem;
|
||||
margin-bottom: 0.75rem;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
button {
|
||||
width: 48%;
|
||||
padding: 0.5rem;
|
||||
margin-bottom: 0.5rem;
|
||||
background: #2980b9;
|
||||
color: #fff;
|
||||
border: none;
|
||||
border-radius: 4px;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
button[type="reset"] {
|
||||
background: red;
|
||||
}
|
||||
|
||||
footer {
|
||||
text-align: center;
|
||||
margin: 2rem 0 1rem 0;
|
||||
color: #888;
|
||||
font-size: 0.95rem;
|
||||
}
|
||||
|
||||
.animal-grid {
|
||||
display: grid;
|
||||
grid-template-columns: 1fr;
|
||||
gap: 3rem;
|
||||
}
|
||||
|
||||
/* Layouts for larger screens */
|
||||
/* Tablet/Medium screen */
|
||||
@media (min-width: 600px) and (max-width: 899px) {
|
||||
body {
|
||||
padding: 0 2rem;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 1rem;
|
||||
}
|
||||
|
||||
section,
|
||||
form {
|
||||
max-width: 650px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Desktop/large Screen */
|
||||
@media (min-width: 900px) {
|
||||
body {
|
||||
padding: 0 4rem;
|
||||
}
|
||||
|
||||
nav ul {
|
||||
flex-direction: row;
|
||||
justify-content: center;
|
||||
gap: 2rem;
|
||||
}
|
||||
|
||||
section,
|
||||
form {
|
||||
max-width: 900px;
|
||||
margin-left: auto;
|
||||
margin-right: auto;
|
||||
}
|
||||
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
}
|
||||
|
||||
.animal-grid {
|
||||
grid-template-columns: repeat(2, 1fr);
|
||||
}
|
||||
}
|
||||
BIN
INFO-1252 (Front End Dev)/Projects/Final Project/img/Bo.jpeg
Normal file
|
After Width: | Height: | Size: 1.6 MiB |
BIN
INFO-1252 (Front End Dev)/Projects/Final Project/img/Frank.jpeg
Normal file
|
After Width: | Height: | Size: 3.3 MiB |
BIN
INFO-1252 (Front End Dev)/Projects/Final Project/img/Jax.jpeg
Normal file
|
After Width: | Height: | Size: 5.2 MiB |
BIN
INFO-1252 (Front End Dev)/Projects/Final Project/img/Mierda.jpeg
Normal file
|
After Width: | Height: | Size: 156 KiB |
BIN
INFO-1252 (Front End Dev)/Projects/Final Project/img/Rocco.jpeg
Normal file
|
After Width: | Height: | Size: 469 KiB |
127
INFO-1252 (Front End Dev)/Projects/Final Project/index.html
Normal file
@@ -0,0 +1,127 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head lang="en">
|
||||
<title>Pet Showcase - Home</title>
|
||||
<link rel="stylesheet" href="css/style.css">
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<header>
|
||||
<h1>Levi's Pet Showcase</h1>
|
||||
<small>A collection of pet images with facts about their personality</small>
|
||||
|
||||
<!-- Nav that will match accross all pages -->
|
||||
<nav>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="index.html">Home</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="contact.html">Contact</a>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</header>
|
||||
|
||||
<main>
|
||||
<h2>Welcome!</h2>
|
||||
<p>Below will be 5 short showcases for each of my pets (past and current) featuring pictures and a small
|
||||
description
|
||||
of their personalities</p>
|
||||
|
||||
<!-- 5 Section elements for my animals-->
|
||||
<div class="animal-grid">
|
||||
<section id="mierda">
|
||||
<h3>Mierda</h3>
|
||||
<img src="img/Mierda.jpeg" alt="picture of Mierda" width="600" height="1000">
|
||||
<p>Mierda is 5 years old as of writing which makes her the oldest of the animals</p>
|
||||
<p>Mierda likes:</p>
|
||||
<ul>
|
||||
<li>Sleeping with her head in a shoe</li>
|
||||
<li>Wet food</li>
|
||||
<li>Sleeping outside</li>
|
||||
<li>Playing with <a href="#frank">Frank</a></li>
|
||||
</ul>
|
||||
<p>Although she looks very sweet (which she can be), she also has a bit of an evil genius side, which my
|
||||
family
|
||||
loves to joke about</p>
|
||||
</section>
|
||||
|
||||
<section id="Frank">
|
||||
<h3>Frank</h3>
|
||||
<img src="img/Frank.jpeg" alt="picture of Frank" width="500" height="600">
|
||||
<p>Frank is 3 years old and came directly after Mierda</p>
|
||||
<p>Frank likes:</p>
|
||||
<ul>
|
||||
<li>Sleeping upside down</li>
|
||||
<li>Wet food</li>
|
||||
<li>Kibble</li>
|
||||
<li>Food that falls on the floor</li>
|
||||
</ul>
|
||||
<p>Frank LOVES food. We joke a lot about how he tends to beg like a dog, even sometimes sitting right
|
||||
next
|
||||
to <a href="#Bo">Bo</a> while he begs.</p>
|
||||
</section>
|
||||
|
||||
<section id="Rocco">
|
||||
<h3>Rocco</h3>
|
||||
<img src="img/Rocco.jpeg" alt="picture of Rocco" width="500" height="700">
|
||||
<p>Rocco is 3 years old and was adopted very shortly after Frank, their almost the same age</p>
|
||||
<p>Rocco likes:</p>
|
||||
<ul>
|
||||
<li>Cuddles in bed</li>
|
||||
<li>Sleeping in boxes</li>
|
||||
<li>Scratching the cat post</li>
|
||||
<li>Drinking tap water from the faucet</li>
|
||||
</ul>
|
||||
<p>Rocco is pretty quiet but he's got a lot of personality. He's the silliest of the animals and often
|
||||
even
|
||||
tends to slip and trip on himself. He's very easily startled too.</p>
|
||||
</section>
|
||||
|
||||
<section id="Bo">
|
||||
<h3>Bo</h3>
|
||||
<img src="img/Bo.jpeg" alt="picture of Bo" width="600" height="700">
|
||||
<p>Bo is 9 months old and is the newest addition to our family</p>
|
||||
<p>Bo likes:</p>
|
||||
<ul>
|
||||
<li>Jumping, a lot of jumping</li>
|
||||
<li>Walking with his backpack on</li>
|
||||
<li>Belly rubs</li>
|
||||
<li>Dried pigs ear treats (delicious, I know)</li>
|
||||
</ul>
|
||||
<p>Bo is still very young and figuring out his personality but he's very hyperactive and LOVES to jump
|
||||
off
|
||||
the
|
||||
back of the porch and up on us when we come home. He's a Boxer-Border Collie mix.</p>
|
||||
</section>
|
||||
|
||||
<section id="Jax">
|
||||
<h3>Jax</h3>
|
||||
<img src="img/Jax.jpeg" alt="picture of Jax" width="500" height="700">
|
||||
<p>Jax was 9 years old when he past, which was about a year ago now.</p>
|
||||
<p>Jax Liked:</p>
|
||||
<ul>
|
||||
<li>Barking, he loved the sound of his own voice</li>
|
||||
<li>The cats!</li>
|
||||
<li>The dog park</li>
|
||||
<li>Water, he was quite the swimmer</li>
|
||||
</ul>
|
||||
<p>Jax (or Jackie) was our first family pet, we love him and miss him but remember him everyday. Jax was
|
||||
a
|
||||
Great
|
||||
Pyranese mixed with a Shepherd breed of some sort. He had LOTS of fur and was very fluffy.</p>
|
||||
</section>
|
||||
</div>
|
||||
</main>
|
||||
</body>
|
||||
|
||||
<!-- Footer that will match accross all pages -->
|
||||
<footer>
|
||||
<p><strong>© 2025</strong> | Created by <strong>Levi McLean</strong></p>
|
||||
</footer>
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1 @@
|
||||
All images were taken by me and uploaded to my PC from my phone, only credit to give would be to me
|
||||
@@ -1,3 +1,39 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Lab 2</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Lab 2</h1>
|
||||
<script>
|
||||
/*
|
||||
* Name: Levi McLean
|
||||
* Project: Lab 1
|
||||
* Submission date: September 18th, 2025
|
||||
*/
|
||||
|
||||
var studentName; //unassigned variable
|
||||
do {
|
||||
studentName = prompt("Enter the student's name: "); //prompt for name, assign variable with value
|
||||
if (studentName === null || studentName.trim() === "") {
|
||||
alert("Please enter a student name");
|
||||
}
|
||||
} while (studentName === null || studentName.trim() === "");
|
||||
alert("Thank you for your entry!"); //Pop up message alert
|
||||
sessionStorage.setItem("Student Name", studentName);
|
||||
|
||||
const welcomeText = "Welcome to INFO-1272 Fall 2025 "; //set const welcomeText
|
||||
const nameText = `You are ${sessionStorage.getItem("Student Name")}`;
|
||||
document.write(welcomeText); //write const welcomeText
|
||||
document.write("<br>");
|
||||
document.write(nameText);
|
||||
</script>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@@ -32,4 +68,5 @@
|
||||
</script>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,85 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Lab 2</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Theme Park Tickets</h1>
|
||||
<script>
|
||||
// Constant values
|
||||
const CHILD_TICKET_PRICE = 9.99;
|
||||
const ADULT_TICKET_PRICE = 19.99;
|
||||
const SENIOR_TICKET_PRICE = 14.99;
|
||||
const HST_TAX = 0.13;
|
||||
|
||||
// Unassigned for now, assign later
|
||||
var ticketType;
|
||||
var ticketPrice;
|
||||
var userAge;
|
||||
var firstName;
|
||||
var lastName;
|
||||
var email;
|
||||
var phone;
|
||||
var tax;
|
||||
var total;
|
||||
var freeRides;
|
||||
|
||||
// Ask for user details
|
||||
firstName = prompt("First Name:");
|
||||
lastName = prompt("Last Name:");
|
||||
email = prompt("Email:");
|
||||
phone = prompt("Phone:");
|
||||
userAge = prompt("Enter your age:");
|
||||
|
||||
// Determine ticket price
|
||||
if (userAge < 12) {
|
||||
ticketPrice = CHILD_TICKET_PRICE;
|
||||
ticketType = "Child";
|
||||
} else if (userAge <= 59) {
|
||||
ticketPrice = ADULT_TICKET_PRICE;
|
||||
ticketType = "Adult";
|
||||
} else {
|
||||
ticketPrice = SENIOR_TICKET_PRICE;
|
||||
ticketType = "Senior";
|
||||
}
|
||||
|
||||
// Determine free ride coupons
|
||||
if (ticketType === "Child") {
|
||||
freeRides = 0;
|
||||
} else if (ticketType === "Adult") {
|
||||
freeRides = 2;
|
||||
} else {
|
||||
freeRides = 1;
|
||||
}
|
||||
|
||||
// Caluclate tax and total
|
||||
tax = ticketPrice * HST_TAX;
|
||||
total = ticketPrice + tax;
|
||||
|
||||
// Display to console
|
||||
console.log("==========================================");
|
||||
console.log(" Theme Park Ticket Receipt ");
|
||||
console.log("==========================================");
|
||||
console.log("Customer Name: ", firstName, lastName);
|
||||
console.log("Email: ", email);
|
||||
console.log("Phone: ", phone);
|
||||
console.log("------------------------------------------");
|
||||
console.log("Ticket Type: ", ticketType);
|
||||
console.log("Base Price: $", ticketPrice.toFixed(2));
|
||||
console.log("Tax (13%): $", tax.toFixed(2));
|
||||
console.log("TOTAL: $", total.toFixed(2));
|
||||
console.log("------------------------------------------");
|
||||
console.log("Free Ride Coupons Earned: ", freeRides);
|
||||
console.log("==========================================");
|
||||
console.log(" Have a fun and safe day at the park! ");
|
||||
console.log("==========================================");
|
||||
</script>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@@ -78,4 +160,5 @@
|
||||
</script>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,65 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Lab 3</title>
|
||||
<meta charset="UTF-8">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Lab 3</h1>
|
||||
<script>
|
||||
/*
|
||||
* I have decided to declare my fortune messages in order of
|
||||
* most-to-least positive
|
||||
*/
|
||||
var fortune1 = "You will have a great day";
|
||||
var fortune2 = "Success if around the corner";
|
||||
var fortune3 = "Happiness comes from within";
|
||||
var fortune4 = "Today will be okay";
|
||||
var fortune5 = "Keep an eye on the details";
|
||||
var fortune6 = "Patience will be tested";
|
||||
var fortune7 = "You will step on LEGO soon";
|
||||
var fortune8 = "Beware of pigeons, they have attitude";
|
||||
var fortune9 = "Your WIFI will mysteriously stop working";
|
||||
|
||||
// Prompt user for numCookies
|
||||
var numCookies = window.prompt("How many cookies do you want to open?");
|
||||
|
||||
// Loop starting at 1, stoping at numCookies
|
||||
for (var i = 1; i <=numCookies; i++) {
|
||||
|
||||
// Generate random number from 1 - 9 inclusive
|
||||
var randNum = Math.floor(Math.random() * 9) + 1;
|
||||
|
||||
// Assign messge and cateogry to blank for now
|
||||
var message = ""
|
||||
var category = ""
|
||||
|
||||
// Determine message and category from randNum
|
||||
if (randNum <= 3) {
|
||||
if (randNum === 1) message = fortune1;
|
||||
else if (randNum === 2) message = fortune2;
|
||||
else message = fortune3;
|
||||
category = "Positive"; // Positive if 1-3
|
||||
} else if (randNum <= 6) {
|
||||
if (randNum === 4) message = fortune4;
|
||||
else if (randNum === 5) message = fortune5;
|
||||
else message = fortune6;
|
||||
category = "Neutral"; // Neutral if 4-6
|
||||
} else {
|
||||
if (randNum === 7) message = fortune7;
|
||||
else if (randNum === 8) message = fortune8;
|
||||
else message = fortune9;
|
||||
category = "Funny" // Funny if 7-9
|
||||
}
|
||||
|
||||
// Display fortune cookie details
|
||||
console.log("Cookie #" + i + "\nMessage: " + message + "\nCategory: " + category);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -58,4 +120,5 @@
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,97 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Lab 5</title>
|
||||
<meta charset="utf-8" lang="en">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Lab 5</h1>
|
||||
<script>
|
||||
// Get number of students in class
|
||||
var numStudents = parseInt(window.prompt("How many students are in the class?"));
|
||||
var studentNames = [];
|
||||
var studentGrades = [];
|
||||
|
||||
// Run grade analytics once so theres something to display
|
||||
gradeAnalyzer();
|
||||
calculateAverage(studentGrades);
|
||||
findMinMax(studentGrades);
|
||||
|
||||
// Ask user if they want to review the results
|
||||
do {
|
||||
displayResults();
|
||||
var viewAgain = window.confirm("Would you like to view the results again?");
|
||||
} while (viewAgain);
|
||||
|
||||
// Thank user and end loop
|
||||
alert("Thank you for using the Grade Analyzer!");
|
||||
|
||||
// Function Definitions from here on
|
||||
|
||||
// Gets names, grades and inserts into respective arrays
|
||||
function gradeAnalyzer() {
|
||||
for (var i = 0; i <= numStudents - 1; i++) {
|
||||
var studentName = window.prompt("Enter students name:");
|
||||
var studentGrade = parseFloat(window.prompt("Enter student grade:"));
|
||||
if (studentGrade > 0 && studentGrade <= 100) {
|
||||
studentNames.push(studentName);
|
||||
studentGrades.push(studentGrade);
|
||||
} else {
|
||||
alert("Invalid grade entered, skipping entry");
|
||||
}
|
||||
console.log("Student " + (i + 1) + ": " + studentName + " - Grade: " + studentGrade);
|
||||
}
|
||||
}
|
||||
|
||||
// Calculates the average of a given array
|
||||
function calculateAverage(arr) {
|
||||
var totalGrades = 0;
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
totalGrades += arr[i];
|
||||
}
|
||||
var average = totalGrades / arr.length;
|
||||
console.log("Class average: " + average.toFixed(2));
|
||||
}
|
||||
|
||||
// Finds the minimum and maximum value of an array by looping through it
|
||||
function findMinMax(arr) {
|
||||
if (arr.length === 0) {
|
||||
return
|
||||
}
|
||||
|
||||
var min = arr[0];
|
||||
var max = arr[0];
|
||||
|
||||
for (var i = 1; i < arr.length; i++) {
|
||||
var grade = arr[i];
|
||||
if (grade < min) {
|
||||
min = grade;
|
||||
}
|
||||
if (grade > max) {
|
||||
max = grade;
|
||||
}
|
||||
}
|
||||
|
||||
console.log("Min: " + min + " Max: " + max);
|
||||
}
|
||||
|
||||
// Helper function to display results cleanly
|
||||
function displayResults() {
|
||||
console.clear();
|
||||
console.log("Student List:");
|
||||
for (var i = 0; i < studentNames.length; i++) {
|
||||
console.log("Student " + i + ": " + studentNames[i] + " Grade: " + studentGrades[i]);
|
||||
}
|
||||
calculateAverage(studentGrades);
|
||||
findMinMax(studentGrades);
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@@ -90,4 +184,5 @@
|
||||
</script>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,134 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Levi McLean Midterm Part B</title>
|
||||
<meta charset="utf-8" lang="en-us">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Levi McLean Midterm Part B</h1>
|
||||
<script>
|
||||
const TAX_RATE = 0.13;
|
||||
const DISCOUNT_RATE = 0.1;
|
||||
|
||||
var item1 = {
|
||||
name: "apple",
|
||||
price: 1.1,
|
||||
qty: 4
|
||||
};
|
||||
|
||||
var item2 = {
|
||||
name: "banana",
|
||||
price: 0.59,
|
||||
qty: 2
|
||||
};
|
||||
|
||||
var item3 = {
|
||||
name: "pear",
|
||||
price: 1.25,
|
||||
qty: 6
|
||||
};
|
||||
|
||||
var item4 = {
|
||||
name: "grapes",
|
||||
price: 2.25,
|
||||
qty: 8
|
||||
};
|
||||
|
||||
var item5 = {
|
||||
name: "kiwi",
|
||||
price: 3,
|
||||
qty: 1
|
||||
};
|
||||
|
||||
var cart = [item1, item2, item3, item4, item5];
|
||||
|
||||
function searchItem() {
|
||||
var itemName = window.prompt("Enter an item name: ").toLowerCase();
|
||||
var foundItem;
|
||||
|
||||
if (itemName == null) {
|
||||
window.alert("Item name cannot be null.");
|
||||
}
|
||||
|
||||
for (var i=0; i < cart.length; i++) {
|
||||
if (cart[i].name === itemName) {
|
||||
window.alert("Item(s) found.");
|
||||
foundItem = cart[i];
|
||||
return foundItem;
|
||||
}
|
||||
}
|
||||
window.alert("Item(s) not found.");
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function updateItemQuantity() {
|
||||
var updateItem = window.prompt("Enter item name to update: ").toLowerCase();
|
||||
|
||||
if (updateItem == null) {
|
||||
window.alert("Invalid item name.");
|
||||
}
|
||||
|
||||
for (var i=0; i < cart.length; i++) {
|
||||
if (cart[i].name === updateItem) {
|
||||
var updateQty = parseInt(window.prompt("How many items do we add? "), 10);
|
||||
cart[i].qty += updateQty;
|
||||
console.log(cart);
|
||||
return updateItem;
|
||||
}
|
||||
}
|
||||
window.alert("Item does not exist in cart.");
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function clearCart() {
|
||||
for (var i = 0; i < cart.length; i++) {
|
||||
cart[i].name = "";
|
||||
cart[i].qty = 0;
|
||||
}
|
||||
console.log(cart);
|
||||
window.alert("Cart has been cleared!");
|
||||
}
|
||||
|
||||
function calulateFinalPriceWithDiscount() {
|
||||
var subtotal = 0;
|
||||
for (var i = 0; i < cart.length; i++) {
|
||||
subtotal += cart[i].price * cart[i].qty;
|
||||
}
|
||||
var tax = subtotal * TAX_RATE;
|
||||
var discount = subtotal * DISCOUNT_RATE;
|
||||
var total = subtotal - discount + tax;
|
||||
window.alert(
|
||||
"Subtotal: $" + subtotal.toFixed(2) + "\n" +
|
||||
"Tax: $" + tax.toFixed(2) + "\n" +
|
||||
"Discount: $" + discount.toFixed(2) + "\n" +
|
||||
"Total: $" + total.toFixed(2)
|
||||
);
|
||||
}
|
||||
|
||||
var notDone = true;
|
||||
while(notDone === true) {
|
||||
var userChoice = window.prompt("Please make a selection (s)earch, (u)pdate, (c)lear, (d)iscount: ").toLowerCase();
|
||||
if (userChoice === "s") {
|
||||
searchItem();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "u") {
|
||||
updateItemQuantity();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "c") {
|
||||
clearCart();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "d") {
|
||||
calulateFinalPriceWithDiscount();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else {
|
||||
window.alert("Invalid selection, try again.");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -127,4 +258,5 @@
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,142 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Levi McLean Midterm Part B</title>
|
||||
<meta charset="utf-8" lang="en-us">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Levi McLean Midterm Part B</h1>
|
||||
<script>
|
||||
const TAX_RATE = 0.13;
|
||||
const DISCOUNT_RATE = 0.1;
|
||||
|
||||
var item1 = {
|
||||
name: "apple",
|
||||
price: 1.1,
|
||||
qty: 4
|
||||
};
|
||||
|
||||
var item2 = {
|
||||
name: "banana",
|
||||
price: 0.59,
|
||||
qty: 2
|
||||
};
|
||||
|
||||
var item3 = {
|
||||
name: "pear",
|
||||
price: 1.25,
|
||||
qty: 6
|
||||
};
|
||||
|
||||
var item4 = {
|
||||
name: "grapes",
|
||||
price: 2.25,
|
||||
qty: 8
|
||||
};
|
||||
|
||||
var item5 = {
|
||||
name: "kiwi",
|
||||
price: 3,
|
||||
qty: 1
|
||||
};
|
||||
|
||||
var cart = [item1, item2, item3, item4, item5];
|
||||
|
||||
function searchItem() {
|
||||
var itemName = window.prompt("Enter an item name: ").toLowerCase();
|
||||
var foundItem;
|
||||
|
||||
if (itemName == null) {
|
||||
window.alert("Item name cannot be null.");
|
||||
}
|
||||
|
||||
for (var i=0; i <= cart.length; i++) {
|
||||
if (cart[i].name === itemName) {
|
||||
window.alert("Item(s) found.");
|
||||
foundItem = cart[i];
|
||||
return foundItem;
|
||||
}
|
||||
}
|
||||
window.alert("Item(s) not found.");
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function updateItemQuantity() {
|
||||
var updateItem = window.prompt("Enter item name to update: ").toLowerCase();
|
||||
|
||||
if (updateItem == null) {
|
||||
window.alert("Invalid item name.");
|
||||
}
|
||||
|
||||
for (var i=0; i <= cart.length; i++) {
|
||||
if (cart[i].name === updateItem) {
|
||||
var updateQty = parseInt(window.prompt("How many items do we add? "), 10);
|
||||
cart[i].qty += updateQty;
|
||||
console.log(cart);
|
||||
return updateItem;
|
||||
}
|
||||
window.alert("Item does not exist in cart.");
|
||||
return undefined;
|
||||
}
|
||||
}
|
||||
|
||||
function clearCart() {
|
||||
cart[0].name = "";
|
||||
cart[0].qty = 0;
|
||||
cart[1].name = "";
|
||||
cart[1].qty = 0;
|
||||
cart[2].name = "";
|
||||
cart[2].qty = 0;
|
||||
cart[3].name = "";
|
||||
cart[3].qty = 0;
|
||||
cart[4].name = "";
|
||||
cart[4].qty = 0;
|
||||
console.log(cart);
|
||||
window.alert("Cart has been cleared!");
|
||||
}
|
||||
|
||||
function calulateFinalPriceWithDiscount() {
|
||||
var subtotal = 0;
|
||||
var tax = 0;
|
||||
var total = 0;
|
||||
// for (var i = 0; i <= cart.length; i++) {
|
||||
// subtotal += cart[i].price;
|
||||
// }
|
||||
subtotal += cart[0].price;
|
||||
subtotal += cart[1].price;
|
||||
subtotal += cart[2].price;
|
||||
subtotal += cart[3].price;
|
||||
subtotal += cart[4].price;
|
||||
tax = subtotal * TAX_RATE;
|
||||
discount = subtotal * DISCOUNT_RATE;
|
||||
total = subtotal - discount + tax;
|
||||
window.alert("Subtotal: $" + subtotal + " Tax: $" + tax + " Total: $" + total);
|
||||
}
|
||||
|
||||
var notDone = true;
|
||||
while(notDone === true) {
|
||||
var userChoice = window.prompt("Please make a selection (s)earch, (u)pdate, (c)lear, (d)iscount: ").toLowerCase();
|
||||
if (userChoice === "s") {
|
||||
searchItem();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "u") {
|
||||
updateItemQuantity();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "c") {
|
||||
clearCart();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else if (userChoice === "d") {
|
||||
calulateFinalPriceWithDiscount();
|
||||
notDone = window.confirm("Do you wish to continue?");
|
||||
} else {
|
||||
window.alert("Invalid selection, try again.");
|
||||
}
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -135,4 +274,5 @@
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,180 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<title>Midterm Study</title>
|
||||
<meta charset="utf-8" lang="en-us">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Midterm Study</h1>
|
||||
<h2>Introduction to Web Pages</h2>
|
||||
<ol>
|
||||
<li>A web page is a container for the following three technologies. Describe the purpose of each for a web page:
|
||||
</li>
|
||||
<ul>
|
||||
<li>HTML</li>
|
||||
<li>CSS</li>
|
||||
<li>JavaScript</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>HTML is used for defining web elements and the rough layout of a website</li>
|
||||
<li>CSS is used to style the default HTML elements</li>
|
||||
<li>JavaScript is used for data input, manipulation and other logical components</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<h2>Introduction to javascript</h2>
|
||||
<ol>
|
||||
<li>Browser pop-up dialogue box functions</li>
|
||||
<ul>
|
||||
<li>alert()</li>
|
||||
<li>prompt()</li>
|
||||
<li>confirm()</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>Reload webpage to see examples</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<h2>Data Types and Variables</h2>
|
||||
<ol>
|
||||
<li>Name JavaScript's three data types. Describe the types of data they store</li>
|
||||
<li>JavaScript is a weakly-typed language. Describe what this means.</li>
|
||||
<li>What are the naming rules for a variables name? What are naming conventions?</li>
|
||||
<li>What is a constant in JavaScript? Describe how you would declare a JavaScript constant.</li>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ol>
|
||||
<li>Number, String and Boolean</li>
|
||||
<li>weakly-typed language implies that data types do not need to be defined at initialization, the compiler will
|
||||
decide, cast and convert the data type unless explicitly cast</li>
|
||||
<li>A naming convention is a recommended way of naming variables to ensure readability and organize code.
|
||||
JavaScript uses camelCase for variables and classes and UPPER_SNAKE_CASE for constants</li>
|
||||
<code>
|
||||
let customerAge = 23;<br>
|
||||
const ONT_TAX_RATE = 0.13;
|
||||
</code>
|
||||
<li>A constant is a variable whose value cannot be changed once initialized, making it constant. To define a
|
||||
constant, use the "const" keyword.</li>
|
||||
</ol>
|
||||
<hr>
|
||||
|
||||
<h2>Operators</h2>
|
||||
<ol>
|
||||
<li>Explain the following binary operators: + - * / %</li>
|
||||
<li>Explain the multiple uses of the + operator.</li>
|
||||
<li>Describe how the increment/decrement operators (++ and --) work.</li>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ol>
|
||||
<li>The + operator is used to get the sum, the - operator is to get the difference, the * operator multiplies,
|
||||
the / operator divides and the % (modulus) operator determines if two numbers divided have a remainder and
|
||||
how much of one</li>
|
||||
<li>The + operator can be used to add two numbers together to find their sum, or you can use it to concatenate
|
||||
multiple Strings together.</li>
|
||||
<li>The ++ (increment) operator is used to increase the value of a variable by exactly one. The -- (decrement)
|
||||
operator is used to decrease the value of a variable by exactly 1.</li>
|
||||
</ol>
|
||||
<hr>
|
||||
|
||||
<h2>The JavaScript Math object</h2>
|
||||
<ol>
|
||||
<li>Describe the operation and the return for the following Math methods:</li>
|
||||
<ul>
|
||||
<li>Math.PI</li>
|
||||
<li>Math.abs(x)</li>
|
||||
<li>Math.pow(x,2)</li>
|
||||
<li>Math.round(x)</li>
|
||||
<li>Math.ceil(x)</li>
|
||||
<li>Math.floor(x)</li>
|
||||
<li>Math.trunc(x)</li>
|
||||
<li>Math.random()</li>
|
||||
<li>Math.min(x,y)</li>
|
||||
<li>Math.max(x,y)</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>Math.PI is a constant value for PI</li>
|
||||
<li>Math.abs(x) returns the absolute value of X (makes a negative positive)</li>
|
||||
<li>Math.pow(x,2) returns the value of x to the power of y (in this case 2)</li>
|
||||
<li>Math.round(x) returns x rounded to the nearest whole. Below 0.5 is rounded down, above 0.5 is rouded up.
|
||||
</li>
|
||||
<li>Math.ceil(x) returns the "ceiling" of x, which is the next highest whole integer.</li>
|
||||
<li>Math.floor(x) returns the "floor" of x, which is the next lowest whole integer.</li>
|
||||
<li>Math.trunc(x) returns x truncated, which means it cuts off the decimal places regardless of what they are.
|
||||
</li>
|
||||
<li>Math.random() returns a random number between 0 and 1, can be manipulated to return in between any range
|
||||
</li>
|
||||
<li>Math.min(x,y) returns the minimum of two numbers. The smaller of the two</li>
|
||||
<li>Math.max(x,y) returns the maximum of two numbers. The larger of the two</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<h2>JavaScript Number Methods</h2>
|
||||
<ol>
|
||||
<li>Describe the operation and the return for the following Number methods:</li>
|
||||
<ul>
|
||||
<li>toFixed()</li>
|
||||
<li>toPrecision()</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>toFixed() returns x but at a fixed number of decimal places, defined by y</li>
|
||||
<li>toPrecision() returns x but at a fixed number of significant digits. This means it may round deicimal places
|
||||
before dropping them.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<h2>JavaScript Global Functions</h2>
|
||||
<ol>
|
||||
<li>Describe the operation and the return for the following global functions:</li>
|
||||
<ul>
|
||||
<li>parseInt(number)</li>
|
||||
<li>parseFloat(number)</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>parseInt(number) takes a string as input and returns the first integer in the string. Can also accept a
|
||||
radix option</li>
|
||||
<li>parseFloat(number) takes a string as input and returns the first float value in the string.</li>
|
||||
</ul>
|
||||
<hr>
|
||||
|
||||
<h2>JavaScript String Methods</h2>
|
||||
<ol>
|
||||
<li>Describe the operation and the return for the following String methods.</li>
|
||||
<ul>
|
||||
<li>length</li>
|
||||
<li>toLowerCase()</li>
|
||||
<li>toUpperCase()</li>
|
||||
<li>charAt()</li>
|
||||
</ul>
|
||||
</ol>
|
||||
<p>Answers:</p>
|
||||
<ul>
|
||||
<li>length gets the character count of a string including spaces</li>
|
||||
<li>toLowerCase() turns all uppercase letters to lowercase letters</li>
|
||||
<li>toUpperCase() turns all lowercase letters to uppercase letters</li>
|
||||
<li>chatAt() takes a number for the index of the word to search through and returns the character at that index.
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<h2>Playground</h2>
|
||||
<p>Interactive JavaScript follows</p>
|
||||
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
@@ -173,4 +350,5 @@
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,194 @@
|
||||
<<<<<<< HEAD
|
||||
// for (var i = 1; i < 10; i++) {
|
||||
// console.log("Ran " + i + " time(s).")
|
||||
// };
|
||||
|
||||
// console.log(window.confirm("Feel prepared?")); // true or false
|
||||
|
||||
// var question = ("50" === 50);
|
||||
// console.log(question);
|
||||
|
||||
// var question2 = (true && false);
|
||||
// console.log(question2);
|
||||
|
||||
// var question3 = (true || false);
|
||||
// console.log(question3);
|
||||
|
||||
// // VAR price = 35.6; <-- WRONG
|
||||
// var price = 35.6; // <-- RIGHT
|
||||
|
||||
// var city = "London";
|
||||
|
||||
// if (city.toLowerCase() === "london") {
|
||||
// console.log("I live there too!");
|
||||
// } else {
|
||||
// console.log("I dont know where that is.")
|
||||
// }
|
||||
|
||||
// var userName = window.prompt("Please enter your name:");
|
||||
// greetUser(userName);
|
||||
|
||||
// var radius = window.prompt("Please enter circle radius:");
|
||||
// calcCirc(radius);
|
||||
|
||||
// var testNum = window.prompt("Number to test for even:");
|
||||
// isEven(testNum);
|
||||
|
||||
// function greetUser(userName) {
|
||||
// alert("Hello " + userName + " welcome to the page");
|
||||
// }
|
||||
|
||||
// function calcCirc(radius) {
|
||||
// var Circ = ((2 * Math.PI) * radius).toFixed(2);
|
||||
// alert("Circumference is: " + Circ + " Inches.");
|
||||
// }
|
||||
|
||||
// function isEven(number) {
|
||||
// if (number % 2 == 0) {
|
||||
// console.log(number + " is even");
|
||||
// } else {
|
||||
// console.log(number + " is odd");
|
||||
// }
|
||||
// }
|
||||
|
||||
// NUMBER GUESSING GAME
|
||||
// var randomNum = Math.floor((Math.random() * 100) + 1);
|
||||
// console.log("Random Number: " + randomNum);
|
||||
|
||||
// var userGuess;
|
||||
// do {
|
||||
// var input = window.prompt("Guess a number from 1-100: ");
|
||||
// if (input === null) {
|
||||
// window.alert("Game cancelled.");
|
||||
// break;
|
||||
// }
|
||||
|
||||
// userGuess = parseInt(input, 10);
|
||||
// if (isNaN(userGuess) || userGuess < 1 || userGuess > 100) {
|
||||
// window.alert("Please enter a valid number between 1 and 100.");
|
||||
// } else if (userGuess !== randomNum) {
|
||||
// window.alert("Incorrect number, try again!");
|
||||
// }
|
||||
// } while (userGuess !== randomNum);
|
||||
|
||||
// if (userGuess === randomNum) {
|
||||
// window.alert("You guessed the right number! The number was " + randomNum);
|
||||
// }
|
||||
|
||||
// ROCK PAPER SCISSORS GAME
|
||||
// var choices = ["rock", "paper", "scissors"];
|
||||
// var compChoice = choices[Math.floor(Math.random() * 3)];
|
||||
// console.log("Computer choice: " + compChoice);
|
||||
|
||||
// var userChoice = window.prompt("Enter rock, paper or scissors: ").toLowerCase();
|
||||
// console.log("User choice: " + userChoice);
|
||||
|
||||
// if (!choices.includes(userChoice)) {
|
||||
// window.alert("Invalid choice!");
|
||||
// } else if (userChoice === compChoice) {
|
||||
// window.alert("It's a tie!");
|
||||
// } else {
|
||||
// var winsAgainst = {
|
||||
// rock: "scissors",
|
||||
// paper: "rock",
|
||||
// scissors: "paper"
|
||||
// };
|
||||
|
||||
// if (winsAgainst[userChoice] === compChoice) {
|
||||
// window.alert("You win!");
|
||||
// } else {
|
||||
// window.alert("Computer wins!");
|
||||
// }
|
||||
// }
|
||||
|
||||
// SAMPLE BANK ACCOUNT
|
||||
// var bankBalance = 0;
|
||||
// console.log("Bank balance: $" + bankBalance);
|
||||
|
||||
// function getAmount(message) {
|
||||
// var input = window.prompt(message);
|
||||
// if (input === null) return null;
|
||||
// var amount = parseInt(input, 10);
|
||||
// if (isNaN(amount)) {
|
||||
// window.alert("Please enter a valid number.");
|
||||
// return null;
|
||||
// }
|
||||
// return amount;
|
||||
// }
|
||||
|
||||
// while (true) {
|
||||
// var userChoice = window.prompt(
|
||||
// "Welcome! Your bank balance is: $" + bankBalance +
|
||||
// ". Would you like to (w)ithdraw, (d)eposit or (v)iew balance, or (q)uit?");
|
||||
// if (userChoice === null || userChoice.toLowerCase() === "q") break;
|
||||
// userChoice = userChoice.toLowerCase();
|
||||
// console.log(userChoice);
|
||||
|
||||
// if (userChoice === "w" || userChoice === "withdrawl") {
|
||||
// var widthdrawlAmount = getAmount("How much would you like to widthdraw?");
|
||||
// if (widthdrawlAmount === null) continue;
|
||||
// if (widthdrawlAmount > bankBalance) {
|
||||
// window.alert("Not enough in balance to widthdraw, sorry!");
|
||||
// } else if (widthdrawlAmount <= 0) {
|
||||
// window.alert("Cannot widthdraw negative or 0 dollars.");
|
||||
// } else {
|
||||
// bankBalance -= widthdrawlAmount;
|
||||
// console.log("Bank balance: $" + bankBalance);
|
||||
// }
|
||||
// } else if (userChoice === "d" || userChoice === "deposit") {
|
||||
// var depositAmount = getAmount("How much would you like to deposit?");
|
||||
// if (depositAmount === null) continue;
|
||||
// if (depositAmount <= 0) {
|
||||
// window.alert("Cannot deposit negative or 0 dollars.");
|
||||
// } else {
|
||||
// bankBalance += depositAmount;
|
||||
// console.log("Bank balance: $" + bankBalance);
|
||||
// }
|
||||
// } else if (userChoice === "v" || userChoice === "view") {
|
||||
// window.alert("Your balance is: $" + bankBalance + " dollars. Thank you for banking with us!");
|
||||
// console.log("Bank balance: $" + bankBalance);
|
||||
// } else {
|
||||
// window.alert("Invalid choice, please try again");
|
||||
// }
|
||||
// }
|
||||
|
||||
// ARRAY STATS CALCULATOR
|
||||
// var stats = [];
|
||||
// var sum = 0;
|
||||
|
||||
// for (var i = 0; i < 50; i++) {
|
||||
// var randomNum = Math.floor(Math.random() * 50);
|
||||
// sum += randomNum;
|
||||
// stats.push(randomNum);
|
||||
// console.log(randomNum);
|
||||
// }
|
||||
// console.log(stats);
|
||||
|
||||
// console.log("Sum of stats: " + sum);
|
||||
// console.log("Average of stats: " + (sum / stats.length));
|
||||
// console.log("Min of stats: " + Math.min(...stats));
|
||||
// console.log("Max of stats: " + Math.max(...stats));
|
||||
|
||||
// PASSWORD STRENGTH CHECKER
|
||||
var userPass = window.prompt("Enter a password to test: ");
|
||||
var charCount, numCount, symCount;
|
||||
|
||||
charCount = userPass.length;
|
||||
console.log(charCount);
|
||||
|
||||
numCount = (userPass.match(/\d/g) || []).length;
|
||||
console.log(numCount);
|
||||
|
||||
symCount = (userPass.match(/[^a-zA-Z0-9]/g) || []).length;
|
||||
console.log(symCount);
|
||||
|
||||
if (charCount >= 10 && numCount >= 3 && symCount >= 1) {
|
||||
window.alert("Your password is STRONG");
|
||||
} else if (charCount >= 10 && numCount >= 1) {
|
||||
window.alert("Your password is OKAY");
|
||||
} else {
|
||||
window.alert("Your password is WEAK");
|
||||
=======
|
||||
// for (var i = 1; i < 10; i++) {
|
||||
// console.log("Ran " + i + " time(s).")
|
||||
// };
|
||||
@@ -187,4 +378,5 @@ if (charCount >= 10 && numCount >= 3 && symCount >= 1) {
|
||||
window.alert("Your password is OKAY");
|
||||
} else {
|
||||
window.alert("Your password is WEAK");
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,38 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Week 1 Class 1</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Javascript test</h1>
|
||||
<script>
|
||||
document.write("Hello Class, Welcome to JavaScript <br>");
|
||||
document.write("I love JavaScript");
|
||||
|
||||
document.write("Hello Class, Welcome to JavaScript")
|
||||
document.write("<br>");
|
||||
document.write("I love JavaScript <br>");
|
||||
|
||||
window.alert("ALERT ALERT ALERT ALERT");
|
||||
window.confirm("CONFIRM PLEASE CONFIRM PLEASE");
|
||||
window.prompt("PROMPT HERE PROMPT HERE");
|
||||
</script>
|
||||
<button type="submit" id="testButton" onclick="testButton()">
|
||||
<p>Press me!</p>
|
||||
</button>
|
||||
<p id="buttonLabel">Button pressed!</p>
|
||||
<hr>
|
||||
<h2>Form example</h2>
|
||||
<input type="text" id="firstName" placeholder="First name">
|
||||
<input type="text" id="lastName" placeholder="Last name">
|
||||
<input type="email" id="email" placeholder="Email">
|
||||
<input type="text" id="phone" placeholder="Phone number">
|
||||
<p id="formLabel">You entered: </p>
|
||||
<button type="submit" id="repeatButton" onclick="repeatInfo()">Repeat Info</button>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -31,4 +66,5 @@
|
||||
<button type="submit" id="repeatButton" onclick="repeatInfo()">Repeat Info</button>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,23 @@
|
||||
<<<<<<< HEAD
|
||||
document.getElementById("buttonLabel").style.display = "none";
|
||||
|
||||
function testButton() {
|
||||
const buttonLabel = document.getElementById("buttonLabel");
|
||||
if (buttonLabel.style.display === "block") {
|
||||
buttonLabel.style.display = "none";
|
||||
} else {
|
||||
buttonLabel.style.display = "block";
|
||||
}
|
||||
}
|
||||
|
||||
function repeatInfo() {
|
||||
const formLabel = document.getElementById("formLabel");
|
||||
const firstName = document.getElementById("firstName").value;
|
||||
const lastName = document.getElementById("lastName").value;
|
||||
const email = document.getElementById("email").value;
|
||||
const phone = Number(document.getElementById("phone").value);
|
||||
formLabel.innerHTML += `${firstName} ${lastName}, ${email}, ${phone}`
|
||||
=======
|
||||
document.getElementById("buttonLabel").style.display = "none";
|
||||
|
||||
function testButton() {
|
||||
@@ -16,4 +36,5 @@ function repeatInfo() {
|
||||
const email = document.getElementById("email").value;
|
||||
const phone = Number(document.getElementById("phone").value);
|
||||
formLabel.innerHTML += `${firstName} ${lastName}, ${email}, ${phone}`
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,22 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Week 3 Class 1</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Week 3 Class 1</h1>
|
||||
<p>Enter some details</p>
|
||||
<input id="firstNameBox" type="text" placeholder="First Name">
|
||||
<input id="lastNameBox" type="text" placeholder="Last Name">
|
||||
<input id="ageBox" type="number" placeholder="Age">
|
||||
<input id="passwordBox" type="password" placeholder="Password">
|
||||
<button type="submit" onclick="showDetails()">Submit</button>
|
||||
<p id="detailsLabel">Entered Details: </p>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -15,4 +34,5 @@
|
||||
<p id="detailsLabel">Entered Details: </p>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,18 @@
|
||||
<<<<<<< HEAD
|
||||
function showDetails() {
|
||||
var firstName = document.getElementById("firstNameBox").value;
|
||||
var lastName = document.getElementById("lastNameBox").value;
|
||||
var age = Number(document.getElementById("ageBox").value);
|
||||
var password = document.getElementById("passwordBox").value;
|
||||
console.log(`You entered: ${firstName}, ${lastName}, ${age}, ${password}`);
|
||||
document.getElementById("detailsLabel").innerHTML += `${firstName}, ${lastName}, ${age}, ${password}`;
|
||||
|
||||
console.log(10 + 10);
|
||||
console.log(10 * 10);
|
||||
console.log(10 - 3);
|
||||
console.log(100 / 25);
|
||||
console.log(100 % 3);
|
||||
=======
|
||||
function showDetails() {
|
||||
var firstName = document.getElementById("firstNameBox").value;
|
||||
var lastName = document.getElementById("lastNameBox").value;
|
||||
@@ -11,4 +26,5 @@ function showDetails() {
|
||||
console.log(10 - 3);
|
||||
console.log(100 / 25);
|
||||
console.log(100 % 3);
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
@@ -1,3 +1,15 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Week 8 JS Object Practice</title>
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Week 8 JS Object Practice</h1>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -8,4 +20,5 @@
|
||||
<h1>Week 8 JS Object Practice</h1>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,68 @@
|
||||
<<<<<<< HEAD
|
||||
// Question 1
|
||||
function person(firstName, lastName, age, city) {
|
||||
return {
|
||||
firstName: firstName,
|
||||
lastName: lastName,
|
||||
age: age,
|
||||
city: city
|
||||
};
|
||||
}
|
||||
|
||||
var testPerson = person("Levi", "McLean", 20, "Woodstock");
|
||||
console.log(testPerson.firstName);
|
||||
console.log(testPerson.lastName);
|
||||
console.log(testPerson.age);
|
||||
console.log(testPerson.city);
|
||||
|
||||
// Question 2
|
||||
function book(title, author, pages) {
|
||||
return {
|
||||
title: title,
|
||||
author: author,
|
||||
pages: pages
|
||||
};
|
||||
}
|
||||
|
||||
var testBook = book("1984", "George Orwell", 386);
|
||||
console.log(testBook.title);
|
||||
console.log(testBook.author);
|
||||
console.log(testBook.pages);
|
||||
console.log("Update pages to 555");
|
||||
testBook.pages = 555;
|
||||
console.log(testBook.pages);
|
||||
|
||||
// Question 3
|
||||
function movie(name, year, rating) {
|
||||
return {
|
||||
name: name,
|
||||
year: year,
|
||||
rating: rating
|
||||
};
|
||||
}
|
||||
|
||||
var testMovie = movie("Kill Bill", 2003, 9.5);
|
||||
console.log(testMovie.name);
|
||||
console.log(testMovie.year);
|
||||
console.log(testMovie.rating);
|
||||
console.log("Adding new property director");
|
||||
testMovie.director = "Quentin Tarantino";
|
||||
console.log(testMovie.director);
|
||||
|
||||
// Question 4
|
||||
const playlist = {
|
||||
name: "Cool Jams",
|
||||
songs: ["Rap song", "Metal song", "Pop song"]
|
||||
};
|
||||
|
||||
console.log(playlist.songs);
|
||||
console.log("First Song");
|
||||
console.log(playlist.songs[0]);
|
||||
console.log("Last Song");
|
||||
console.log(playlist.songs[playlist.songs.length - 1]); // Always get last entry
|
||||
|
||||
// Question 5
|
||||
=======
|
||||
// Question 1
|
||||
function person(firstName, lastName, age, city) {
|
||||
return {
|
||||
@@ -61,3 +126,4 @@ console.log("Last Song");
|
||||
console.log(playlist.songs[playlist.songs.length - 1]); // Always get last entry
|
||||
|
||||
// Question 5
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
|
||||
BIN
INFO-1272 (JS 1)/Projects/Final Project.zip
Normal file
@@ -1,3 +1,120 @@
|
||||
<<<<<<< HEAD
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Flowery Flower Shop</title>
|
||||
<meta charset="utf-8" lang="en">
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<h1>Flowery Flower Shop</h1>
|
||||
<small>Browse our flowers below...</small>
|
||||
|
||||
<h2>Available flowers</h2>
|
||||
<section id="catalog">
|
||||
<article id="rose">
|
||||
<h3>Rose</h3>
|
||||
<ul>
|
||||
<li>Price:</li>
|
||||
<li>Category:</li>
|
||||
<li>Stock:</li>
|
||||
<li>Description:</li>
|
||||
</ul>
|
||||
<form class="add-to-cart">
|
||||
<label>Quantity: <input type="number" name="quantity" min="1" value="1" required></label>
|
||||
<button type="submit">Add to Cart</button>
|
||||
</form>
|
||||
</article>
|
||||
<article id="tulip">
|
||||
<h3>Tulip</h3>
|
||||
<ul>
|
||||
<li>Price:</li>
|
||||
<li>Category:</li>
|
||||
<li>Stock:</li>
|
||||
<li>Description:</li>
|
||||
</ul>
|
||||
<form class="add-to-cart">
|
||||
<label>Quantity: <input type="number" name="quantity" min="1" value="1" required></label>
|
||||
<button type="submit">Add to Cart</button>
|
||||
</form>
|
||||
</article>
|
||||
<article id="sunflower">
|
||||
<h3>Sunflower</h3>
|
||||
<ul>
|
||||
<li>Price:</li>
|
||||
<li>Category:</li>
|
||||
<li>Stock:</li>
|
||||
<li>Description:</li>
|
||||
</ul>
|
||||
<form class="add-to-cart">
|
||||
<label>Quantity: <input type="number" name="quantity" min="1" value="1" required></label>
|
||||
<button type="submit">Add to Cart</button>
|
||||
</form>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<h2>Shopping Cart</h2>
|
||||
<section id="cart">
|
||||
<table id="cart-table">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Flower</th>
|
||||
<th>Price</th>
|
||||
<th>Quantity</th>
|
||||
<th>Subtotal</th>
|
||||
<th>Remove</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
|
||||
</tbody>
|
||||
</table>
|
||||
<div id="cart-total">
|
||||
<p>Subtotal: $<span id="subtotal">0.00</span></p>
|
||||
<p>Tax: $<span id="tax">0.00</span></p>
|
||||
<strong>Total: $<span id="total">0.00</span></strong>
|
||||
</div>
|
||||
<button id="checkout-button">Checkout</button>
|
||||
<div id="checkout-message"></div>
|
||||
</section>
|
||||
|
||||
<h2>Testimonials and Feedback</h2>
|
||||
<section id="feedback">
|
||||
<form id="feedback-form">
|
||||
<label>
|
||||
Flower:
|
||||
<select name="flower" required>
|
||||
<option value="">Select a flower to rate</option>
|
||||
<option value="Rose">Red Rose</option>
|
||||
<option value="Tulip">Tulip</option>
|
||||
<option value="Sunflower">Sunflower</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Rating:
|
||||
<select name="rating" required>
|
||||
<option value="">Rate</option>
|
||||
<option value="5">5 - Excellent</option>
|
||||
<option value="4">4 - Good</option>
|
||||
<option value="3">3 - Average</option>
|
||||
<option value="2">2 - Poor</option>
|
||||
<option value="1">1 - Terrible</option>
|
||||
</select>
|
||||
</label>
|
||||
<label>
|
||||
Feedback:
|
||||
<input type="text" name="content" maxlength="120" placeholder="Your feedback" required>
|
||||
</label>
|
||||
<button type="submit">Submit Feedback</button>
|
||||
</form>
|
||||
<div id="feedback-list">
|
||||
|
||||
</div>
|
||||
</section>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
=======
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
@@ -113,4 +230,5 @@
|
||||
</section>
|
||||
<script src="index.js"></script>
|
||||
</body>
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
</html>
|
||||
@@ -1,3 +1,188 @@
|
||||
<<<<<<< HEAD
|
||||
// Object called flowers that contains 3 flower objects with their information
|
||||
const flowers = {
|
||||
"rose": {
|
||||
name: "Rose",
|
||||
price: 2.5,
|
||||
category: "Romance",
|
||||
stock: 20,
|
||||
description: "The classic red rose for that someone special."
|
||||
},
|
||||
"tulip": {
|
||||
name: "Tulip",
|
||||
price: 3.0,
|
||||
category: "Springtime",
|
||||
stock: 15,
|
||||
description: "A perfect spring time flower for a bouquet."
|
||||
},
|
||||
"sunflower": {
|
||||
name: "Sunflower",
|
||||
price: 5.0,
|
||||
category: "Exclusives",
|
||||
stock: 10,
|
||||
description: "Large iconic flower perfect for an Autumn garden."
|
||||
}
|
||||
};
|
||||
|
||||
let feedback = [
|
||||
{flower: "Rose", rating: 5, content: "A beautiful bouqet delivered on time with care!"},
|
||||
{flower: "Tulip", rating: 4, content: "Reminds me of Spring any time of year!"},
|
||||
{flower: "Sunflower", rating: 5, content: "Sunflower was tall and healthy, so elegant!"}
|
||||
];
|
||||
|
||||
// Function to add flower information (price, stock, description, category) to HTML catalog
|
||||
function populateCatalog() {
|
||||
Object.values(flowers).forEach(flower => {
|
||||
const article = document.getElementById(`${flower.name.toLowerCase()}`)
|
||||
if (article) {
|
||||
const listItems = article.querySelectorAll("ul li");
|
||||
listItems[0].textContent = `Price: $${flower.price.toFixed(2)}`;
|
||||
listItems[1].textContent = `Category: ${flower.category}`;
|
||||
listItems[2].textContent = `Stock: ${flower.stock}`;
|
||||
listItems[3].textContent = `Description: ${flower.description}`;
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Function to update items inside cart, used by addToCart() and at initialization
|
||||
function updateCartDisplay() {
|
||||
const tbody = document.querySelector("#cart-table tbody");
|
||||
tbody.innerHTML = "";
|
||||
let subtotal = 0;
|
||||
cart.forEach((item, idx) => {
|
||||
const row = document.createElement("tr");
|
||||
row.innerHTML = `
|
||||
<td>${flowers[item.name].name}</td>
|
||||
<td>$${item.price.toFixed(2)}</td>
|
||||
<td>${item.quantity}</td>
|
||||
<td>${(item.price * item.quantity).toFixed(2)}</td>
|
||||
<td><button data-idx="${idx}" class="remove-button">Remove</button></td>
|
||||
`
|
||||
tbody.appendChild(row);
|
||||
subtotal += item.price * item.quantity;
|
||||
});
|
||||
|
||||
const tax = subtotal * 0.13;
|
||||
const total = subtotal + tax;
|
||||
|
||||
document.getElementById("subtotal").textContent = subtotal.toFixed(2);
|
||||
document.getElementById("tax").textContent = tax.toFixed(2);
|
||||
document.getElementById("total").textContent = total.toFixed(2);
|
||||
|
||||
document.querySelectorAll(".remove-button").forEach(btn => {
|
||||
btn.addEventListener("click", function() {
|
||||
const idx = Number(btn.getAttribute("data-idx"));
|
||||
const item = cart[idx];
|
||||
flowers[item.name].stock += item.quantity;
|
||||
cart.splice(idx,1);
|
||||
updateCartDisplay();
|
||||
populateCatalog();
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
// Function to handle getting the correct flower name and quantity to add to cart
|
||||
function setupCartForms() {
|
||||
document.querySelectorAll(".add-to-cart").forEach(form => {
|
||||
form.addEventListener("submit", function(e) {
|
||||
e.preventDefault();
|
||||
const article = form.closest("article");
|
||||
const flowerName = article.querySelector("h3").textContent;
|
||||
const quantity = form.querySelector("input[name='quantity']").value;
|
||||
addToCart(flowerName, quantity);
|
||||
form.reset();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
// Start with empty cart
|
||||
let cart = [];
|
||||
|
||||
// Funcion to add items to cart
|
||||
function addToCart(flowerName, quantity) {
|
||||
quantity = Number(quantity);
|
||||
|
||||
const key = flowerName.toLowerCase();
|
||||
const flower = flowers[key];
|
||||
|
||||
if (!flower || quantity < 1 || quantity > flower.stock) {
|
||||
alert("Too many or too few flowers added to cart, rejecting.");
|
||||
return;
|
||||
}
|
||||
|
||||
const existing = cart.find(item => item.name === flowerName);
|
||||
if (existing) {
|
||||
if (quantity > flower.stock) {
|
||||
alert("Added quantity goes over stock limit, rejecting.");
|
||||
return
|
||||
}
|
||||
existing.quantity += quantity;
|
||||
} else {
|
||||
cart.push({
|
||||
name: key,
|
||||
price: flower.price,
|
||||
quantity: quantity
|
||||
});
|
||||
}
|
||||
flower.stock -= quantity;
|
||||
updateCartDisplay();
|
||||
populateCatalog();
|
||||
}
|
||||
|
||||
// Function to create feedback HTML elements from list
|
||||
function renderFeedback() {
|
||||
const feedbackList = document.getElementById("feedback-list");
|
||||
feedbackList.innerHTML = "";
|
||||
if (feedback.length === 0) {
|
||||
feedbackList.innerHTML = "<p>No feedback yet. Be our first review?</p>";
|
||||
return;
|
||||
}
|
||||
feedback.forEach(fb => {
|
||||
const div = document.createElement("div");
|
||||
div.className = "testimonial";
|
||||
div.innerHTML = `
|
||||
<strong>${fb.flower}</strong>
|
||||
<span>(${fb.rating}★)</span>
|
||||
<p>${fb.content}</p>
|
||||
<hr>
|
||||
`
|
||||
feedbackList.appendChild(div);
|
||||
})
|
||||
}
|
||||
|
||||
// Event listener for checkout button to show checkout message and reset cart
|
||||
document.getElementById("checkout-button").addEventListener("click", function() {
|
||||
if (cart.length === 0) {
|
||||
document.getElementById("checkout-message").textContent = "Your cart is empty!";
|
||||
return;
|
||||
}
|
||||
const confirmed = confirm("Are you sure you want to finalize cart and check out?");
|
||||
if (confirmed) {
|
||||
document.getElementById("checkout-message").textContent = "Thank you for your order!";
|
||||
cart = [];
|
||||
updateCartDisplay();
|
||||
populateCatalog();
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("feedback-form").addEventListener("submit", function(e) {
|
||||
e.preventDefault();
|
||||
const form = e.target;
|
||||
const flower = form.flower.value;
|
||||
const rating = Number(form.rating.value);
|
||||
const content = form.content.value.trim()
|
||||
|
||||
if (!flower || !rating || !content) return;
|
||||
|
||||
feedback.unshift({ flower, rating, content });
|
||||
renderFeedback();
|
||||
form.reset();
|
||||
})
|
||||
|
||||
populateCatalog();
|
||||
setupCartForms();
|
||||
updateCartDisplay();
|
||||
=======
|
||||
// Object called flowers that contains 3 flower objects with their information
|
||||
const flowers = {
|
||||
"rose": {
|
||||
@@ -181,4 +366,5 @@ document.getElementById("feedback-form").addEventListener("submit", function(e)
|
||||
populateCatalog();
|
||||
setupCartForms();
|
||||
updateCartDisplay();
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
renderFeedback();
|
||||
@@ -1,3 +1,86 @@
|
||||
<<<<<<< HEAD
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background: #fafafa;
|
||||
color: #222;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
h1 {
|
||||
text-align: center;
|
||||
margin: 24px 0 12px 0;
|
||||
}
|
||||
|
||||
small {
|
||||
display: block;
|
||||
text-align: center;
|
||||
margin: 0 0 18px 0;
|
||||
color: #555;
|
||||
font-size: 0.98em;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-top: 32px;
|
||||
margin-bottom: 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
section {
|
||||
margin: 0 auto 24px auto;
|
||||
max-width: 700px;
|
||||
}
|
||||
|
||||
article {
|
||||
border: 1px solid #ddd;
|
||||
border-radius: 6px;
|
||||
padding: 12px;
|
||||
margin: 12px 0;
|
||||
background: #fff;
|
||||
}
|
||||
|
||||
table {
|
||||
width: 100%;
|
||||
border-collapse: collapse;
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
th, td {
|
||||
border: 1px solid #ccc;
|
||||
padding: 6px 8px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
form label {
|
||||
display: block;
|
||||
margin: 6px 0;
|
||||
}
|
||||
|
||||
input[type="number"], input[type="text"], select {
|
||||
padding: 2px 4px;
|
||||
margin-left: 4px;
|
||||
}
|
||||
|
||||
button {
|
||||
margin-top: 6px;
|
||||
padding: 4px 10px;
|
||||
border: 1px solid #bbb;
|
||||
border-radius: 3px;
|
||||
background: #f0f0f0;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
button:hover {
|
||||
background: #e0e0e0;
|
||||
}
|
||||
|
||||
#feedback-list .testimonial {
|
||||
background: #f9f9f9;
|
||||
border: 1px solid #eee;
|
||||
border-radius: 4px;
|
||||
margin: 8px 0;
|
||||
padding: 8px;
|
||||
=======
|
||||
body {
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
background: #fafafa;
|
||||
@@ -79,4 +162,5 @@ button:hover {
|
||||
border-radius: 4px;
|
||||
margin: 8px 0;
|
||||
padding: 8px;
|
||||
>>>>>>> a2ad5843006c62096be10203d3f91faa39f365fb
|
||||
}
|
||||
8879
INFO-1274 (Graphic Design)/Projects/Project 2/Cactus.ai
Normal file
16384
INFO-1274 (Graphic Design)/Projects/Project 2/ROBOT_McLean.ai
Normal file
BIN
INFO-1274 (Graphic Design)/Projects/Project 2/ROBOT_McLean.jpg
Normal file
|
After Width: | Height: | Size: 2.3 MiB |
|
After Width: | Height: | Size: 156 KiB |